2024年Python最全Python实现超简单【抖音】无水印视频批量下载

现在我们需要记住url中/user后面的一串数字,也就是4195355415549012,这是我们的用户id。以后只要有了这样的用户ID,直接替换进url即可(时间戳也需要修改一下)

02 获取用户下面的所有的视频id


我们刚刚获取了视频主页的链接,现在我们要通过主页链接来获取当前页面下的所有视频。为了方便我们观看和调试,我们将Chrome开成iPhone模式。

在这里插入图片描述

1. 获取请求链接

将Network设置成XHR,重新刷新一下页面,获取请求内容:

在这里插入图片描述

我们可以看到上面选中的那个请求,返回的是一串json,我们将内容复制下来看看,搜索返回的json中有关video的字段,通过下图我们就可以看到video里面有个url_list,里面有两个不同的url,这两个url其实就是视频相关的地址了,但是还有点问题,这两个url点进去并不能直接看到视频。

在这里插入图片描述

2. 获取视频链接

这里我们需要将url做一点点修改。我们将/play修改成/playmw就可以了,这个时候我们发现,这两个视频地址被重定向成正常的视频地址了。(下面来说为什么要加mw,这个代表什么)

在这里插入图片描述

这样我们就相当于顺利拿到视频的地址了,我们可以去json中获取所有的视频url链接:

pattern = re.compile(‘“(https://aweme.snssdk.com/aweme/v1/play/.*?)”’)

result = pattern.findall(data)

result = [i.replace(“/play/”, “/playwm/”) for i in result]

for i in result:

print(i)

在这里插入图片描述

3. 水印问题

关于水印问题,看了简书上有篇文章有介绍,水印与无水印之间的区别,这边我就不作详细介绍了。其实我们一开始拿到的url就是无水印的,但是链接本身并没重定向到无水印的视频,加上wm之后,url会重定向到有水印的视频。

在这里插入图片描述

完整代码


import re

import requests

import os

header = {

“accept”: “text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8”,

“accept-encoding”: “gzip, deflate, sdch, br”,

“accept-language”: “en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4”,

“cache-control”: “no-cache”,

“x-tt-logid”: “202005280227480100140460221A4FD1CF”,

“x-tt-trace-host”: “01ec7cfa064a667fc06b9359628310d7439e62ebd3f237434a2ab55522586ad295c69c0af06484df374b32e14ddb3f000f9912025769ad3b7c6273355e56a9332d1901cddf01df6db00b0b6f4b3f159082”,

‘user-agent’: ‘Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1’,

‘cookie’: ‘tt_webid=6831576518742705677; _ba=BA0.2-20200528-5199e-qC83gMfiQQZIHGPAbWkc; _ga=GA1.2.1655972543.1590600365; _gid=GA1.2.843249182.1590600365’

}

data = {

“sec_uid”: “MS4wLjABAAAAlwXCzzm7SmBfdZAsqQ_wVVUbpTvUSX1WC_x8HAjMa3gLb88-MwKL7s4OqlYntX4r”,

“count”: “21”,

“max_cursor”: “0”,

“aid”: “1128”,

“_signature”: “1rexVRAciIE-bZMoZ46qv9a3sU”,

“dytk”: “96ad80961288263ad9d1cff2895d0636”

}

url = “https://www.iesdouyin.com/web/api/v2/aweme/post”

url = “https://www.iesdouyin.com/share/user/4195355415549012?u_code=c23d6456gli&sec_uid=MS4wLjABAAAAlwXCzzm7SmBfdZAsqQ_wVVUbpTvUSX1WC_x8HAjMa3gLb88-MwKL7s4OqlYntX4r&timestamp=1590603009&utm_source=copy&utm_campaign=client_share&utm_medium=android&share_app_name=douyin”

response = requests.get(url, headers=header)

data = response.text

pattern = re.compile(‘“(https://aweme.snssdk.com/aweme/v1/play/.*?)”’)

result = pattern.findall(data)

result = [i.split(“&ratio”)[0] for i in result]

result2 = [i.replace(“/play/”, “/playwm/”) for i in result]

for i in result:

print(i)

headers = {

‘user-agent’: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36’,

}

if not os.path.exists(“无水印”):

在这里插入图片描述

感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 21
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值