Reddit中很多视频,有Youtube转载的,网上有很多工具(如downsub)可以直接解析下载其视频和CC自动生成字幕。但也有些视频并非YT,所以这些方法就都不适用了。

现在总结了一条yt-dlp命令可以实现,详情如下。

以Chrome浏览器为例:

首先下载Get cookies.txt LOCALLY下载链接)导出 Netscape 格式的 Cookies:

image-20250510200553740

浏览器转至要下载CC字幕的页面,点击安装好的Get cookies.txt LOCALLY插件

image-20250510201017801

导出txt文件

记住导出文件所在的位置,到该位置文件夹运行CMD

yt-dlp --cookies cookies文件名.txt --write-subs --sub-lang en "视频URL"

结合字幕下载参数:

1
2
3
4
5
yt-dlp --cookies cookies.txt \
--write-subs --sub-lang en --convert-subs srt \
--embed-subs \
-o "%(title)s.%(ext)s" \
"https://www.reddit.com/r/JustGuysBeingDudes/comments/1kj6n2r/hi_one_day_you_will_die/"

参数说明

  • --write-subs:下载字幕。
  • --sub-lang en:指定英文字幕(若需其他语言,替换 en 或使用 all)。
  • --convert-subs srt:转换为通用 SRT 格式。
  • --embed-subs:将字幕嵌入视频文件(需视频支持)。

将视频 URL 用双引号包裹,避免 & 等符号被命令行解析

需要注意的是,上述命令方法在获取CC自动生成字幕的同时,亦将原音视频也下载下来了。如果介意,可以使用下面的命令略过音视频下载。

在原有命令中添加 --skip-download 参数,明确禁止视频和音频文件的下载,仅保留字幕文件:

1
yt-dlp --skip-download --write-subs --sub-lang en --convert-subs srt --cookies cookies.txt "视频URL"

参数说明

  • --skip-download:跳过视频和音频下载,仅执行元数据提取和字幕下载 。
  • --convert-subs srt:将字幕转换为通用 SRT 格式(默认可能为 JSON 或 WebVTT)。

输出路径自定义

若需指定字幕保存路径,使用 -o 参数:

1
yt-dlp -o "字幕保存路径/%(title)s.%(ext)s" --skip-download --write-subs --sub-lang en "视频URL"

示例:

1
yt-dlp -o "/path/to/subtitles/%(title)s.%(ext)s" --skip-download --write-subs --sub-lang en "https://www.reddit.com/..."

处理内嵌字幕

若字幕已内嵌在视频中(非独立文件),需额外步骤提取:

  1. 下载视频并提取内嵌字幕

    (临时方案):

    1
    yt-dlp --write-subs --sub-lang en --convert-subs srt --cookies cookies.txt "视频URL"
  2. 下载完成后手动删除视频文件,保留 .srt 字幕文件。

3. 替代工具推荐

若需更灵活的字幕处理(如批量提取、翻译等),可结合以下工具:

Pyvideotrans

  • 功能:支持视频字幕生成、翻译、配音及格式转换,可从视频中批量提取音频并识别为字幕 。
  • 适用场景:需对字幕进行二次编辑或翻译时。

小红书双语字幕功能

  • 特色:自动生成中英双语字幕,适合内容创作者快速适配多语言场景(需上传视频至平台) 。