视频下载利器(二):yt-dlp,轻松下载各平台视频,缓存视频又一途径
本文最后更新于 2024年11月1日 下午
有时候,我们想珍藏一些Up的视频,但是网站上并没有下载按钮,可以使用 youtube-dl 进行下载;但是,现在有时候 youtube-dl 被网站屏蔽,还可以试试 yt-dlp (youtube-dl 的一个分支,提供了更多的功能和更广泛的支持),轻松爬取网络上的视频,并且可以自动调用 FFmpeg ,对视频进行转码与音频合并。
yt-dlp
yt-dlp 其实是基于 youtube-dl 而诞生的,正如官方介绍:
yt-dlp is a youtube-dl fork based on the now inactive youtube-dlc. The main focus of this project is adding new features and patches while also keeping up to date with the original project
yt-dlp是一个youtube-dlp的fork,并且基于如今不在活跃的youtube-dlc而开发。主要是添加一些补丁和特征、特点,并且和官方项目保存同步更新。
相比于 youtube-dlp ,主要优势有:
- 站点支持更加广泛: 支持更多的视频托管网站,不仅限于YouTube,还包括许多其他流行的服务;
- 增强的稳定性:由于更频繁的更新,yt-dlp 在面对网站结构变化时通常更加稳定。所以,如果发现 yt-dlp 不能使用了,那么可以试试看更新 yt-dlp;
- 额外的功能:提供了比 youtube-dlp 更多的功能选项,如: 更好的日志记录、错误处理、 SponsorBlock、格式选择/排序、从浏览器导入cookies等。
- 性能改进:包含对下载速度或其他性能方面的优化。
- 兼容性:虽然两者非常相似,但 yt-dlp 可能会解决一些 youtube-dlp 中存在的 bug 或不兼容问题。
- 扩展性更强: 可以使用外部下载器下载; 如:使用aria2进行下载。
完整的特征,可以查看项目官网:
辅助视频
嘿嘿,做教程视频不易(B站根本不会推荐引流),请务必一键三连嗷~ B站视频地址:https://www.bilibili.com/video/BV1kL4y1P7B3/
支持创作
制作教程不易,如果热心的小伙伴,想支持创作,可以加入我们的电圈(还可以解锁远程协助、好友位😃):
- Mintimate的电圈: https://afdian.com/a/mintimate
- Mintimate的微信赞赏码 👉 如果认为本教程对你很有帮助,可以请我喝咖啡 ☕
当然,也欢迎在B站或YouTube上关注我们:
- Bilibili: https://space.bilibili.com/355567627
- YouTube: https://www.youtube.com/@mintimate/featured
更多:
操作前提
不同系统,安装也不一样。并且 yt-dlp 的安装方法很多,主要有:
- Python 的 pip 安装,适用于已经安装 Python 的设备,并带包管理器 pip;
- 软件包管理器安装,yt-dlp 在各个软件包管理器都有发布;比如: macOS 的 Homebrew、Debian/Ubuntu 的 apt 和 CentOS 的 yum 等;
- 手动配置环境变量,适用于几乎全部平台的系统【本文推荐】。
本文就演示:手动配置环境变量。
主要优点就是:环境干净、后续手动升级方便、一切可控。
额外体验
如果想获得更好的体验,比如:下载视频进行转码、多端视频合并。强烈建议环境变量内配置好FFmpeg:
如果你不知道怎么配置,可以参考教程:
参考视频:
macOS安装
“捷径”方法「推荐」
这是一个一次付费,以后永久便捷的方法哦,并且macOS独占!!!
这里推荐一个“捷径”方法,只需要购买并下载 Downie4
打开后,如果你想下载视频,比如:
1 |
|
只需要复制链接后,并打开 Downie4 :
之后,在这个页面进行粘贴,即可进行下载:
并且,还可以打开浏览器下载,轻松解决Cookies问题,真的是“捷径”哦。
Downie 支持的网站(部分):
下载预编译包
首先,演示一下macOS上如何安装,首先是访问yt-dlp的下载地址:
之后,我们下载我们macOS需要的预编译包:
GitHub 小白可能不知道每个文件是什么,这里介绍一下:
- yt-dlp_macos: 适用于 macOS 的主要可执行文件。
- yt-dlp_macos.zip: 适用于 macOS 的可执行文件 ZIP 压缩包。
- yt-dlp_macos_legacy: 适用于较旧 macOS 版本的可执行文件。
下载后是这样的:
移动文件
为了方便后续管理,我们移动文件;比如,我这里移动到~/myApplication/bin
文件夹内。
打开终端,创建myApplication文件夹:
1 |
|
~
代指$HOME
,也就是用户家目录。举个例子,我的用户名是mintimate,那么家目录就是/Users/mintimate
之后,移动刚刚下载的yt-dlp_macos
到这目录,并重命名为yt-dlp
:
1 |
|
提权yt-dlp
这个时候,我们在yt-dlp
所在的目录内,并不能运行:
很简单,需要使用chmod
命令提权赋予执行权限:
1 |
|
现在,yt-dlp就可以使用,只是要输入绝对路径。为了使用方便,我们可以配置到环境变量。
配置环境变量
为了使用方便,我们配置到环境变量。
你可以直接打开~/.zshrc
进行配置,也可以直接追加,这里我演示直接追加,终端内输入:
1 |
|
之后,就可以在任意位置,配合 Terminal 使用 yt-dlp 命令啦:
Linux安装
Linux的安装配置,其实和macOS差不多(配置预编译包的安装方法),这里也介绍一下。
这里出于方便,使用腾讯云轻量应用服务器进行演示:
如果你并没有Linux设备,想租借一个Linux来学习或者搭建网站,强烈推荐:
另外,为大家争取到优惠*(੭ˊᵕˋ)੭ଘ
注意:
- 我为了方便,使用root用户演示,小伙伴可以使用非root用户,更安全(当然,个人使用,用root用户也可以)。
- 我使用的是腾讯云的WebShell,默认登录用户是
lighthouse
,所以需要使用sudo su - root
切换用户。
下载预编译包
首先是访问yt-dlp的下载地址:
之后,我们下载我们macOS需要的预编译包:
GitHub 小白可能不知道每个文件是什么,这里介绍一下:
- yt-dlp_linux: 适用于 Linux 的主要可执行文件。
- yt-dlp_linux_aarch64: 适用于 ARM64 架构 Linux 的可执行文件。
- yt-dlp_linux_armv7l: 适用于 ARMv7 架构 Linux 的可执行文件。
比如,我下载2022.05.18
版本的yt-dlp:
1 |
|
下载后是这样的:
移动文件
为了方便后续管理,我们移动文件;比如,我这里移动到~/myApplication/bin
文件夹内。
打开终端,创建myApplication文件夹:
1 |
|
~
代指$HOME
,也就是用户家目录。举个例子,我的用户名是mintimate,那么家目录就是/home/mintimate
,而root用户比较特殊,没有修改的情况下,家目录是/root
之后,移动刚刚下载的yt-dlp
到这目录:
1 |
|
提权
这个时候,我们在yt-dlp
所在的目录内,并不能运行:
很简单,需要使用chmod
命令提权赋予执行权限:
1 |
|
现在,yt-dlp就可以使用,只是要输入绝对路径。为了使用方便,我们可以配置到环境变量。
配置环境变量
为了使用方便,我们配置到环境变量。
你可以直接打开~/.zshrc
进行配置,也可以直接追加,这里我演示直接追加,终端内输入:
1 |
|
比如,我的Linux是用ZSH,所以就使用echo 'export PATH="$HOME/myApplication/bin:$PATH"' >> ~/.zshrc
和source ~/.zshrc
这两条:
之后,配合Terminal使用yt-dlp命令啦。
Windows安装
“捷径”方法【推荐】
这是一个一次付费,以后永久便捷的方法哦,并且macOS独占!!!
这里推荐一个“捷径”方法,只需要购买并下载VidJuice UniTube - 在线音视频下载工具
访问yt-dlp地址
Windows的安装配置,其实就有点不一样了(配置到环境变量的话),这里也介绍一下。
首先是访问yt-dlp的下载地址:
下载预编译包
之后,我们下载我们macOS需要的预编译包:
GitHub 小白可能不知道每个文件是什么,这里介绍一下:
- yt-dlp.exe: 适用于 Windows 的主要可执行文件。
- yt-dlp_min.exe: 适用于 Windows 的精简版可执行文件。
- yt-dlp_win.zip: 适用于 Windows 的可执行文件 ZIP 压缩包。
- yt-dlp_x86.exe: 适用于 32 位 Windows 的可执行文件。
比如,我下载2022.05.18
版本的yt-dlp:
1 |
|
下载后是这样的:
移动文件
为了方便后续管理,我们移动文件;比如,我这里移动到D盘的myApplication的bin
文件夹内。
创建myApplication/bin文件夹:
之后,移动刚刚下载的yt-dlp.exe
到这目录:
配置环境变量
为了使用方便,我们配置到环境变量。
你可以右键此电脑
,选择高级环境变量设置进行配置:
选择PATH
进行追加:
之后,配合Powershell、CMD或者Windows Terminal 使用yt-dlp命令啦:
使用:下载视频
现在,我们在各个平台都下载并配置了yt-dlp,我们就可以使用了。最简单的例子,我们下载视频。
首先,我们确定当前的Terminal/Windows Powershell的地址:
1 |
|
我们调用yt-dlp,默认就是下载到当前目录;所以,我们现在切换到下载文件内:
1 |
|
之后,下载你喜欢的up视频,比如:
只需要复制网址,并在terminal内使用yt-dlp即可下载视频:
1 |
|
默认下载清晰度最高的视频
使用:只下载音频
如果我们只想下载音频怎么办呢?很简单,添加-x
参数即可只下载音频,添加--audio-format mp3
就可以把下载下来的当音频视频转码为mp3,所以你如果喜欢某个Up的视频,但是只想下载声音:
1 |
|
使用:传入cookies
一些情况下,我们下载一些视频需要进行鉴权(比如:某视频平台需要会员,才可以下载高清视频)。但是,我们浏览器上已经登录会员了,yt-dlp如何调去呢?
这个时候,就可以用yt-dlp的特性:调取浏览器Cookies:
- cookies-from-browser:从浏览器调取cookies,你也可以指定浏览器,比如:
--cookies-from-browser chrome
就是调取chrome浏览器的cookies。目前支持的浏览器选项:brave, chrome,chromium, edge, firefox, opera, safari,vivaldi。
举个例子,我们还是下载刚刚那个Up的视频,只需要:
1 |
|
这个时候,就需要用户手动信任:
Windwos和Linux也是一样的。
使用:调用aria2
一些情况下,我们会使用多线程下载器,充分利用我们的带宽。比如:使用aria2。
yt-dlp就支持调用外部下载器;首先,确保你已经配置了aria2:
需要配置到环境变量内,方法同上文配置yt-dlp一样。可以参考之前的aria2博客。
之后,我们使用参数即可:
- external-downloader:下载器选择,可以选择aria2c, avconv, axel, curl, ffmpeg, httpie,wget。
- downloader-args:下载器的额外参数
举个例子,我使用yt-dlp下载视频,并配合aria2:
1 |
|
8线程、分片(每分1M,且视频支持分片下载,否则不生效)
More
更多yt-dlp的使用技巧,可以查看yt-dlp的官方文档哦。另外,yt-dlp基于youtube-dl,所以…… 其实youtube-dl支持的,yt-dlp都支持。
另外,如果是下载B站视频,还是建议you-get会更好。