yt-dlp 下载 Youtube 视频备忘

因为众所周知的原因,国内无法访问 YouTube,而我又有需求将一些 YouTube 独家的视频分享给国内的小伙伴。这就必然需要将视频下载下来,但现在 Youtube 对高清晰度的视频早已做了音视频分流,很难直接下载一个完整的高清视频,需要分别下载视频、音频、字幕然后再本地合并,恰巧 yt-dlp 便可满足我的需求,特记录一下操作备忘。
1 使用代理
方法很简单,--proxy 参数,后接代理服务器地址(标准格式)
我这里设置了一个 alias,就不必每次都指定代理了。
alias yt-dlp="yt-dlp --proxy socks5://localhost:1080"
2 查询当前视频的信息(可选)
-F 参数即可。
示例:yt-dlp -F https://www.youtube.com/watch\?v\=cmp35bFYHLw

3 下载对应音视频并合并
注:如果需要合并视频,需要提前安装 ffmpeg 。如果没有安装直接使用参数,不会执行合并操作,会报错。
下载指定编号(步骤2中查询到的)的视频,使用 -f 参数,后接 ID。如果不想指定 ID,可以使用参数 'bv*+ba' 自动匹配最佳视频和音频。
合并视频使用 --merge-output-format 参数,后接指定格式。
示例:yt-dlp -f 271+140 --merge-output-format mp4 https://www.youtube.com/watch?v=cmp35bFYHLw


4 字幕
yt-dlp --sub-lang <语言> --write-sub --convert-subs srt --skip-download <URL>
常见语言: zh-Hant 表示繁体中文, zh-Hans 表示简体中文, en 表示英语。
--convert-subs srt表示转为 srt 格式--skip-download表示只下载字幕,不下载视频文件--write-sub表示下载字幕,若为自动翻译字幕,则为--write-auto-sub
5 字幕文件合并到视频
该部分推荐借助 ffmpeg 完成。
ffmpeg -i <视频文件> -vf subtitles=<字幕文件> -strict -2 <最终文件>




