在网上看过一些相关教程,有一些解析抖音无水印视频的教程。说是教程,其实大部分都是提供接口,或引流或卖接口。究竟是怎么实现的去水印,就小小地研究了一下。
1.浏览器分析
从抖音短视频中分享一段视频。可以得到
我开始期待夏天和你一起吃西瓜,就像期待冬天和你一起吃火锅,其实我对夏天冬天没有特别喜欢,只是期待和你一起 https://v.douyin.com/cgLgew/ 复制此链接,打开【抖音短视频】,直接观看视频!
我将这段文字中的链接部分复制下来,在浏览器打开。并使用开发者工具调试(F12或鼠标右键)。
可以看到在video标签中存在一个链接。
https://aweme.snssdk.com/aweme/v1/playwm/?s_vid=93f1b41336a8b7a442dbf1c29c6bbc5672cdb2cfaefa126d6cf6ef5532d6940d8202ba55baeffa88df4f525e02e3d9d4a2ac45fb4360d6d7d7735806d8db4a00&line=0
复制该链接在浏览器打开:
发现仍然是带水印的视频,而且页面重定向成了新地址:
http://v26-dy.ixigua.com/6687f6c2701783a302bb486ec3398aad/5e906717/video/tos/cn/tos-cn-ve-15/479476156a58407e939bc3535e4b584a/?a=1128&br=0&bt=2078&cr=0&cs=0&dr=0&ds=3&er=&l=2020041019310601001404601506236F71&lr=aweme&qs=0&rc=ajZvZDhsNHM1dDMzZmkzM0ApNDRpM2k4O2Q6N2Y1ZDs3ZGdyMmYwaGphXjNfLS02LS9zc182LTQuLi00LzMtL2BiLzQ6Yw%3D%3D&vl=&vr=
分析之前的地址:
https://aweme.snssdk.com/aweme/v1/playwm/?s_vid=93f1b41336a8b7a442dbf1c29c6bbc5672cdb2cfaefa126d6cf6ef5532d6940d8202ba55baeffa88df4f525e02e3d9d4a2ac45fb4360d6d7d7735806d8db4a00&line=0
包含playwm 后面的wm是什么意思?(wm就是WaterMark,水印的意思),将playwm改成play,并将请求的User-Agent修改为手机。便得到了无水印版本的视频。手动操作部分结束!
2. 代码实现
Github:
import requests,re share = input("请输入你要去水印的抖音短视频链接:") pat = '(https://v.douyin.com/.*?/)' url = re.compile(pat).findall(share)[0] #正则匹配分享链接 headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3904.108 Safari/537.36' } r = requests.get(url, headers=headers) pat = 'playAddr: "(.*?)",' play = re.compile(pat).findall(r.text)[0].replace("playwm", "play") headers = { 'user-agent': 'Android', } r = requests.get(play, headers=headers, allow_redirects=False) playurl = r.headers['location'] #自定义文件名保存短视频 name = input("===>正在下载保存视频,请输入视频名称:") video = requests.get(url=playurl, headers=headers) with open(name+".mp4", 'wb')as file: file.write(video.content) file.close() print("===>视频下载完成!") #完事后退出程序 input("===>press enter key to exit!")
为了方便使用,我打包成了EXE文件