在太阳下
不管你喜不喜欢,高不高兴,爱与不爱;太阳照旧照耀着你!温暖着你!

Debian 11 安装 yt-dlp 视频下载工具

Debian 11 安装 yt-dlp 视频下载工具
TIME 2023-04-25 19:48

yt-dlp 介绍
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 是一个功能强大、易于使用的命令行视频下载工具,适用于各种场景下的视频下载和管理。

 

 安装 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 进行批量下载的基本步骤:

    1. 创建一个文本文件,例如 videos.txt,并将要下载的所有视频的 URL 复制到该文件中,每个 URL 单独占用一行。
      假设我们在/home/wwwroot/YouTubeVideo目录创建videos.txt命令即

      cd /home/wwwroot/YouTubeVideo ; touch videos.txt ; vi videos.txt

      编辑完成后保存并且退出编辑模式

    2. 打开终端窗口,运行以下命令进行批量下载:
      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

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
Verified by MonsterInsights