image-20250107141126284

要下载 Vimeo 上的视频以及自动生成的 CC(Closed Captions)字幕,使用yt-dlp即可轻松实现。

yt-dlp 是一个非常强大的命令行工具,可以下载 Vimeo 视频以及其字幕,包括自动生成的字幕。它是 youtube-dl 的一个分支,功能更强大且更新频繁。

安装和使用 yt-dlp:

  1. 安装 yt-dlp

    • 如果你还没有安装yt-dlp ,可以通过pip安装:

      1
      pip install yt-dlp
  2. 下载视频和字幕

    • 通过命令行执行以下命令来下载 Vimeo 视频及其字幕:

      1
      yt-dlp --write-auto-sub --sub-lang en --convert-subs srt https://vimeo.com/视频ID
      • --write-auto-sub: 下载自动生成的字幕(如果有的话)。
      • --sub-lang en: 指定下载英语字幕。如果你需要其他语言,替换 en 为相应的语言代码(如 zh 表示中文)。
      • --convert-subs srt: 将字幕转换为 .srt 格式。
    • 下载的视频和字幕文件会保存在当前目录,字幕文件会与视频文件同名。

image-20250107140703029

如果在使用 yt-dlp 下载 Vimeo 视频时,出现提示 “There are no subtitles for the requested languages”,这表明该视频并没有自动生成的字幕(即使有些 Vimeo 视频可能显示自动生成的字幕)。可能是以下原因导致没有字幕被下载:

1. 视频确实没有自动生成字幕

  • 并不是所有 Vimeo 视频都启用了自动生成的字幕功能,尤其是那些没有公开字幕的私人或未完全发布的视频。
  • 如果字幕不存在,你会看到类似的错误提示。

解决方案:

  • 确保你下载的 Vimeo 视频确实有自动生成的字幕。你可以通过直接在 Vimeo 上观看该视频,查看是否有 CC(Closed Captions)字幕显示。

2. 检查是否有其他字幕格式

  • 有些视频可能并没有自动生成字幕,但有手动上传的字幕文件,或者是嵌入式字幕(如 VTT 格式)。这种情况下,yt-dlp 会下载这些手动上传的字幕,而不是自动生成的字幕。

解决方法:

  • 尝试不指定字幕语言,直接下载所有字幕:

    1
    yt-dlp --write-sub --sub-lang all --convert-subs srt https://vimeo.com/视频ID

    这会尝试下载所有可用的字幕,而不仅仅是自动生成的字幕。此法亲测有效,下载的srt字幕放入视频同一文件夹。

3. 视频语言设置问题

  • 有时字幕的语言可能与视频本身的语言设置不同。你可以尝试指定不同的语言选项,或者下载所有可用的字幕。

解决方法:

  • 尝试更广泛的语言代码:

    1
    yt-dlp --write-auto-sub --sub-lang "en,zh,fr" --convert-subs srt https://vimeo.com/视频ID

    这里将同时尝试下载英文、中文和法文字幕(如果有的话)。如果有其他语言的自动生成字幕,yt-dlp 会优先下载这些。

4. 检查视频源和权限

  • 某些 Vimeo 视频(特别是私密视频)可能会限制字幕的下载权限。确保视频不是私密视频,或者你有正确的访问权限。

5. 更新 yt-dlp

  • 有时yt-dlp可能需要更新,以便支持最新的视频格式和字幕获取方式。如果你没有更新过yt-dlp,可以尝试通过以下命令更新:

    1
    python -m pip install -U yt-dlp

6. 手动检查字幕链接

  • 在某些情况下,视频的字幕链接可能会嵌入在视频播放页面的 HTML 中。你可以使用浏览器的开发者工具检查字幕文件是否存在。通过这种方式,可以确认是否有字幕可供下载。