【python】15行代码下载抖音无水印短视频


1. 成果展示

在这里插入图片描述

2. 软件下载

win64:https://ghgxj.lanzous.com/iygHjjb9psh

win32maclinux用户请自行通过源码打包。

3. 完整代码

import re, json, requests
from tqdm import tqdm # 打印进度条的库
inp = input('请输入复制的抖音分享链接:')  # 如:https://v.douyin.com/JVFp8r5/
url = re.findall('https://v.douyin.com/.*?/', inp)[0]  # 链接解析
res = requests.get(url)
vid = re.findall('/video/(.*?)/', res.url)[0]  # vid解析,vid就是视频id,是我自己定义的
api = f'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids={vid}' # 调用api
res = requests.get(api).json()
url = res['item_list'][0]['video']['play_addr']['url_list'][0]  # 视频下载链接解析
url = url.replace('/playwm/', '/play/')  # 去水印
res = requests.get(url, headers={'user-agent': 'chrome'})
total_size = round(int(res.headers["Content-Length"])/1024/1024)
with open(f'{vid}.mp4', 'wb') as f:
    for chunk in tqdm(iterable=res.iter_content(1024*1024), total=total_size, unit='KB'):
        f.write(chunk)

4. 样例输入

抖音短视频分享链接:https://v.douyin.com/JV2WKMu/

1、点击分享
在这里插入图片描述
2、点击复制链接
在这里插入图片描述
3、将复制的文本作为程序的输入

这小狐狸有点东西 #白蛇缘起  #送你一张动态壁纸!  https://v.douyin.com/JVjfqWe/ 复制此链接,打开抖音搜索,直接观看视频!

你可以将复制的链接作为程序的输入,也可以将整个文本作为程序的输入,因为第4行代码会对输入进行解析:

url = re.findall('https://v.douyin.com/.*?/', inp)[0]  # 链接解析

5. 样例输出

6867535672463478024.mp4:https://ghgxj.lanzous.com/i8VNsjb6qli

1、可以看到已经没有水印了:
在这里插入图片描述
2、而带水印的视频是这样的:
在这里插入图片描述

6. 爬虫分析

拿到抖音短视频分享链接后,在电脑浏览器中打开:
在这里插入图片描述
发现链接重定向为:

https://www.iesdouyin.com/share/video/6867535672463478024/?region=CN&mid=6867536423961660174&u_code=191kjhch0&titleType=title&did=3764338486433038&iid=4133808108734896&utm_source=copy_link&utm_campaign=client_share&utm_medium=android&app=aweme

将重定向链接中/video/后面的一串数字定义为vid

vid = 6867535672463478024

F12检查重定向后的页面,Network-XHR中发现一条网络请求:
在这里插入图片描述
请求的api为:

https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=6867535672463478024

响应信息为:
在这里插入图片描述
响应信息中找到视频下载链接:

https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0200f7e0000bt76630o772qo1t21960&ratio=720p&line=0

在浏览器中打开该下载链接会自动下载视频,但却是有水印的。水印的英文单词是watermark,缩写是wm,而视频下载链接中有playwm,我想如果将playwm改为play是不是就没有水印了,实验后发现果真是这样。


总结一下:

  1. 对视频链接发起请求
  2. 从重定向链接中获取vid
  3. vid请求api接口
  4. 从响应中解析无水印下载链接

7. 打包教程

【python】将代码打包为软件:https://blog.csdn.net/qq_42951560/article/details/111086049

8. 温馨提示

水印本质上是对版权的一种保护,本文提供的方法仅供学习交流,请勿非法商用,如果你想转载抖音视频,请征求原作者的同意,并注明出处,拒绝营销。

9. 相关推荐

王者荣耀全英雄高清壁纸下载器:https://blog.csdn.net/qq_42951560/article/details/110914184

posted @ 2020-12-12 23:59  XavierJ  阅读(1538)  评论(0编辑  收藏  举报