1 个不稳定版本
新 0.0.1 | 2024年8月25日 |
---|
#9 in #字幕
2MB
182 行
yttml
YouTube 样式字幕的 Rust 实用程序和 crate 集合,试图用 Rust 重新编写 YTSubConverter。
[!注意] 此项目仍处于早期开发阶段,尚不适合使用,但它旨在成为原始 YTSubConverter 的更现代和更稳定的替代品。
动机
如果您曾经尝试处理 YouTube 字幕,您可能会注意到官方 YouTube 字幕编辑器在功能方面相当有限。
然而,YouTube 字幕系统实际上支持官方编辑器中没有公开的广泛功能,该格式称为 YTT(YouTube Timed Text),版本 3(也称为 SRV3)。
此格式支持您从像 SSA(SubStation Alpha)这样的高级格式中期望的几乎所有功能,包括文本格式化、自定义字体、文本对齐、文本旋转、卡拉OK计时以及更多。
原始 YTSubConverter 是一个 C# 工具,允许您在各种字幕格式之间进行转换,主要关注将 SSA 转换为 SRV3。然而,命令行界面相当笨拙,代码库不太易于维护,并且缺少关于 SRV3 格式的完整文档。
创建此项目是为了提供一个更现代、更易于维护的原始 YTSubConverter 的替代品,并完全记录和研究 YouTube 的专有字幕格式。
SRV3 (YouTube Timed Text) 格式
SRV3 是 YouTube 用于存储字幕的专有格式。它基于 TTML 标准,但略有修改。该格式基于 XML,用于存储 YouTube 视频的字幕。该格式不仅支持计时文本,还支持一系列其他功能,如
- 文本格式(粗体、斜体、下划线、删除线)
- 文本颜色和背景透明度
- 自定义文本对齐
- 6 种不同的字体样式
- Carrois Gothic SC
- Comic Sans MS
- Courier New
- Lucida Console
- Monotype Corsiva
- Roboto
- Times New Roman
- 自定义字体大小和颜色
- 轮廓、发光和阴影
- 自定义文本旋转
- 卡拉OK计时
- 垂直文本
- 日文(平假名/片假名)文本
这种格式的使用在粉丝字幕组员和字幕添加者中非常流行,尤其是在日本媒体和动画领域,因为它允许广泛的文本格式选项,可以模仿甚至叠加视频中的原始文本。您通常会在粉丝字幕的动画、日本音乐视频或YouTube上的VTuber剪辑中看到这类风格的字幕。
从功能上讲,SRV3格式与高级字幕站Alpha类似,而不是更常见的SubRip或WebVTT格式。
SRV3格式的文档可以在这里找到。
展示SRV3格式功能的示例视频
- PinocchioP - 匿名M(
泰国 - 动画
字幕轨道) - Shinra-bansho - 命运线上的Aria音乐视频
- Kizuna AI - AIAIAI 音乐视频
- ZUTOMAYO - 固定MV
- GYARI, Kotonoha Akane & Aoi - Aoi-chan不管怎样都要吃ChocoMint(非英语示例,因为英语版本已经因为YouTube字幕编辑器的使用而自动格式化)
- 32ki, Hatsune Miku & Kasane Teto - Mesmerizer(仅泰语文本)
- x0o0x - 契拉格里站(使用英国英语字幕的样式版本)
- Kikuo ft. Hatsune Miku - 爱我,爱我,爱我
- 大多数,如果不是所有的hololive音乐视频都使用此格式进行官方字幕,带有卡拉OK时间和自定义文本格式
- 来自美国新闻网络的各类新闻剪辑,提供带有电传效果的实时字幕例如
- 各种VTuber剪辑,示例这里
仓库
- srv3-ttml: SRV3格式的serde解析器。
- yttml(此仓库):一个用于读取SRV3字幕并将它们进行转换的命令行工具(正在进行中)
测试
要从YouTube下载SRV3字幕,您可以使用yt-dlp实用程序,并使用--write-subs
,--sub-langs
和--sub-format=srv3
标志下载视频。
您也可以使用此URL格式直接从API下载
https://www.youtube.com/api/timedtext?v=<video ID>&lang=<language code>&fmt=srv3
许可证
本项目采用MIT许可证。