用 yt-dlp 下载整个 YouTube 频道的视频

2022-02-17 12:32:02 浏览数 (1)

yt-dlp 是 youtube-dl 的一个分支,主要基于现在维护不太活跃的 youtube-dlc。该项目的主要重点是添加新功能和补丁,同时与原始项目保持同步。

GitHub 链接:https://github.com/yt-dlp/yt-dlp

其实就 YouTube 视频下载工具来说,youtube-dl 原来是挺方便的,但是现在被限速到只有 60KB/s,而 yt-dlp 算是完美解决了这个问题。

安装

类 UNIX 系统 (MacOS, Linux, BSD)

代码语言:javascript复制
sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
sudo chmod a rx /usr/local/bin/yt-dlp
代码语言:javascript复制
sudo wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/local/bin/yt-dlp
sudo chmod a rx /usr/local/bin/yt-dlp
代码语言:javascript复制
sudo aria2c https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp --dir /usr/local/bin -o yt-dlp
sudo chmod a rx /usr/local/bin/yt-dlp

用 PIP 安装

代码语言:javascript复制
python3 -m pip install -U yt-dlp

用 Homebrew 安装

代码语言:javascript复制
brew install yt-dlp/taps/yt-dlp

直接下载可执行文件

https://github.com/yt-dlp/yt-dlp#release-files

升级

代码语言:javascript复制
yt-dlp -U

如果之前是用 pip 安装的,也可以直接用相同的命令进行更新;若是用 Homebrew 安装也可用以下命令:

代码语言:javascript复制
brew upgrade yt-dlp/taps/yt-dlp

使用方法

下载单个视频或音频

下载分辨率 ≥ 720p 的最佳格式(视频 音频),并另存为 视频id.扩展名(将下面代码中的 %(id)s 改为 %(title)s 可另存为 视频名.扩展名):

代码语言:javascript复制
yt-dlp -f "best[height>=720]" https://www.youtube.com/watch?v=1La4QzGeaaQ -o '%(id)s.%(ext)s'

下载并合并最佳视频流与最佳音频流:

代码语言:javascript复制
yt-dlp -f 'bv* ba' https://www.youtube.com/watch?v=1La4QzGeaaQ -o '%(id)s.%(ext)s'

下载 1080p 视频并与最佳音频流合并:

代码语言:javascript复制
yt-dlp -f 'bv*[height=1080] ba' https://www.youtube.com/watch?v=1La4QzGeaaQ -o '%(id)s.%(ext)s'

下载 mp4 格式的 1080p 视频并与最佳的 m4a 格式音频合并:

代码语言:javascript复制
yt-dlp -f 'bv[height=1080][ext=mp4] ba[ext=m4a]' --merge-output-format mp4 https://www.youtube.com/watch?v=1La4QzGeaaQ -o '%(id)s.mp4'

使用 --embed-thumbnail 将视频缩略图嵌入到视频文件中:

代码语言:javascript复制
yt-dlp -f 'bv[height=1080][ext=mp4] ba[ext=m4a]' --embed-thumbnail --merge-output-format mp4 https://www.youtube.com/watch?v=1La4QzGeaaQ -o '%(id)s.mp4'

使用 --embed-subs 将字幕嵌入视频文件(如果存在):

代码语言:javascript复制
yt-dlp -f 'bv[height=1080][ext=mp4] ba[ext=m4a]' --embed-subs --merge-output-format mp4 https://www.youtube.com/watch?v=1La4QzGeaaQ -o '%(id)s.mp4'

使用 --embed-metadata 嵌入有关视频的元数据:

代码语言:javascript复制
yt-dlp -f 'bv[height=1080][ext=mp4] ba[ext=m4a]' --embed-metadata --merge-output-format mp4 https://www.youtube.com/watch?v=1La4QzGeaaQ -o '%(id)s.mp4'

下载 mp3 格式的最佳质量的音频:

代码语言:javascript复制
yt-dlp -f 'ba' -x --audio-format mp3 https://www.youtube.com/watch?v=1La4QzGeaaQ -o '%(id)s.mp3'

Playlists

下载整个 YouTube 播放列表的 1080p 视频,保存到 channel_id/playlist_id 目录:

代码语言:javascript复制
yt-dlp -f 'bv*[height=1080] ba' --download-archive videos.txt  https://www.youtube.com/playlist?list=PLlVlyGVtvuVnUjA4d6gHKCSrLAAm2n1e6 -o '%(channel_id)s/%(playlist_id)s/%(id)s.%(ext)s'

Channels

将整个 YouTube 频道下载为包含最高质量音频的 720p 视频。保存到以频道名称命名的文件夹中,并以视频的标题命名每个视频:

代码语言:javascript复制
yt-dlp -f 'bv*[height=720] ba' --download-archive videos.txt https://www.youtube.com/c/FootheFlowerhorn/videos -o '%(channel)s/%(title)s.%(ext)s'

0 人点赞