Skip to content
jsonSubtitle

什么是 JSON3 字幕文件?YouTube 字幕格式详解

什么是 JSON3 字幕文件?YouTube 内部字幕格式详解。了解 JSON3 的工作原理、文件结构,以及如何将 JSON3 转换为 SRT、VTT 或 LRC 格式。

A
AllSubConverter Team
2 分钟阅读

JSON3 是 YouTube 用于存储和传输字幕的内部字幕格式。它是一种基于 JSON 的格式,每个字幕事件都有精确的毫秒级时间戳、词级偏移和文本段。虽然不如 SRT 或 VTT 那么知名,但对于需要提取 YouTube 字幕并转换为标准字幕格式的人来说,JSON3 是必不可少的。

JSON3 的含义

JSON3 是 YouTube 字幕系统使用的基于 JSON 的 timedtext 格式。"3" 表示 YouTube timed text API 响应格式的第三个版本。与 SRT 等纯文本格式不同,JSON3 将字幕数据存储为结构化的 JSON 对象,支持词级时间、样式元数据和自动字幕对齐。

JSON3 文件的工作原理

JSON3 文件包含一个 "events" 数组,每个事件代表一条字幕。每个事件有以毫秒为单位的开始时间(tStartMs)、可选的持续时间(dDurationMs)和一个或多个文本段(segs)。每个文本段可以包含 tOffsetMs 字段,实现词级时间精度,使 JSON3 成为时间精度最高的字幕格式之一。

何时使用 JSON3

JSON3 主要在下载或提取 YouTube 视频字幕时遇到。如果你需要将 YouTube 自动生成或手动创建的字幕用于视频编辑软件、其他平台或存档,你需要将 JSON3 转换为更广泛支持的格式,如 SRT、VTT 或 LRC。AllSubConverter 可以自动完成这个转换。

JSON3 文件结构

{
  "events": [
    {
      "tStartMs": 0,
      "dDurationMs": 3120,
      "segs": [
        { "utf8": "Hi " },
        { "utf8": "everyone." }
      ]
    },
    {
      "tStartMs": 3120,
      "dDurationMs": 0,
      "segs": [{ "utf8": "\n" }]
    },
    {
      "tStartMs": 3120,
      "dDurationMs": 4840,
      "segs": [
        { "utf8": "In " },
        { "utf8": "this " },
        { "tOffsetMs": 640, "utf8": "video," }
      ]
    }
  ]
}
events字幕事件数组,每个事件代表一条带时间戳和文本的字幕
tStartMs字幕的开始时间,以视频开头的毫秒数表示
dDurationMs字幕的持续时间(毫秒),换行分隔事件的值为 0
segs文本段数组,每个段包含 utf8 字符串和可选的 tOffsetMs
tOffsetMs事件内的词级时间偏移,实现精确的卡拉OK式时间

JSON3 的优势

  • 通过 tOffsetMs 实现词级时间精度
  • 结构化 JSON 格式使程序化解析更加简单
  • 保留 YouTube 自动字幕的所有时间数据
  • 支持包括中日韩字符、emoji 和所有语言的 Unicode 文本

JSON3 的局限性

  • 标准视频播放器或编辑软件不支持
  • YouTube 专有格式,非行业标准
  • 需要转换为 SRT、VTT 等格式才能实际使用
  • 由于 JSON 开销,文件大小比纯文本格式更大

JSON3 常见问题

如何从 YouTube 获取 JSON3 字幕?

可以使用 yt-dlp 或浏览器扩展工具以 JSON3 格式下载 YouTube 字幕。当指定 fmt=json3 参数时,YouTube 的 timedtext API 会返回 JSON3 数据。下载后,你可以使用 AllSubConverter 将 JSON3 文件转换为 SRT、VTT、LRC 等格式。

可以将 JSON3 转换为 SRT 吗?

可以。AllSubConverter 可以将 JSON3 文件直接转换为 SRT、VTT、LRC、ASS、TXT、TTML、SCC、STL 和 SMI 格式。只需上传 JSON3 文件并选择输出格式,转换器会保留所有时间信息和文本内容。

JSON3 和 SRT 有什么区别?

JSON3 是 YouTube 的结构化 JSON 格式,具有毫秒级时间戳和词级时间。SRT 是更简单的纯文本格式,具有秒级时间戳且不支持样式。JSON3 更精确但仅被 YouTube 使用,而 SRT 在所有平台和播放器上都被普遍支持。

JSON3 支持多种语言吗?

支持。JSON3 使用 UTF-8 编码,完全支持所有语言,包括中日韩文、带重音的拉丁字符、阿拉伯语和 emoji。YouTube 为视频的每个语言轨道提供单独的 JSON3 文件。

将 JSON3 转换为其他格式

AllSubConverter 支持将 JSON3 转换为所有主流字幕格式。选择下面的转换工具开始使用:

A
AllSubConverter Team
Subtitle Format Specialist & Technical Editor
Fast & Free

需要转换字幕文件?

在浏览器中免费即时转换 SRT、VTT、ASS、LRC 等 10+ 种格式,100% 保护隐私。

打开字幕转换工具