抖音里面的视频保存之后,会发现全都带有水印,
怎样才能不带水印呢,今天,它来了~~
首先在抖音里复制链接,获得如下URL:
https://v.douyin.com/JyCk5gy/
把这个URL复制到浏览器直接访问,
我们发现,URL地址变了,
https://www.iesdouyin.com/share/video/6870423037087436046/?region=CN&mid=6849704381667920647&u_code=16bc6a164&titleType=title&utm_source=copy_link&utm_campaign=client_share&utm_medium=android&app=aweme
其中的 6870423037087436046 就是视频ID,
接下来,打开F12,刷新页面,筛选XHR,
可以看到一个item_ids的链接,
https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=6870423037087436046
很明显,最后的这串数字,就是视频的ID,
通过这个URL就可以获取到视频的真正播放地址,
通过这个JSON结果可知,视频文件的真正地址是:
https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0200f230000btcaac52m1gham4830p0&ratio=720p&line=0
但这个视频是带水印的,我们还需要把playwm替换成play才是无水印的地址,
https://aweme.snssdk.com/aweme/v1/play/?video_id=v0200f230000btcaac52m1gham4830p0&ratio=720p&line=0
这个地址无法通过PC浏览器直接访问,可以用手机浏览器访问,在手机上把它保存为一个.mp4文件就可以了。
有的手机浏览器不支持视频下载功能,但是,能看到视频,就证明可以直接下载,
知道了它的原理,就可以编写python代码,实现一键下载啦。
手机可以看,电脑不能看,问题基本就在user-agent,
经测试发现,只要头信息agent包含Android就可以正常获取数据流,
所以我们这样做:
def download(playurl): # 手机浏览器能看,电脑不能看,经测试发现,只要agent信息里包含Android或iPhone就可以获取数据流 headers = { 'user-agent': 'Android', } video = requests.get(url=playurl, headers=headers) with open('hello.mp4', 'wb')as file: file.write(video.content) file.close() print("视频下载完成!")
这样就可以正常下载到电脑了