要点速览
如果视频是你自己的,YouTube Studio 可以导出字幕轨道,但导出的是 SubViewer 格式(.sbv),不是 SubRip 格式。这两种格式装的内容其实一样,转换主要就是加上字幕序号、调整时间码里的标点符号。如果视频不是你的,那些字幕就是别人的劳动成果,你能不能拿来用,是这个视频本身的授权问题,跟你用什么工具没关系,得先想清楚再动手。
这种需求听起来总是很简单。有人想把某个视频里的字幕提取成一个文件,方便重新剪辑、交给译者处理,或者把同样的字幕挂到YouTube以外的地方。文字明明就摆在屏幕上,感觉两分钟就能搞定。
很多时候确实是这样。但“两分钟搞定”这种情况只适用于其中一种场景,另一种场景背后跟着一个问题,任何下载工具、浏览器插件或转换器都替你回答不了。所以动手之前,先搞清楚自己到底属于哪种情况,很值得。
先问清楚:这是谁的视频
后面所有步骤都取决于这一点。如果视频在你自己的频道里,字幕轨道就是你的,YouTube会把它交给你,剩下的只是格式转换的事。如果视频是别人的,不管字幕是人工写的还是平台自动生成的,它都是别人的劳动成果,你能不能拿来重复使用,取决于这个视频的授权条款,而不是取决于有没有工具能生成一个文件。
大家容易把这两种情况混在一起,因为从操作上看流程差不多——最后都会拿到一个带时间码的文本文件。但一种是从你能控制的账号里导出,另一种是复制别人做的东西。工具能生成文件,这件事本身不能说明你有没有权利发布它。
还有一种中间情况值得单独说一下:你在处理客户的视频,或者团队用另一个账号上传的视频。只要有人能登录那个频道,从“权限”这个角度看,它依然算“你自己的视频”。这种情况建议直接从Studio里导出,而不是从公开页面上抓取,因为Studio导出的文件更干净,你也能确定拿到的就是真正挂在视频上的那条字幕轨道。
从自己的视频里导出字幕轨道
YouTube Studio可以直接导出字幕轨道。打开对应视频,进入字幕设置,下载挂在视频上的那条轨道。这个过程不涉及任何重建或猜测——你拿到的就是播放器显示的那些字幕内容,时间码也完全一致。
大多数人没想到的是导出的文件格式。YouTube Studio导出的是SubViewer格式,扩展名是.sbv。这不是你的剪辑软件、播放器或译者常用工具所期待的格式。如果你以前只接触过.srt格式的字幕,拿到这个文件会觉得不对劲,第一反应是以为导出失败了,或者点错了菜单。其实没有——SubViewer就是Studio给出的默认格式。
SubViewer是一种真实存在的字幕格式,该有的信息它都有。只是它比SubRip更老、支持范围更窄,所以很多能顺利打开SRT的软件,遇到SubViewer就会卡壳。如果你想看下载环节更详细的说明,包括想要的字幕轨道没有被默认选中时该怎么办,可以参考这篇关于下载YouTube字幕并保存为SRT的指南。
有个习惯值得养成:转换完之后,把原始的.sbv文件留着。这不花什么成本,它只是个纯文本文件,万一转换出了问题,或者你想换个设置再转一次,总比重新回Studio导出方便。
从SubViewer转成SubRip
这两种格式之间的差距比看上去小得多。两者都是纯文本,都存储一系列字幕条目,每条包含开始时间、结束时间和这段时间显示的文字。都不带你会用到的样式信息。
SubViewer把时间信息写成一行,用逗号把两个时间码隔开,文字写在下面一行。它不给每条字幕编号,写小时数时也不会补齐成两位数。SubRip要求的格式略有不同:每条字幕先单独占一行写序号,接着一行时间码,格式是hh:mm:ss,mmm,毫秒前面是逗号,再接着是文字内容,最后空一行再开始下一条。
这意味着这个转换其实纯粹是机械操作。你要做的就是加上连续的序号,调整时间码的标点和补位,再插入空行。时间和文字内容完全原样保留。没有任何内容需要“理解”,也不会丢东西,更不用担心质量损失,因为过程中不涉及任何重新编码——只是同样的内容用不同的格式写了一遍。
视频很短的话手动改也行,也有人写过正则表达式一行搞定,但正常长度的视频这么干不值得花时间。一个基于浏览器的SBV转SRT工具可以直接完成转换并把文件返回给你。不管用什么工具,转完之后都打开文件看一下第一条和最后一条字幕:第一条能确认序号和时间码格式对不对,最后一条能确认内容有没有被截断。
如果视频不是你的
先把授权问题弄清楚,因为这是唯一一个事后没法补救的环节。不是你上传的视频里的字幕,属于那个视频内容的一部分。重复使用它——重新发布字幕、贴到你自己剪的片子上、发布翻译版本——都是授权层面的事,取决于那个视频的授权方式和你打算怎么用。文章里引用一句话,跟连着字幕文件一起发布别人的视频,完全是两件事。自己参考、做笔记、做研究,又跟公开发布不是一回事。这是针对具体那个视频要做的判断,得在动工具之前想清楚。
一旦这一点确定了,提取文字本身很简单。SozAI Chrome插件可以把你正在看的视频的转录文本导出为TXT、SRT或Markdown格式,SRT版本会保留时间码——这样你可以直接跳过SubViewer那一步,一开始就拿到想要的格式。这只是众多方案里的一种,而且它同样不会替你决定授权问题。
这两条路线之间有个实际差别值得了解。Studio导出的是权威轨道,和挂在视频上的内容完全一致。而从观看页面抓取到的,是播放器提供给你的转录文本,内容一样,但是从外部拿到的。如果是自己的视频,优先用导出;其他情况下,导出这个选项本来也用不上。
不用推倒重来也能修好问题
字幕文件就是纯文本。这是这个格式最有用、但也最容易被忘记的一点。如果某一条有错字,某个时间点差了半秒,或者某个名字前后写了三种不同拼法,直接用任何文本编辑器打开文件,改那一行,保存就行。不需要重新生成任何东西,也不需要重跑一遍转换,就像改一行普通文字那样操作。
这会改变你处理这类问题的方式。不用非得找一个“一次就能生成完美文件”的工具,而是假设自己会对文件本身做一次人工检查,提前接受这一点会更省心。大多数需要修的问题都很小、很局部:一个专有名词、一个多余的换行、一条停留时间过长的字幕。
结构性的问题靠肉眼看不太容易发现,因为文件很长,而且能让播放器出错的往往是些不起眼的小问题——某条字幕的结束时间比开始时间还早,两条字幕时间重叠,序号乱了,或者某个时间码在转换过程中变得格式不对。发布之前用SRT校验工具过一遍文件,能比逐行翻看更快地找出这些问题。找到之后再回文本编辑器里改,因为文件说到底还是纯文本。
自动生成的字幕给不了你什么
如果你导出的是自动生成的字幕轨道,那你手上拿到的不是一份成品字幕,而是原材料。自动字幕不带任何靠得住的标点,句子会一句接一句连在一起,读者得自己去分辨本该由逗号或句号完成的断句。它也不区分说话人,一旦视频里不止一个人说话,这就是个实际问题——一段采访会变成不分角色的一整段文字,跟着字幕看的人根本分不清是谁在说话。
这些问题都不影响文件顺利转换。SubViewer转SubRip不管字幕是人写的还是平台自动生成的,过程完全一样,因为这个转换只处理序号和时间码的标点。它不会替你修正文字内容,本来也不该这么做。
也就是说,用自动字幕生成的文件,要拿去发布之前必须经过一次人工编辑。通读一遍,补上标点,按你自己定的方式标出说话人的切换,把注定会出错的人名和专业术语改正过来。视频短的话这可能就几分钟的事;要是长篇采访,那就是实打实的工作量,提前留出时间,别等到最后才发现漏了这一步。
还有一点要留意:自动生成的字幕轨道里,换行是按播放器的时间节奏来断的,不是按阅读习惯断的。有些字幕会在一句话说到一半的地方断开,在YouTube上滚动着看没什么问题,但烧录进别的视频里就显得很粗糙。重新调整这些断句,也是同一次人工编辑该做的事,而这恰恰是大多数人会漏掉、事后才注意到的部分。

