如何下载带有两个或更多字幕的 Youtube 视频 Youtube-DL

如何下载带有两个或更多字幕的 Youtube 视频 Youtube-DL

我想知道是否有办法使用 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

然而,转换字幕有几个注意事项:

  1. 无论哪种情况,ffmpeg都必须驻留在系统的某个位置。你可以从第三方获取 FFmpeg 的 Windows 版本,例如由 gyan.dev 友情提供构建

  2. 第二个自动选项(显然)不适用于--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
    
  3. 最后,虽然我不知道这个问题的根源,但youtube-dl.exeWindows 10 21H1(2021 年 5 月)上的 (2021.05.16) 似乎无法ffmpeg在系统路径中识别。相反,必须将 的副本ffmpeg.exe直接放在与 相同的文件夹中,才能在后处理过程中将其识别为存在(如果您想节省一些空间,youtube-dl.exe也可以使用具有适当文件扩展名的符号链接 [即])。ffmpeg.exe

相关内容