Kara3
说明 打开编辑器

什么是 srv3?YouTube 彩色卡拉 OK 字幕的格式

更新于 2026年10月2日

srv3 是 YouTube 自己的字幕格式,也叫 YouTube Timed Text,扩展名通常是 .srv3 或 .ytt。和最常见的 SRT 不同,srv3 能记录文字颜色、描边、在画面上的位置以及每个字的时间,所以 YouTube 上那些跟着歌声变色的卡拉 OK 字幕,几乎都是用 srv3 做的。

srv3 这个名字的由来

YouTube 的字幕系统内部把这种格式叫作“srv3”(第 3 版),文件的根元素里就写着 format="3"。用 yt-dlp 下载字幕时选择 srv3 格式,得到的就是这种文件。制作彩色字幕的社区工具(例如 YTSubConverter)则习惯叫它 YouTube Timed Text,保存为 .ytt。两者内容相同,只是扩展名不同。

YouTube 官方的“支持的字幕文件格式”说明里没有列出 srv3,但实际上可以在 YouTube Studio 上传,社区用这种方式制作彩色字幕已经很多年了。

文件长什么样

srv3 是 XML 文本文件。<head> 里定义样式,<body> 里是一句一句的字幕:

<?xml version="1.0" encoding="utf-8" ?>
<timedtext format="3">
<head>
<pen id="0"/>
<pen id="1" fc="#FFFFFF" ec="#000000" et="3"/>
<pen id="2" fc="#5B8CFF" ec="#000000" et="3"/>
<pen id="3" fo="0" bo="0"/>
<ws id="0"/>
<wp id="0"/>
<wp id="1" ap="7" ah="50" av="95"/>
</head>
<body>
<p t="1000" d="2000" wp="1"><s p="3">&#x200B;</s>&#x200B;<s p="1">Sing along</s></p>
</body>
</timedtext>
  • <pen>:文字样式。fc 是文字颜色,fo 是文字不透明度,ec 是描边颜色,et 是描边类型,sz 是字体大小(百分比),fs 是字体,b、i、u 是粗体、斜体、下划线。
  • <wp>:画面位置。ap 是锚点(0~8,对应九宫格),ah、av 是水平、垂直位置的百分比。
  • <ws>:窗口样式,例如文字对齐方式。
  • <p>:一句字幕。t 是开始时间,d 是持续时间,单位都是毫秒。
  • <s>:字幕里的一段文字,p 指定使用哪个 pen。

示例里有两处是为了适配 YouTube 而加的,不影响画面:

  • id 为 0 的空定义:iOS App 会忽略第一个 pen 的背景设置,所以每种定义的第一个都放一个不使用的空项。
  • 字幕开头的 &#x200B;:&#x200B; 是看不见的零宽空格。开头先放一段使用透明 pen 3 的零宽空格,再放一个不属于任何 <s> 的零宽空格,YouTube 才会保留歌词那一段的样式(原因见下文“在 YouTube 上的限制”一节)。

字体

srv3 不能写字体名称,fs 只能从 YouTube 提供的 7 种字体中选一种:

fs 字体 类型
不写或 0 Roboto 默认
1 Courier New 等宽衬线
2 Times New Roman 衬线
3 Lucida Console 等宽无衬线
4 Roboto 无衬线
5 Comic Sans MS 休闲
6 Monotype Corsiva 手写
7 Carrois Gothic SC 小型大写

这些都是西文字体,不包含中文、日文、韩文字符。中日韩文字会改用设备上的其他字体显示,所以换了字体以后,中日韩文字可能看不出变化,只有英文和数字会变。

和 SRT、WebVTT、ASS 的区别

功能 SRT WebVTT ASS srv3
文字颜色 部分播放器支持 <font color> 支持 支持 支持
描边、阴影 不支持 有限 支持 支持
画面上的位置 不支持 支持 支持 支持
逐字时间(卡拉 OK) 不支持 支持(行内时间标记) 支持(\k) 支持
能否上传到 YouTube 可以 可以 不行 可以

ASS 是功能最多的字幕格式,动漫字幕组很常用,但 YouTube 不接受 ASS。想在 YouTube 上保留颜色、位置和卡拉 OK 效果,就要转换成 srv3。

卡拉 OK 效果是怎么实现的

srv3 没有“这个字在第几秒变色”的标签。卡拉 OK 效果是用一连串重复的字幕实现的:同一句歌词拆成很多条字幕,每一条都比上一条多一个字显示为“已唱”的颜色。

为了方便阅读,下面省略了开头的零宽空格:

<p t="1000" d="400"><s p="2">Sing</s><s p="1"> along</s></p>
<p t="1400" d="1600"><s p="2">Sing along</s></p>

上面两条字幕前后相接:1 秒时 Sing 先变色,1.4 秒时整句都变色。逐字时间越细,拆出来的字幕就越多,一首歌往往有好几千条,很难手写,需要用工具生成。

srv3 还有另一种写法:给 <s> 加上 t 属性,让每个字到指定时间才出现。YouTube 的自动字幕就是用这种方式一个字一个字显示出来的。

同一个时间点也可以有两条以上的字幕,叠在不同位置或使用不同的描边,做出阴影或双层描边的效果。

在 YouTube 上的限制

以下内容整理自 YTSubConverter 的说明,制作前先了解一下,可以少踩坑:

  • YouTube Studio 的预览看不到样式。 上传后,Studio 字幕编辑器里显示的是纯文字,这是正常现象。只要不在 Studio 里修改,正式的播放器就会显示样式。如果在 Studio 里改过字幕,样式可能会丢失。
  • 手机 App 的显示效果比较简单。 手机 App 不支持自定义背景(一律是黑色背景),注音和振假名会变成括号里的普通文字。
  • 偏离中央的字幕在影院模式下会往两侧移。 放在画面左右两侧的字幕,在电脑版的影院模式下会更靠边,甚至超出视频范围。
  • 每句第一段的样式可能被去掉。 上传时,YouTube 会删除每条字幕第一段文字的样式设置,除非这条字幕还有不属于任何一段的文字。常见的做法是在开头放看不见的零宽空格,Kara3 导出时会自动处理。
  • 只有 7 种字体可选。 只能使用上面表格里的字体,不能指定其他字体。
  • 字体大小只有四分之一的效果。 sz 设为 200%,实际只会放大到 125%,最小也只能缩小到 75%。

用 Kara3 编辑 srv3

Kara3 是免费、免安装的 srv3 编辑器。它会把重复字幕合并回一句歌词,让你直接修改文字、时间、颜色和位置,导出时再自动生成重复字幕;无法识别的内容会原样保留,不会被破坏。

想从头制作一份卡拉 OK 字幕,可以看《卡拉 OK 字幕制作教程》;手上已经有 SRT 或 ASS 文件,可以看《把 SRT、ASS 转换为 srv3》。

其他说明

enesjakozh-cnzh-tw