之前一直使用,Youtube-dl下载Youtube上的视频,但最近可能是youtube-dl的维护没有跟上Youtube规则的变更,下载速度出奇的慢……
此时,yt-dlp进入视野,而yt-dlp 是现在陷入困境的 youtube-dl 的一个分支,除了积极维护之外,yt-dlp 最舒服的地方应该是它遵循与 youtube-dl 类似的命令。
安装yt-dlp
可以点击链接(yt-dlp)进入官方文档查看,针对不同系统、不同需求有多种安装方式,我这里是使用pip的方式来安装的,更新和安装是同一个命令。
python3 -m pip install -u yt-dlp
使用yt-dlp下载youtube视频和播放列表的一些常见用法示例:
格式选择和过滤的所有选项有很多,都可以在这里找到。
打印出可用的格式和信息:
yt-dlp --list-formats https://www.youtube.com/watch?v=8wXuSnFmbWU
打印视频和音频流的 JSON 信息:
yt-dlp --dump-json https://www.youtube.com/watch?v=8wXuSnFmbWU
下载单个视频或音频:
下载分辨率等于或大于 720p 的最佳格式(视频 + 音频)。并将此文件另存为 video_id.extension (1La4QzGeaaQ.mp4):
yt-dlp -f "best[height>=720]" https://www.youtube.com/watch?v=8wXuSnFmbWU -o '%(id)s.%(ext)s'
下载最佳视频流并将其与最佳音频流合并:
yt-dlp -f 'bv*+ba' https://www.youtube.com/watch?v=8wXuSnFmbWU -o '%(id)s.%(ext)s'
下载 1080p 视频并与最佳音频流合并:
yt-dlp -f 'bv*[height=1080]+ba' https://www.youtube.com/watch?v=8wXuSnFmbWU -o '%(id)s.%(ext)s'
下载 mp4 格式的 1080p 视频并与最佳 m4a 音频格式合并:
yt-dlp -f 'bv[height=1080][ext=mp4]+ba[ext=m4a]' --merge-output-format mp4 https://www.youtube.com/watch?v=8wXuSnFmbWU -o '%(id)s.mp4'
使用 –embed-thumbnail 将视频缩略图嵌入到视频文件中:
yt-dlp -f 'bv[height=1080][ext=mp4]+ba[ext=m4a]' --embed-thumbnail --merge-output-format mp4 https://www.youtube.com/watch?v=8wXuSnFmbWU -o '%(id)s.mp4'
将字幕嵌入视频文件(如果存在)–embed-subs:
yt-dlp -f 'bv[height=1080][ext=mp4]+ba[ext=m4a]' --embed-metadata --merge-output-format mp4 https://www.youtube.com/watch?v=8wXuSnFmbWU -o '%(id)s.mp4'
将最佳音频转换为 mp3 文件:
yt-dlp -f 'ba' -x --audio-format mp3 https://www.youtube.com/watch?v=8wXuSnFmbWU -o '%(id)s.mp3'
下载播放列表:
下载包含 1080p 视频和最佳音频的 YouTube 播放列表。将视频保存到 channel_id/playlist_id 目录中,并将视频添加到存档文本文件中:
yt-dlp -f 'bv*[height=1080]+ba' --download-archive videos.txt https://www.youtube.com/playlist?list=PLQ_PIlf6OzqI34ZPxXk4HGnqADpiF9rcV -o '%(channel_id)s/%(playlist_id)s/%(id)s.%(ext)s'
下载频道:
将整个 YouTube 频道下载为具有最佳音频的 720p 视频。保存到以频道名称命名的文件夹中,视频文件是视频的标题。
yt-dlp -f 'bv*[height=720]+ba' --download-archive videos.txt https://www.youtube.com/c/SoothingRelaxation/videos -o '%(channel)s/%(title)s.%(ext)s'
发表回复