下载 Youtube
的方式可以用 you-get
, youtube-dl
, yt-dlp
。
我对于前者使用较少,主要使用后面2个。
但是近年来 youtube-dl
被 Youtube
干了多次,几年前被限速后我就没有继续使用了。后面再次用到的时候,大佬们开了 yt-dlp
的新坑。两者在命令上基本通用。
结合这么多年的使用,记下了一些常用命令以供参考。
以为 TVB《水浒无间道》的下载作为例子。
1.参数介绍
2.查看该影片音频和视频所有格式
3.查看该影片所有字幕
4.下载视频
5.下载视频列表
6.下载视频/列表和字幕
7.通用命令
8.参考资料
通用命令
1.参数介绍
yt-dlp
# 代理
--proxy socks5://xxx:xx
# 下载视频格式 + 音频格式
-f 248+140
# 封装后缀
--merge-output-format mkv
#下载字幕并转换格式
--write-subs --write-auto-subs --embed-subs --compat-options no-keep-subs --sub-lang zh-Hans-zh-HK-bNc5iLxGGqE.* --convert-subs srt
#下载地址
'https://www.youtube.com/watch?v=hHNt1HS-ei4'
2.查看该影片音频和视频所有格式
yt-dlp -F https://www.youtube.com/watch?v=hHNt1HS-ei4
3.查看该影片所有字幕
yt-dlp --list-subs https://www.youtube.com/watch?v=hHNt1HS-ei4
下载并写入字幕
yt-dlp --write-subs zh-Hans --sub-format json3 https://www.youtube.com/watch?v=hHNt1HS-ei4
如果你的网络需要代理,只需要加入--proxy
参数即可,yt-dlp
支持socks5
代理。
yt-dlp --proxy socks5://xxx:xx -F https://www.youtube.com/watch?v=hHNt1HS-ei4
4.下载视频
#下载 最高分辨率视频为mp4,音频m4a,封装为mp4格式,适合浏览器解码或者电视解码,不过体积比较大
yt-dlp -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 https://www.youtube.com/watch?v=hHNt1HS-ei4
# 下载 最高分辨率视频为webm,音频webm,封装为mkv格式,适合支持265解码的播放器。体积较小
yt-dlp -f 'bestvideo[ext=webm]+bestaudio[ext=webm]/bestvideo+bestaudio' --merge-output-format mkv https://www.youtube.com/watch?v=hHNt1HS-ei4
选择格式
上述命令参数在最新的yt-dlp
中会报错,看文档似乎没问题,未知原因,懒得去纠结,不过我们可以选择其他参数。
# 248 webm 1920x1080
# 140 m4a audio only
yt-dlp -f '248+140' --merge-output-format mkv https://www.youtube.com/watch?v=hHNt1HS-ei4
由于这份影片是粤语,如果需要加上字幕,可以参考下面命令。
5.下载视频列表
yt-dlp -f 303+140 --merge-output-format mkv --playlist-items 0-30 https://www.youtube.com/playlist?list=PLUxlohmoXralbdItmKbTM-GQ_3_P4YKDv
6.下载视频/列表和字幕
参考上述命令的间接查看视频,音频,和字幕格式,使用代理下载 并合并视频文件。
下载视频1,使用socks5
代理,下载视频 248
格式,音频 140
格式,下载 字幕 zh-Hans-zh-HK-bNc5iLxGGqE
格式,合并为mkv
封装格式。
yt-dlp --proxy socks5://xxx:xx -f 248+140 --merge-output-format mkv --write-subs --write-auto-subs --embed-subs --compat-options no-keep-subs --sub-lang zh-Hans-zh-HK-bNc5iLxGGqE.* --convert-subs srt https://www.youtube.com/watch?v=hHNt1HS-ei4
上述条件不变,改为下载视频列表,只需要加上下面参数:
--playlist-items 0-30 https://www.youtube.com/playlist?list=PLUxlohmoXralbdItmKbTM-GQ_3_P4YKDv
7.通用命令
yt-dlp --merge-output-format mkv --write-subs --write-auto-subs --embed-subs --compat-options no-keep-subs --sub-lang en.* --convert-subs srt --yes-playlist "https://www.youtube.com/playlist?list={playlist_id}" -o "%(playlist_index)s-%(title)s.%(ext)s"
8.参考资料
reddit: How To Download YouTube Video (From Playlist) with Subtitles?