在抖音APP
中下载的短视频会自带水印,不便于在其他短视频平台转发或二次创造。网络中有一些工具可以根据短视频的链接自动获取无水印版的下载链接,今天我们一起学习如何自己去分析并实现无水印版短视频链接获取。
随意打开一个短视频,点击分享按钮,再点击复制链接。此时可以得到短连接,如下所示:
9.23 BGV:/ 复制打开抖音,看看【海峡新干线的作品】美舰过航台湾海峡,东部战区:随时做好挫败任何挑衅准... https://v.douyin.com/jWQQXB5/
其中,https://v.douyin.com/jWqQXB5/
为短链接
在谷歌浏览器中打开短链接,按F12
使用手机模式打开,可以看到短链接302重定向到另一个链接:
https://www.iesdouyin.com/share/video/7136807479769386247/?region=CN&mid=7136807568043051784&u_code=126595jei&did=MS4wLjABAAAAvOu2gq0aDfXvv_sjCRN_5OwfnsBAi9TtGvWc457RHToh3rrf4JoISZdmbqJxwPFy&iid=MS4wLjABAAAAtbDB8E08ejXQ1yoNOxKq5GbiJHzUUDqPecmHkHnDXbdJ_eP6Tzd-0MGxEKqBDqLk&with_sec_did=1&titleType=title×tamp=1661672373&utm_campaign=client_share&app=aweme&utm_medium=ios&tt_from=copy&utm_source=copy
如下图所示:
这个重定向的链接可以获取到短视频真正的存储item_id,如下图所示:
从上图可以得到链接:
https://www.douyin.com/video/7136807479769386247
其中7136807479769386247
即为真正的存储ID
。
打开上面地址,可以得到一个接口地址,
https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=7136807479769386247 其中上面的item_ids就是1.2节中介绍的存储ID,如下图所示:
打开上面地址得到如下json数据
上图中的url_list中的链接即为短视频链接,即:
https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0200fg10000cc5gfujc77ufpoqsql6g&ratio=720p&line=0
但是需要注意的是,上面的链接依然是有水印。注意到一个关键字:playwm
, 其中wm
为watermark
缩写,将playwm
替换为play
即可得到无水印链接
短链接中,通过302重定向的url中包含了item_id,因此直接从重定向的链接中获取即可。
def get_item_id(short_url):
res = http_get(short_url)
item_id = re.findall(r"(?<=video/)d+", res.url)[0]
return item_id
根据item_id,直接组装api地址,并获取相应的地址即可,代码如下。
def get_play_url(item_id):
api_url = "https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=" + item_id
api = http_get(api_url).text
api = json.loads(api)
playwm = api['item_list'][0]['video']['play_addr']['url_list'][0]
play = playwm.replace('/playwm/', '/play/')
return play
Python学习实战
公众号聊天界面回复:dyrwm
,获取完整源码。如果本文帮助到了您,辛苦您点个不需花钱的赞,您的举手之劳将对我提供了无限的写作动力! 也欢迎关注我的公众号:Python学习实战, 第一时间获取最新文章。
原创声明,本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 本站 删除。