视频字幕怎么下载到电脑:存成 SRT,或提取成纯文字稿(Mac)
先看清楚:这个视频有哪种字幕
能下载的是字幕轨,也就是播放器上的字幕(CC)按钮能打开、关掉的那种。如果字幕是印在画面里的(关不掉),它只是画面的一部分,任何下载工具都拿不到文字。
网站提供的字幕轨一般有三种(后两种不是每个网站都有):
- 人工字幕:作者或志愿者上传的,最准确,有的视频有好几种语言。
- 自动生成:网站用语音识别做的原声字幕;标点少、断句怪是常事。
- 自动翻译:网站把原声字幕机器翻译成其它语言,质量一般,而且最容易被限流(后面细说)。
四种方法一览
| 方法 | 要花钱吗 | 能得到什么 | 适合 |
|---|---|---|---|
| 网站自带的文稿面板 | 免费 | 网页上的整段文字,自己选中复制 | 偶尔看一个视频、摘几句 |
| yt-dlp 命令 | 免费 | SRT 文件,整个播放列表也能一起下 | 会用终端 |
| 在线下载网站、浏览器扩展 | 多数免费,有广告 | SRT 或 TXT | 偶尔用一次 |
| Vidnip | 只下字幕不占免费额度 | SRT,或去掉时间轴的 TXT,点两下 | 经常用、不想开终端 |
1. 网站自带的文稿面板:免费,只能复制
有的视频网站在视频简介或者菜单里有「文稿」「转写文稿」之类的入口,点开能看到整段字幕文字,跟着播放滚动,直接选中复制就行,不用装任何东西。
哪里不方便:不是每个网站、每个视频都有;一次只能一个视频;拿不到 SRT 文件,长视频要一路往下拖着选。
2. yt-dlp:免费,一条命令存成 SRT
yt-dlp 是开源的命令行下载工具。用 Homebrew 装上它和 ffmpeg(转换字幕格式要用):
brew install yt-dlp ffmpeg
# 先看这个视频有哪些字幕:
# 「Available subtitles」下面是人工字幕,「Available automatic captions」下面是自动字幕
yt-dlp --list-subs "视频地址"
# 只下人工字幕,存成 SRT,不下视频
# (简体中文有的视频是 zh-Hans,有的是 zh-CN,都写上;视频没有的语言会自动跳过)
yt-dlp --skip-download --write-subs --sub-langs "en,zh-Hans,zh-CN" --convert-subs srt "视频地址"
# 只有自动生成的字幕时:把 --write-subs 换成 --write-auto-subs,语言代码照上面列出来的填
yt-dlp --skip-download --write-auto-subs --sub-langs "zh-Hans" --convert-subs srt "视频地址"
--skip-download 表示不下视频;--sub-langs 填语言代码,用逗号隔开,也可以写规则(比如 zh.* 表示所有中文);--convert-subs srt 把网站给的 VTT 等格式转成 SRT。文件存在终端当前所在的文件夹,名字是「视频标题 [视频 ID].语言代码.srt」。把地址换成播放列表的地址,列表里每个视频的字幕都会下下来。
--sleep-subtitles 5,被拒了就等几分钟再来;原声字幕一般不受影响。3. Vidnip:点两下,存成 SRT 或纯文字稿
不想开终端,Vidnip 把同样的事做成了两个菜单项:
- 复制视频网页的地址,粘贴到 Vidnip 顶部的地址栏,按回车或者点「检测」。大一些的网站一般要 10~20 秒。
- 「检测到的视频」下面会出现视频卡片。带「yt-dlp」标签的卡片右侧有字幕按钮(对话气泡图标),点开后菜单里列着这个视频的全部字幕轨:「人工字幕」「自动生成」,还有「自动翻译」子菜单(常用语言排在前面,其它的在「全部…」里)。勾上想要的语言;不勾也行,Vidnip 会按 设置 → 字幕 里的「首选语言」挑一条。
- 在同一个菜单的最下面,点「只下载字幕(.srt)」或「只下载文字稿(.txt)」。也可以在卡片上点右键,选「只下载字幕」(右键这一项只出 .srt)。
下载列表里会多出一行,带「字幕」标签,显示「正在获取字幕…」,一般很快就好。文件存在下载文件夹里(默认是「下载」,窗口底部可以改),名字是「视频标题 [字幕].语言代码.srt」,比如 … [字幕].en.srt;勾了几种语言,就有几个文件。英文界面下,标记是 [Subtitles]。
- 不占免费额度:只下字幕不算在「前 3 个视频免费」里,免费次数用完以后照样能下。
- 要中文,但视频只有外语字幕:默认拿到的是原声字幕。网站提供机器翻译的话,在「自动翻译」里勾简体中文,或者在 设置 → 字幕 里打开「允许自动翻译字幕」。
- 一次要好几种语言:Vidnip 会把请求错开,没拿到的语言自动补要一次;还缺的,下载行下面会写明是哪几种,过几分钟再下一次就行。
- 补一种语言:同一个视频再下字幕时,会提示「这些字幕已经下载过」,点「再下载一份」即可。
- 目前一次一个视频:整个播放列表只要字幕,请用上面的 yt-dlp 命令。
在线下载网站和浏览器扩展也能下字幕,偶尔用一次没问题。注意两点:这类网站大多有广告和跳转;扩展常常要求读取你访问的所有网站,装之前看清权限。它们同样会碰到网站的限流。
SRT 怎么转成纯文字
SRT 里每一句都带序号和起止时间,像这样:
12
00:01:05,200 --> 00:01:08,900
今天我们来聊聊
怎么把字幕存下来
Vidnip 的「只下载文字稿(.txt)」会在本机把它转成纯文字:去掉序号和时间轴,去掉 <i> 这类样式标签,把自动字幕里滚动重复的行合并掉,一行一句,UTF-8 编码;转好后只留 .txt。
手上已经有 SRT 文件,也可以用 macOS 自带的工具,在终端里一行转好:
tr -d '\r' < "字幕.srt" | sed -E -e '/-->/d' -e '/^[0-9]+$/d' -e 's/<[^>]*>//g' -e '/^[[:space:]]*$/d' | uniq > "文字稿.txt"
依次是:去掉 Windows 换行符、删时间轴、删序号、去标签、删空行,最后用 uniq 把相邻的重复行合并掉(自动字幕是滚动显示的,同一句会出现两三次)。唯一的副作用:台词里单独成行的纯数字(比如只念了一个年份)也会被当成序号删掉。
拿到文字稿以后
- 交给 AI 总结:把 TXT 的内容贴给 AI 助手,让它列要点、写摘要。TXT 没有时间轴,篇幅更短;想问「哪一段讲了什么」,就给它 SRT,它能告诉你大概在第几分钟。
- 找原话:在文字稿里按 ⌘F 搜关键词,比来回拖进度条快得多。
- 做笔记、写稿:直接摘抄,引用时注明出处。
- 学语言:同一个视频下两种语言的字幕,对照着看。
下载不了?几种常见情况
- 字幕菜单里只有一行「此视频没有可用字幕」:这个视频没有字幕轨,字幕可能是印在画面里的,哪种工具都下不了。
- 想要的语言只在「自动翻译」里:能下,但最容易被限流。先下原声字幕,翻译版过几分钟再下。
- 提示 429:网站暂时限制了请求次数。等几分钟,一次少要几种语言,同一个网络别反复刷。
- 要登录才能看的视频:在 Vidnip 里点「显示页面」,在打开的窗口里登录,再重新检测。
常见问题
视频字幕怎么下载成 SRT 文件?
三种办法:用免费的 yt-dlp 命令,加上 --skip-download --write-subs --convert-subs srt(只有自动生成的字幕时把 --write-subs 换成 --write-auto-subs);用 Vidnip,检测视频后在字幕菜单里点「只下载字幕(.srt)」;或者用在线下载网站。网站自带的文稿面板通常只能复制文字。
字幕怎么提取成纯文本(TXT)?
用 Vidnip 的「只下载文字稿(.txt)」,会直接去掉序号和时间轴、合并重复的行;手上已经有 SRT 的话,用本文里那行终端命令也能转。转好的文字稿适合阅读、搜索和交给 AI 总结。
下载字幕要钱吗?会占 Vidnip 的免费额度吗?
yt-dlp 免费。Vidnip 的「只下载字幕」和「只下载文字稿」也不占免费额度,前 3 个免费视频用完以后照样能下。
SRT 和 TXT 有什么区别?
SRT 每一句都带序号和起止时间,播放器能加载,也能看出哪句话在第几分钟。TXT 只有文字,没有时间轴,适合阅读、搜索和交给 AI 总结。Vidnip 的 TXT 还会把自动字幕里滚动重复的行合并掉。
为什么有的语言没下下来?429 是什么意思?
429 表示网站暂时限制了请求次数,机器翻译的字幕最容易碰到。等几分钟再下缺的那几种,一次少要几种语言;用 yt-dlp 批量下载时可以加 --sleep-subtitles 5 放慢速度。
CC 字幕和画面里印着的字幕,哪种能下载?
能用播放器的字幕(CC)按钮打开、关掉的是字幕轨,可以下载。印在画面里的字幕是画面的一部分,没有单独的字幕文件,只能用文字识别或语音识别重新生成。
下载的字幕存在哪里?
Vidnip 存在下载文件夹里(默认是「下载」),文件名是「视频标题 [字幕].语言代码.srt」,勾了几种语言就有几个文件。yt-dlp 默认存在终端当前所在的文件夹。
字幕和文字稿,点两下就有
在 Vidnip 里检测视频,字幕菜单最下面就是「只下载字幕(.srt)」和「只下载文字稿(.txt)」。只下字幕不占免费额度。
下载 Vidnip for Mac