#字幕 #YouTube #字幕 #ttml #srv3

程序 yttml

YouTube 风格 TTML (SRV3) 字幕处理的实用程序集合

1 个不稳定版本

0.0.1 2024年8月25日

#9 in #字幕

MIT 许可证

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格式功能的示例视频

仓库

  • 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许可证。

依赖关系