首页
社区
课程
招聘
[原创]python下载抖音无水印视频
2023-2-6 22:34 4192

[原创]python下载抖音无水印视频

2023-2-6 22:34
4192

今天用python测试之前使用的抖音无水印视频下载接口"https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids="突然发现无法使用了,百度谷歌github等引擎搜索也没看到新的,便开始自己测试抓包分析获取新的接口,运气好找到了。
1.直接手机打开抖音复制了个视频链接 https://v.douyin.com/BAFT5rB/,在电脑谷歌浏览器上先开启了开发者工具,然后打开这个链接进行分析
图片描述
如上图在network中过滤链接地址,发现会重定向到了新的地址
"https://www.iesdouyin.com/share/video/7194391244401855803/?region=CN&mid=7194392440990698243&ucode=2h54c2af&did=MS4wLjABAAAAxSz8AqJVH299l0pzjDWPayaXykpVuDwc9iLyTyUY2SF1C4w7Ohy7uyGAJn3iWkd&iid=MS4wLjABAAAATeiGROCtxfBGYO9SxTrQcz0llqEogdhp7wJoP4dprx9VILKJB-dGggxBHQq1JF26&with_sec_did=1&titleType=title&from_ssr=1&timestamp=1675654443&utm_campaign=client_share&app=aweme&utm_medium=ios&tt_from=copy&utm_source=copy"
这个链接测试打开也就是这个地址"https://www.douyin.com/video/7194391244401855803"

 

2.重新打开开发者工具对"https://www.douyin.com/video/7194391244401855803"这个地址再次进行分析

在上图用开发者工具左上角选择元素点击视频,返回对应的视频元素地址有三个,选择了最后一个"https://www.douyin.com/aweme/v1/play/?video_id=v0200fg10000cfbpi83c77u0r1gb1m00&line=0&file_id=cb98f8b868674b8ba31a2c53a2fa28fb&sign=e0139b7f4756344dff15a4174afdd5f3&is_play_url=1&source=PackSourceEnum_AWEME_DETAIL&aid=6383"打开,得到了无水印视频地址,经测试发现只有一个video_id参数就行,所以简单点地址就是"https://www.douyin.com/aweme/v1/play/?video_id=v0200fg10000cfbpi83c77u0r1gb1m00"
所以接口应该就是"https://www.douyin.com/aweme/v1/play/?video_id=" 经过测试多个视频都可以。

 

3.既然知道了接口,如何知道video_id是多少了,后面再次分析之前的数据包,发现在打开"https://www.douyin.com/video/7194391244401855803"这个地址的时候,返回码中刚好有video_id,通过了过滤v0200fg10000cfbpi83c77u0r1gb1m00得到,如图

所以就直接在接口”https://www.douyin.com/aweme/v1/play/?video_id=“上加上video_id就可以得到了无水印地址。

 

相关代码如下,写的有点随意,将就着看

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import  requests
import  re
 
try:
    url=input('输入链接地址: ')
    obj=re.compile(r"http.*/",re.S)
    url=obj.finditer(url)
    for i in url:
        pid=i.group()
        print(i.group())
    header={"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"}
    print('1',pid)
    resp=requests.get(url=pid,headers=header, allow_redirects=False)
    print(resp.text)
    pid=re.finditer(r"video/(?P<IID>.*?)/",resp.text)
    print('2',pid)
    for i in pid:
        ID=i.group('IID')
        print(i.group('IID'))
 
    resp1='https://www.douyin.com/light/'+ID
    print(resp1)
    resp2=requests.get(url=resp1,headers=header)
    c = re.search(r"video_id%3D(?P<IID1>.*?)%26", resp2.text)
    print(c.group('IID1'))
    zq=c.group('IID1')
    urll=f"https://www.douyin.com/aweme/v1/play/?video_id={zq}"
    with open(f'{zq}'+'.mp4','wb') as f :
        m4=requests.get(url=urll,headers=header).content
        f.write(m4)
except:
    print('解析异常')

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞1
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回