我想知道是否有办法使用 Youtube-DL 下载带有 2 个或更多字幕的 Youtube 视频并忽略自动生成的字幕?
答案1
总结
有没有办法下载带有 2 个或更多字幕的 Youtube 视频
youtuble-dl
并忽略自动生成的字幕?
是的。使用--sub-lang
选项指定您感兴趣的字幕语言,如所选答案中暗示的那样这个超级用户问题。或者,您也可以使用该--all-subs
选项。
我正在尝试获取 YouTube 视频的 2 个以上字幕,但该教程仅适用于 1 个字幕。
引用youtube-dl 的官方文档,该--sub-lang
选项采用:
要下载的字幕语言(可选),以逗号分隔,使用 --list-subs 获取可用的语言标签
实例
使用这部历史韩剧例如,我们可以看到有 6 种可能的字幕语言(YouTube 播放器 > 设置 > 字幕/CC):
阿拉伯
英语
韩国人
西班牙语
土耳其
韩语(自动生成)
使用例如:
youtube-dl --list-subs https://www.youtube.com/watch?v=B6xGVEXcj3k
将生成一个字幕选项列表,其中包括特定于给定视频的字幕选项列表:
...
hmn vtt, ttml, srv3, srv2, srv1
Available subtitles for B6xGVEXcj3k:
Language formats
ko vtt, ttml, srv3, srv2, srv1
es vtt, ttml, srv3, srv2, srv1
tr vtt, ttml, srv3, srv2, srv1
en vtt, ttml, srv3, srv2, srv1
ar vtt, ttml, srv3, srv2, srv1
Korean (auto-generated)
请注意,由于省略了副标题,因此仅列出 5 个相关选项。
然后,您可以使用以下方式下载英语和西班牙语字幕(以及视频):
youtube-dl --sub-lang en,es --write-sub https://www.youtube.com/watch?v=B6xGVEXcj3k
要跳过下载视频并仅获取字幕,请添加--skip-download
选项,例如:
youtube-dl --sub-lang en,es --write-sub --skip-download https://www.youtube.com/watch?v=B6xGVEXcj3k
您甚至可以通过以下选项一次性获取全部 5 个可用的字幕文件--all-subs
:
youtube-dl --all-subs --skip-download https://www.youtube.com/watch?v=B6xGVEXcj3k
转换字幕
请注意,YouTube 字幕默认为.vtt
(WEBVTT) 格式。如果您不希望字幕采用该.vtt
格式,你可以手动ffmpeg
转换它们例如:
ffmpeg -i input.vtt output.srt
还有一个选项可以--convert-subs
自动使用 youtube-dl/FFmpeg,例如:
youtube-dl --sub-lang en,es --write-sub --convert-subs srt https://www.youtube.com/watch?v=B6xGVEXcj3k
然而,转换字幕有几个注意事项:
无论哪种情况,
ffmpeg
都必须驻留在系统的某个位置。你可以从第三方获取 FFmpeg 的 Windows 版本,例如由 gyan.dev 友情提供构建。第二个自动选项(显然)不适用于
--skip-download
目前例如:# Fail! Subtitles will be downloaded but remain in their original e.g. # .vtt format. Confirmed with youtube-dl.exe v2021.05.16. youtube-dl --sub-lang en,es --write-sub --convert-subs srt --skip-download https://www.youtube.com/watch?v=B6xGVEXcj3k
最后,虽然我不知道这个问题的根源,但
youtube-dl.exe
Windows 10 21H1(2021 年 5 月)上的 (2021.05.16) 似乎无法ffmpeg
在系统路径中识别。相反,必须将 的副本ffmpeg.exe
直接放在与 相同的文件夹中,才能在后处理过程中将其识别为存在(如果您想节省一些空间,youtube-dl.exe
也可以使用具有适当文件扩展名的符号链接 [即])。ffmpeg.exe