欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-17 16:08:54
fafds...


1. 成果展示

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

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、点击分享
【python】15行代码下载抖音无水印短视频
2、点击复制链接
【python】15行代码下载抖音无水印短视频
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、可以看到已经没有水印了:
【python】15行代码下载抖音无水印短视频
2、而带水印的视频是这样的:
【python】15行代码下载抖音无水印短视频

6. 爬虫分析

拿到抖音短视频分享链接后,在电脑浏览器中打开:
【python】15行代码下载抖音无水印短视频
发现链接重定向为:

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中发现一条网络请求:
【python】15行代码下载抖音无水印短视频
请求的api为:

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

响应信息为:
【python】15行代码下载抖音无水印短视频
响应信息中找到视频下载链接:

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

本文地址:https://blog.csdn.net/qq_42951560/article/details/111085969