某音无水印视频获取解析思路

2021年03月19日

转自hostloc论坛,作者ID:lemen

抓取第一个短链接时会有个302的跳转,跳转之后会请求一个url,该url地址的/video/xxx/?… 会有一个id,通过此id去请求。

某音的api后台地址/web/api/v2/aweme/iteminfo/?item_ids=你得到的id

可以获得一串json

该json的
item_list > video > play_addr > url_list[0] 参数下有一串地址
直接请求该地址得到的视频是有水印的

我们只需要把地址的playwm换成play,把&line=0换成&line=1
再请求该地址,得到的视频就是无水印的视频了,亲测成功。

如果需要使用爬虫的话记得添加请求时的referer和cookie

源码来源:silence python代码

import requests
import re

pattern_id = re.compile(r'(?<=video/).*?(?=/)')
pattern_url = re.compile(r'https://.*?/ ')
url = input("请输入抖音原始链接:")
url = re.findall(pattern_url,url)[0]
url = url[:-1]

header = {
    'user-agent':'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1',
    'referer':'https://www.iesdouyin.com/',
    'cookies':"MONITOR_WEB_ID=cc5cddce-e219-443a-9b91-7e2bafb17a73"
}

def get_real_address(url):
    res = requests.get(url, headers=header, allow_redirects=False)
    return res.headers['Location']

def get_json(id):
    res = requests.get('https://www.douyin.com/web/api/v2/aweme/iteminfo/?item_ids=%s'%id)
    js = res.json()
    f = js['item_list'][0]['video']['play_addr']['url_list'][0].replace('playwm','play')
    print(f.replace('line=0','line=1'))

if __name__ == '__main__':
    r = get_real_address(url)
    id = re.findall(pattern_id,r)[0]
    get_json(id)

 


sicnature ---------------------------------------------------------------------
I P 地 址: 13.58.166.144
区 域 位 置: 美国俄亥俄都柏林
系 统 信 息: 美国
Original content, please indicate the source:
同福客栈论坛 | 蟒蛇科普海南乡情论坛 | JiaYu Blog
sicnature ---------------------------------------------------------------------
Welcome to reprint. Please indicate the source https://myzhenai.com.cn/post/3784.html

2条评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注