百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

手把手教你使用Python下载抖音视频

off999 2024-09-16 00:43 45 浏览 0 评论

我们平时在刷抖音的时候, 经常会看到一些优秀的内容, 想要保存下来。然而尴尬的事情出现了,要么下载的视频有水印,要么视频不允许下载,这个时候是不是只能点赞兴叹。没关系,今天我们使用 Python 来一步一步将视频下载下来,而且没有水印。

先看一下运行结果:

运行完成后,在工程文件夹可以看到,视频已经下载到本地,并且没有水印

接下来, 我们详细讲解一下下载思路,其中使用了requests模块请求网络。

  1. 获取视频地址

点击电脑端分享, 选择复制链接(手机端同样的操作),然后就能获取到一下内容

3.56 h@O.xs dnd:/ 11/09 评论区抽一个人,没奖励,纯抽# 我的女团阵容 # 魔性律动舞 https://v.douyin.com/i8Br9jbr/ 复制此链接,打开Dou音搜索,直接观看视频!

使用正则提取分享链接中的短网址

share_url = input("请粘贴视频地址:  ")
match = re.search(r"https://.*/", share_url)

抖音分享的链接中是短连接,直接访问得到的内容并不是实际的页面。因此我们需要分析从短连接到实际视频页面的是如何流转的。

  1. 分析短链接地址跳转

短链接是将较长的URL转换为一个较短的,易于记忆和分享的链接。

使用浏览器访问短连接地址,发现一共经过了两次重定向, 才最终跳到了实际的视频地址。

因此需要编写一个方法, 获取每次重定向的地址,多次跳转,我们可以递归调用,直到返回None。

# 获取重定向地址    
def __get_redirect_url(url):
        res = requests.get(url)
        return res.history[0].headers['Location'] if len(res.history) > 0 else None
  1. 获取到重定向页面后,开始分析,页面中是如何获取视频播放地址

打开浏览器控制台在网络请求发现,视频链接是通过页面加载完成后,发起的XHR获取的, 其中请求param中aweme_id为视频id

知道请求后, 我们就可以构建链接请求,其中请求地址是固定的,请求参数动态传入

res = requests.get('https://www.douyin.com/aweme/v1/web/aweme/detail/',
                   params=_params, cookies=_cookies,
                   headers=_headers)

请求接口返回的是JSON数据,解析响应结果, 提取视频网址(响应结果其中包含了不同分辨率的视频,感兴趣的可以探索一下,这里使用默认清晰度)

video_url = res.json()["aweme_detail"]["video"]["play_addr"]["url_list"][0]
  1. 获取视频地址后,开始构建下载视频请求, 并将其保存文件中
with requests.get(video_url, headers={
            "Referer": video_url,
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
        }, timeout=60) as r, open("./video.mp4", mode="wb") as file:

视频下载过程中可能会需要等待一些时间,可以单独起一个线程去下载。

在上述获取视频地址的时候, cookie 中需要设置ttwid 和 s_v_web_id (两个值可以从浏览器 cookie 中获取), 否则, 很可能会触发验证码或者请求到空数据。网上有很多资料解释这两个值,感兴趣的可以自行搜索,本文不做过多描述。(以上方式在2023年12月16日使用有效,后续如果使用异常,可以评论区踢我以下)

有需要源代码的可以点赞,评论共同学习。

#文章首发挑战赛#

相关推荐

win7系统图标(win7系统图标网络开关灰色)

1/6首先点击桌面右下角Windows,再点击【控制面板】2/6来到控制面板页面,我们再点击【个性化】3/6来到个性化页面,我们再点击左侧【更改桌面图标】4/6弹出桌面图标设置对话框,我们根据实际需要...

系统的超级宗门等级(系统的超级宗门人物介绍)

《一念永恒》中宗门等级划分分为:顶级宗门、一流宗门、二流宗门、三流宗门和小宗门。顶级宗门位于武道源头,是无数武极强者梦寐以求的存在。一流宗门规模庞大,经济实力雄厚,拥有大量高手强者,地位颇为显赫。二流...

为啥系统重装后有两个系统(为啥系统重装后有两个系统 原来的系统还在)

电脑重装系统后有两个系统,需要重新安装,并且再安装系统时需要把原来的系统所在盘即C盘进行格式化,否则安装完成就还是两个系统,非常占系统内存。1、可能在安装时删除了原来的引导分区。2、可能安装时直接安装...

win10win7双系统引导设置(win10 win7双系统引导)

 步骤如下:  1、首先我是开机时按F8,进入安全模式界面。但是进去的时候等待了几分钟都无反应,上面一直显示请稍等。  2、没办法只有按下复位键重启电脑,因电脑之前装有一键GHOST备份,于是果断还原...

ie缓存清理在哪里(ie缓存如何清除)

?  1、首先打开IE浏览器,选择IE浏览器的工具这一选项;  2、下一步选择工具中的Internet的选项;  3、下一步就是在Internet选项中的常规的选项中;  4、选择常规--浏览历史记录...

华为正版鸿蒙40电脑操作系统下载中文版

安装华为鸿蒙40系统正式版需要先下载官方固件包,然后将固件包放到手机内部存储或外部存储卡中。打开手机设置,选择系统更新,点击“手动更新”,选择已下载的固件包进行安装。安装前请备份重要数据并确保手机电量...

笔记本电脑哪个牌子好用又实惠

1.神舟优雅X4优点:1.35kg很轻巧,14英寸够便携固态硬盘,速度快,有背光键盘。缺点:配置较低,只能轻度办公,售后一般。2.攀升MaxBookP1优点:零噪音,金属机身,固态硬盘,大触摸板,背...

电脑一开机就进入bios界面(电脑开机就会进入bios)

原因一:你的BIOS电池没有电了。解决方式:更换电池即可原因二:没有软驱但启用了软驱解决:可将软驱禁用——开机按DEL进BIOS,选择:STANDARDCMOSFEATURESDRIVEA:...

电脑windows7旗舰版怎么样(电脑windows7旗舰版好不好)

win7旗舰版挺好使的不过现在可以选择更win10。Windows7旗舰版属于微软公司开发的Windows7操作系统系统系列中的功能最高级的版本,也被叫做终结版本,是为了取代WindowsXP...

手机软件怎么升级最新版本呢
  • 手机软件怎么升级最新版本呢
  • 手机软件怎么升级最新版本呢
  • 手机软件怎么升级最新版本呢
  • 手机软件怎么升级最新版本呢
office2010老是弹出安装程序

没看到截图,最好是吧提示信息完整截图发上来。因为信息不会是仅仅“更改安装”几个字的。猜测是已经安装有Office2010了或原本的2010没有卸载干净。

win8玩游戏稳定吗(win8的游戏win10能玩吗)

1、确定驱动是最稳定的公版驱动,新驱动不一定适合游戏不要贸然升级。 2、确定电源已经设置为高性能模式。3、游戏过程开个游戏加加,可以自动为你切换独显,并且自动释放内存。也可以通过它注意下CPU占用,如...

win10系统更新版本(win10系统更新版本能回退吗)

win10怎么更新到1909版本win101909升级方法一:WindowsUpdate更新:1.依次点击开始—设置—更新和安全—windows更新—检查更新,需要更新补丁至最新,如果你经常不更新...

win7升级win10要留多少空间(windows7升级windows10需要多长时间)

win7电脑在系统已经激活并且开启系统更新的情况下,符合条件的系统会在右下角弹出windows10免费升级,直接点击确定就开始升级了。或者下载win10安助手,运行软件后会自动下载windows1...

国外比较开放的浏览器(国外比较开放的浏览器推荐)

1、打开控制面板。2、点击“检查防火墙状态”。3、点击左侧“高级设置”。4、选中“入栈规则”。5、右侧点击“新建规则”。6、选择“端口”。7、选择“TCP”,选中“特定端口”并输入你要开发的端口,或者...

取消回复欢迎 发表评论: