Debian 11 安装 yt-dlp 视频下载工具
TIME 2023-04-25 19:48
yt-dlp 是一个命令行视频下载工具,是 YouTube-DL(另一个流行的命令行下载工具)的一个分支。与 YouTube-DL 相比,yt-dlp 提供了更多的功能和选项,并且包含了一些额外的功能和修复了一些已知问题。以下是 yt-dlp 的主要特点:
- 多协议支持:yt-dlp 支持 YouTube、Facebook、Twitter、Instagram、SoundCloud、TED、BBC 等多种视频网站的下载。
- 音频提取:yt-dlp 可以从视频中提取音频,并保存为 MP3、AAC、OGG 或者 M4A 格式。
- 多媒体格式支持:yt-dlp 支持下载多种视频格式,包括 MP4、WebM、FLV、MKV 和 AVI 等。
- 弹幕下载:yt-dlp 支持下载视频的弹幕,并且可以将弹幕保存为 SRT、ASS 或 JSON 格式。
- 自定义选项:yt-dlp 提供了多个自定义选项,可以配置下载速度、重试次数、缓存大小等参数。
- 开放源代码:yt-dlp 是一个开源项目,所有的源代码都可以在 GitHub 上获取。
总之,yt-dlp 是一个功能强大、易于使用的命令行视频下载工具,适用于各种场景下的视频下载和管理。
1.更新系统软件包列表,以确保可以获取最新版本的软件包
sudo apt update
2.安装依赖软件包。yt-dlp 需要 Python 和 FFmpeg 两个软件包的支持,您可以使用以下命令安装它们:(如已安装则忽略跳过)
sudo apt install python ffmpeg
3.下载 yt-dlp 安装脚本。运行以下命令将下载 yt-dlp 最新版本的安装脚本并保存到 /usr/bin/yt-dlp
目录
sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/bin/yt-dlp
这里也可以使用 apt install yt-dlp
命令来安装 yt-dlp,那么将会从 Debian 系统软件源中获取 yt-dlp 的预编译二进制包,并自动安装到系统上。这种方法的优点是安装过程简单快捷,不需要手动下载和编译源代码,适合普通用户使用。
然而,由于 Debian 系统软件源的更新速度相对较慢,因此可能无法获取到最新版本的 yt-dlp。如果您希望使用最新版本的 yt-dlp,可以通过手动编译源代码或者使用 curl 命令从 GitHub 上下载最新的可执行文件来安装。
4.将 yt-dlp 安装脚本设置为可执行
chmod a+rx /usr/bin/yt-dlp
5.查看其版本以验证 yt-dlp 是否已经成功安装
yt-dlp --version #查看yt-dlp版本 2023.03.04 #返回结果,看来版本还是挺新的(今天是2023-04-25)
至此,您已经成功安装了 yt-dlp。现在,您可以使用 yt-dlp 来下载视频了
下载视频演示
简单示例,下载一个youtube的视频(不推荐该命令进行下载)
yt-dlp -f best -o '%(title)s.%(ext)s' 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'
以下是 yt-dlp 命令的各个组成部分的详细解释:
yt-dlp
:命令名称,用于启动 yt-dlp 程序并执行相应操作。-f best
:选项,表示下载视频的最佳质量。在这种情况下,yt-dlp 会自动选择可用的最高质量视频,并尝试下载它。-o '%(title)s.%(ext)s'
:选项,表示输出文件名格式。在这种情况下,输出文件名将以视频标题为文件名,并根据视频文件的扩展名来检测适当的文件格式。例如,对于 MP4 格式的视频,输出文件名可能类似于“Never Gonna Give You Up.mp4”。'https://www.youtube.com/watch?v=dQw4w9WgXcQ'
:参数,表示要下载的视频 URL。在这种情况下,URL 是一个 YouTube 视频的地址,并且其唯一标识符为“dQw4w9WgXcQ”。请注意,在实际使用时,需要替换此处的 URL 和视频 ID 为实际的值。
因此,该命令的作用是从指定的 YouTube 视频 URL 下载最佳质量的视频,并将其保存为以视频标题为文件名的文件,同时在文件名中包含了视频的扩展名。
-f best
参数选择的“最佳预合并格式”可能不是最优选项。因为该选项只能下载已经预先合并的视频和音频格式,而这个预合并过程可能会损失一些质量,并且不一定与原始文件的质量相同。另外,某些格式可能只提供了较低质量的预合并版本,而更高质量的版本需要手动合并。
yt-dlp 下载指定分辨率和码率的视频
yt-dlp -F https://www.youtube.com/watch?v=vlDzYIIOYmM
yt-dlp
是 YouTube 视频下载工具 yt-dlp 的命令行名称。
-F
参数会列出该视频可用的所有格式和质量选项。
https://www.youtube.com/watch?v=vlDzYIIOYmM
是要下载的 YouTube 视频的 URL。
[youtube] vlDzYIIOYmM: Downloading webpage [youtube] vlDzYIIOYmM: Downloading android player API JSON [info] Available formats for vlDzYIIOYmM: ID EXT RESOLUTION FPS CH │ FILESIZE TBR PROTO │ VCODEC VBR ACODEC ABR ASR MORE INFO ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── sb2 mhtml 48x27 0 │ mhtml │ images storyboard sb1 mhtml 80x45 0 │ mhtml │ images storyboard sb0 mhtml 160x90 0 │ mhtml │ images storyboard 599 m4a audio only 2 │ 911.19KiB 31k dash │ audio only mp4a.40.5 31k 22k ultralow, m4a_dash 600 webm audio only 2 │ 1.01MiB 35k dash │ audio only opus 35k 48k ultralow, webm_dash 249-drc webm audio only 2 │ 1.47MiB 51k dash │ audio only opus 51k 48k low, DRC, webm_dash 250-drc webm audio only 2 │ 1.96MiB 68k dash │ audio only opus 68k 48k low, DRC, webm_dash 139 m4a audio only 2 │ 1.41MiB 49k dash │ audio only mp4a.40.5 49k 22k low, m4a_dash 249 webm audio only 2 │ 1.48MiB 51k dash │ audio only opus 51k 48k low, webm_dash 250 webm audio only 2 │ 1.97MiB 68k dash │ audio only opus 68k 48k low, webm_dash 140-drc m4a audio only 2 │ 3.74MiB 129k dash │ audio only mp4a.40.2 129k 44k medium, DRC, m4a_dash 251-drc webm audio only 2 │ 3.86MiB 134k dash │ audio only opus 134k 48k medium, DRC, webm_dash 140 m4a audio only 2 │ 3.74MiB 129k dash │ audio only mp4a.40.2 129k 44k medium, m4a_dash 251 webm audio only 2 │ 3.88MiB 134k dash │ audio only opus 134k 48k medium, webm_dash 17 3gp 176x144 7 1 │ 2.22MiB 77k https │ mp4v.20.3 77k mp4a.40.2 0k 22k 144p 597 mp4 256x144 15 │ 922.50KiB 31k dash │ avc1.4d400b 31k video only 144p, mp4_dash 598 webm 256x144 15 │ 902.72KiB 31k dash │ vp9 31k video only 144p, webm_dash 394 mp4 256x144 30 │ 2.89MiB 100k dash │ av01.0.00M.08 100k video only 144p, mp4_dash 160 mp4 256x144 30 │ 2.44MiB 85k dash │ avc1.4d400c 85k video only 144p, mp4_dash 278 webm 256x144 30 │ 2.35MiB 82k dash │ vp9 82k video only 144p, webm_dash 395 mp4 426x240 30 │ 6.99MiB 242k dash │ av01.0.00M.08 242k video only 240p, mp4_dash 133 mp4 426x240 30 │ 5.64MiB 195k dash │ avc1.4d4015 195k video only 240p, mp4_dash 242 webm 426x240 30 │ 4.99MiB 173k dash │ vp9 173k video only 240p, webm_dash 396 mp4 640x360 30 │ 12.24MiB 424k dash │ av01.0.01M.08 424k video only 360p, mp4_dash 134 mp4 640x360 30 │ 12.87MiB 446k dash │ avc1.4d401e 446k video only 360p, mp4_dash 18 mp4 640x360 30 2 │ ~ 16.99MiB 575k https │ avc1.42001E 575k mp4a.40.2 0k 44k 360p 243 webm 640x360 30 │ 10.76MiB 373k dash │ vp9 373k video only 360p, webm_dash 397 mp4 854x480 30 │ 22.22MiB 770k dash │ av01.0.04M.08 770k video only 480p, mp4_dash 135 mp4 854x480 30 │ 22.15MiB 768k dash │ avc1.4d401f 768k video only 480p, mp4_dash 244 webm 854x480 30 │ 19.67MiB 682k dash │ vp9 682k video only 480p, webm_dash 22 mp4 1280x720 30 2 │ ~ 40.55MiB 1373k https │ avc1.64001F 1373k mp4a.40.2 0k 44k 720p 398 mp4 1280x720 30 │ 50.83MiB 1761k dash │ av01.0.05M.08 1761k video only 720p, mp4_dash 136 mp4 1280x720 30 │ 35.89MiB 1244k dash │ avc1.4d401f 1244k video only 720p, mp4_dash 247 webm 1280x720 30 │ 39.59MiB 1372k dash │ vp9 1372k video only 720p, webm_dash 399 mp4 1920x1080 30 │ 76.42MiB 2648k dash │ av01.0.08M.08 2648k video only 1080p, mp4_dash 137 mp4 1920x1080 30 │ 107.10MiB 3711k dash │ avc1.640028 3711k video only 1080p, mp4_dash 248 webm 1920x1080 30 │ 70.19MiB 2432k dash │ vp9 2432k video only 1080p, webm_dash 400 mp4 2560x1440 30 │ 233.84MiB 8103k dash │ av01.0.12M.08 8103k video only 1440p, mp4_dash 271 webm 2560x1440 30 │ 225.45MiB 7812k dash │ vp9 7812k video only 1440p, webm_dash 401 mp4 3840x2160 30 │ 414.55MiB 14365k dash │ av01.0.12M.08 14365k video only 2160p, mp4_dash 313 webm 3840x2160 30 │ 467.90MiB 16214k dash │ vp9 16214k video only 2160p, webm_dash
在这个结果中,每行包含一个格式代码、视频文件扩展名、分辨率和其他细节信息。您可以根据需要选择合适的格式进行下载
假设我们要下载4K分辨率mp4格式的视频的话,命令即
yt-dlp -f 401+140 https://www.youtube.com/watch?v=vlDzYIIOYmM
-f
参数用于指定要下载的格式代码
401
表示要下载的视频格式为 mp4,分辨率为 3840×2160,这里的4K分辨率的视频和音频是分离的
140
表示要下载的音频格式为 webm,用于合并视频和音频流。,不添加此项的话,下载的视频将会没有声音
.mp4
格式的视频,音频就要选择 .m4a
格式的音频选择
.webm
格式的音频,输出的格式为 .mkv
下载2K分辨率mp4格式的视频的话,命令即
yt-dlp -f 400+140 https://www.youtube.com/watch?v=vlDzYIIOYmM
原理同上
下载1080p视频命令
yt-dlp -f 399+140 https://www.youtube.com/watch?v=vlDzYIIOYmM #视频码率低 yt-dlp -f 137+140 https://www.youtube.com/watch?v=vlDzYIIOYmM #视频码率高
如果将要降低音频的音质可以选择相应的选项
如何用yt-dlp进行批量下载
使用 yt-dlp 进行批量下载通常需要使用一个文本文件,其中包含要下载的所有视频的 URL。您可以将每个 URL 放在单独的一行上,并将该文件传递给 yt-dlp。以下是使用 yt-dlp 进行批量下载的基本步骤:
-
- 创建一个文本文件,例如
videos.txt
,并将要下载的所有视频的 URL 复制到该文件中,每个 URL 单独占用一行。
假设我们在/home/wwwroot/YouTubeVideo目录创建videos.txt
命令即cd /home/wwwroot/YouTubeVideo ; touch videos.txt ; vi videos.txt
编辑完成后保存并且退出编辑模式
- 打开终端窗口,运行以下命令进行批量下载:
yt-dlp -a -f 137+140 -i -v --batch-file=videos.txt
-a
参数表示采用追加模式下载,即将下载的视频添加到列表中的现有视频后面。
-f 137+251
表示选择137=1080p分辨率最佳质量MP4格式的视频
,251=最佳的音频
,合并格式进行下载。
-i
参数表示允许忽略下载过程中出现的错误,并继续下载其他视频。
-v
参数启用详细模式,在终端上显示更多的日志信息。
--batch-file
参数指定包含要下载的视频 URL 的文件名。也不知道yt-dlp
为什么不听话,我指定下载137+140
组合,它非要给我乱下载,非要自作主张的给我下载313+251
组合,所以这方法不管用
但是通过yt-dlp -F
查询,确实可以下载137+140
组合,也不知道问题出在什么地方
- 创建一个文本文件,例如
点击数:22