Mac 上怎么下载 YouTube 字幕:存成 SRT,或直接转成纯文字稿
先看清楚:这个视频有哪种字幕
能下载的是字幕轨,也就是播放器上的字幕(CC)按钮能打开、关掉的那种。如果字幕是印在画面里的(关不掉),它只是画面的一部分,任何下载工具都拿不到文字。
YouTube 上的字幕轨有三种:
- 人工字幕:作者或志愿者上传的,最准确,有的视频有好几种语言。
- 自动生成:YouTube 用语音识别做的原声字幕,大多数视频只有这一种;标点少、断句怪是常事。在 yt-dlp 和 Vidnip 里,它的语言代码以
-orig结尾,比如en-orig。 - 自动翻译:YouTube 把原声字幕机器翻译成其它语言,几乎什么语言都有,但质量一般,而且限流最严(后面细说)。
四种方法一览
| 方法 | 要花钱吗 | 能得到什么 | 适合 |
|---|---|---|---|
| YouTube 自带的「内容转文字」 | 免费 | 网页上的整段文字,自己选中复制 | 偶尔看一个视频、摘几句 |
| yt-dlp 命令 | 免费 | SRT 文件,整个播放列表也能一起下 | 会用终端 |
| 在线下载网站、浏览器扩展 | 多数免费,有广告 | SRT 或 TXT | 偶尔用一次 |
| Vidnip | 只下字幕不占免费额度 | SRT,或去掉时间轴的 TXT,点两下 | 经常用、不想开终端 |
1. YouTube 自带的「内容转文字」:免费,只能复制
- 在浏览器里打开视频,点简介末尾的「...更多」把简介展开。
- 往下找到「转写文稿」一栏,点「内容转文字」。
- 视频旁边会打开转写文稿,跟着播放滚动,点任意一句就跳到那个时间点。要文字就直接选中复制。
按钮名字跟着 YouTube 的界面语言走:英文界面是 Show transcript,日文界面是「文字起こしを表示」。
哪里不方便:没有字幕的视频没有这一栏;一次只能一个视频;拿不到 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 "视频地址"
# 只有自动生成的字幕时:下原声的那一条(代码以 -orig 结尾)
yt-dlp --skip-download --write-auto-subs --sub-langs ".*-orig" --convert-subs srt "视频地址"
--skip-download 表示不下视频;--sub-langs 填语言代码,用逗号隔开,也可以写规则(.*-orig 就是「所有原声自动字幕」);--convert-subs srt 把 YouTube 给的 VTT 转成 SRT。文件存在终端当前所在的文件夹,名字是「视频标题 [视频 ID].语言代码.srt」。把地址换成播放列表的地址,列表里每个视频的字幕都会下下来。
--sleep-subtitles 5,被拒了就等几分钟再来;原声字幕一般不受影响。3. Vidnip:点两下,存成 SRT 或纯文字稿
不想开终端,Vidnip 把同样的事做成了两个菜单项:
- 复制视频网页的地址,粘贴到 Vidnip 顶部的地址栏,按回车或者点「检测」。YouTube 一般要 10~20 秒。
- 「检测到的视频」下面会出现视频卡片。点卡片右侧的字幕按钮(对话气泡图标),菜单里列着这个视频的全部字幕轨:「人工字幕」「自动生成」,还有「自动翻译」子菜单(常用语言排在前面,其它的在「全部…」里)。勾上想要的语言;不勾也行,Vidnip 会按 设置 → 字幕 里的「首选语言」挑一条。
- 在同一个菜单的最下面,点「只下载字幕(.srt)」或「只下载文字稿(.txt)」。也可以在卡片上点右键,选「只下载字幕」(右键这一项只出 .srt)。
下载列表里会多出一行,带「字幕」标签,显示「正在获取字幕…」,一般很快就好。文件存在下载文件夹里(默认是「下载」,窗口底部可以改),名字是「视频标题 [字幕].语言代码.srt」,比如 … [字幕].en-orig.srt;勾了几种语言,就有几个文件。英文界面下,标记是 [Subtitles]。
- 不占免费额度:只下字幕不算在「前 3 个视频免费」里,免费次数用完以后照样能下。
- 要中文,但视频只有英文:默认拿到的是英文原声自动字幕。在「自动翻译」里勾 Chinese (Simplified),或者在 设置 → 字幕 里打开「允许自动翻译字幕」。
- 一次要好几种语言:Vidnip 会把请求错开,没拿到的语言自动补要一次;还缺的,下载行下面会写明是哪几种,过几分钟再下一次就行。
- 补一种语言:同一个视频再下字幕时,会提示「这些字幕已经下载过」,点「再下载一份」即可。
- 目前一次一个视频:整个播放列表只要字幕,请用上面的 yt-dlp 命令。
在线下载网站和浏览器扩展也能下字幕,偶尔用一次没问题。注意两点:这类网站大多有广告和跳转;扩展常常要求读取你访问的所有网站,装之前看清权限。它们同样会碰到 YouTube 的限流。
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:YouTube 暂时限制了请求次数。等几分钟,一次少要几种语言,同一个网络别反复刷。
- 要登录才能看的视频(会员专享、年龄限制):在 Vidnip 的 设置 → YouTube 里登录(建议用小号),再重新检测。
常见问题
YouTube 字幕怎么下载成 SRT 文件?
三种办法:用免费的 yt-dlp 命令,加上 --skip-download --write-subs --convert-subs srt(只有自动字幕时把 --write-subs 换成 --write-auto-subs);用 Vidnip,检测视频后在字幕菜单里点「只下载字幕(.srt)」;或者用在线下载网站。YouTube 自带的「内容转文字」只能复制文字,拿不到 SRT 文件。
下载字幕要钱吗?会占 Vidnip 的免费额度吗?
yt-dlp 和 YouTube 自带的「内容转文字」都免费。Vidnip 的「只下载字幕」和「只下载文字稿」也不占免费额度,前 3 个免费视频用完以后照样能下。
SRT 和 TXT 有什么区别?
SRT 每一句都带序号和起止时间,播放器能加载,也能看出哪句话在第几分钟。TXT 只有文字,没有时间轴,适合阅读、搜索和交给 AI 总结。Vidnip 的 TXT 还会把自动字幕里滚动重复的行合并掉。
视频没有中文字幕,能下中文的吗?
如果 YouTube 给这个视频提供自动翻译,可以。在 Vidnip 字幕菜单的「自动翻译」里勾 Chinese (Simplified),或者在 yt-dlp 里用 --write-auto-subs --sub-langs zh-Hans。这是机器翻译,质量一般;YouTube 对它限流最严,一次没拿到就过几分钟再试。
为什么有的语言没下下来?429 是什么意思?
429 表示 YouTube 暂时限制了请求次数,自动翻译的字幕最容易碰到。等几分钟再下缺的那几种,一次少要几种语言;用 yt-dlp 下播放列表时可以加 --sleep-subtitles 5 放慢速度。原声字幕一般不受影响。
画面里印着的字幕能下载吗?
不能。那种字幕是画面的一部分,没有单独的字幕文件,只能用文字识别或语音识别重新生成。判断方法:能用播放器的字幕(CC)按钮关掉的,才是能下载的字幕轨。
下载的字幕存在哪里?
Vidnip 存在下载文件夹里(默认是「下载」),文件名是「视频标题 [字幕].语言代码.srt」,比如 en-orig 表示英文原声自动字幕;勾了几种语言就有几个文件。yt-dlp 默认存在终端当前所在的文件夹。
字幕和文字稿,点两下就有
在 Vidnip 里检测视频,字幕菜单最下面就是「只下载字幕(.srt)」和「只下载文字稿(.txt)」。只下字幕不占免费额度。
下载 Vidnip for Mac