Skip to content
YoutubeJson3JSON字幕SRTVTTLRC

将 YouTube JSON3 字幕转换为 SRT、VTT 或 LRC

下载 YouTube 字幕为 JSON3 格式,并转换为 SRT、VTT 或 LRC。涵盖 yt-dlp、JSON3 格式说明和免费在线转换的完整教程。

A
AllSubConverter Team
3 分钟阅读

当你从 YouTube 下载字幕时,能获取到的最原始格式就是 JSON3,它是 YouTube 内部使用的结构化 timedtext 格式。它保存了字幕的全部细节:毫秒级时间、词级偏移和文本段。问题是 YouTube 之外几乎没有工具能读取 JSON3。本指南教你如何从 YouTube 提取 JSON3 字幕,并在几秒内转换为你的工具真正需要的格式:SRT、VTT 或 LRC。

JSON3 格式是什么?

JSON3 是 YouTube 用来存储和交付字幕的基于 JSON 的 timedtext 格式。每条字幕 cue 存储为一个事件对象,包含以毫秒为单位的开始时间(tStartMs)、持续时间(dDurationMs)和一个或多个文本段(segs)。单个文本段可以携带词级偏移(tOffsetMs),用于卡拉 OK 式的精确计时。

由于它是结构化 JSON 而非纯文本,JSON3 比任何普通媒体播放器使用的字幕格式都保留了更多时间数据。这使它成为你在乎保真度时下载的最佳中间格式,同时也是直接交给播放器使用的最差格式。解决办法很简单:下载 JSON3,然后转换它。

如何从 YouTube 下载 JSON3 字幕

方法一:yt-dlp(推荐)

获取 JSON3 字幕最可靠的方式是 yt-dlp,它是 youtube-dl 的活跃维护继任者。它在命令行中运行,能轻松处理播放列表和频道。要只下载英文自动字幕的 JSON3 格式,而不下载视频本身:

yt-dlp --write-auto-subs --sub-lang en --sub-format json3 --skip-download "https://www.youtube.com/watch?v=VIDEO_ID"

这会在当前文件夹生成一个 .json3 文件。当存在人工编辑的字幕时,将 --write-auto-subs 替换为 --write-subs,因为人工字幕更准确。

方法二:YouTube timedtext API

YouTube 的 timedtext 接口可以直接返回 JSON3。构造如下 URL,填入视频 ID 和语言代码:

https://www.youtube.com/api/timedtext?v=VIDEO_ID&lang=en&fmt=json3

这会在浏览器中返回 JSON3 数据。注意自动生成的字幕可能需要额外参数,YouTube 也会偶尔收紧对该接口的访问。

方法三:浏览器扩展

一些浏览器扩展会在 YouTube 页面添加下载按钮,可以导出 JSON3 或 VTT 格式的字幕。这对一次性下载很方便,但在语言轨道和输出格式上不如 yt-dlp 灵活。

为什么要转换 JSON3?

没有任何标准媒体播放器、视频编辑器或歌词应用能读取 JSON3。每种目标格式都有其作为终点的理由:

  • SRT 用于通用兼容性。每个桌面播放器、智能电视、手机播放器和编辑工具都能读取 SRT。当你不确定目标环境需要什么时,它是最安全的选择。
  • VTT 用于网页视频。WebVTT 是 HTML5 字幕的 W3C 标准,当你在网页播放器中嵌入字幕时,它是正确的目标格式。
  • LRC 用于同步歌词。如果视频是音乐视频,你希望字幕在音乐播放器中作为歌词滚动显示,LRC 就是这些应用期待的格式。

转换工作流

  1. 下载 JSON3 文件。 使用 yt-dlp 或 timedtext API 将字幕轨道保存为 .json3 文件。
  2. 选择目标转换器。 根据字幕去向选择 JSON 转 SRTJSON 转 VTTJSON 转 LRC
  3. 上传并转换。 将 JSON3 文件拖入转换器。转换完全在浏览器中运行,文件永远不会离开你的设备。
  4. 下载并验证。 保存转换后的文件,用文本编辑器打开或与视频一起加载,确认时间对齐。

转换时时间数据会怎样?

JSON3 保留了所有字幕格式中最丰富的时间数据,因此转换时部分数据必然会被简化:

  • 词级偏移tOffsetMs)会被聚合为字幕条级的开始和结束时间,因为 SRT、VTT 和 LRC 每条只支持一个时间戳。
  • 毫秒精度在 SRT 和 VTT 中保留。LRC 工作在百分秒精度,毫秒会四舍五入到最近的百分之一秒。
  • 结束时间在 SRT 和 VTT 中保留,但在 LRC 中会丢弃,因为 LRC 只记录开始时间。

实际上这些损失都不影响可读性。每条字幕的开始和结束时间仍然精确到帧。

常见问题与解决办法

  • JSON3 文件为空或很小。 视频可能没有你请求语言的字幕,或自动字幕被禁用。尝试不同的 --sub-lang 代码,或确认 CC 按钮提供了你需要的轨道。
  • 自动字幕时间漂移。 机器生成的字幕是近似的,尤其是在长视频中。如果存在人工编辑的轨道,它的对齐会更好。
  • 特殊字符显示异常。 JSON3 是 UTF-8 编码。确保打开转换后文件的工具也以 UTF-8 读取。
  • 下载了多个语言轨道。 在 yt-dlp 中使用 --sub-lang 只下载你需要的轨道。

隐私与文件安全

字幕文件可能包含敏感内容。使用 yt-dlp 这样的本地工具下载,在浏览器中转换,整个工作流都在你的设备上完成。没有上传、没有第三方服务器、无需事后清理。JSON3 文件及其转换输出永远不会离开你的设备。

开始转换

JSON3 让你以最高保真度捕获 YouTube 字幕。将其转换为 SRT、VTT 或 LRC,就能让这些字幕在真实世界中使用。选择与你的目标匹配的转换器,剩下的只需几秒。

将你的 YouTube JSON3 字幕转为可用的字幕文件。

立即转换 JSON3 为 SRT
A
AllSubConverter Team
Subtitle Format Specialist & Content Contributor
Fast & Free

需要转换字幕文件?

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

打开字幕转换工具

相关文章