Skip to content

YouTube JSON3 を VTT 字幕へ変換

YouTube timedtext JSON3 のイベントを、必須WEBVTTヘッダーと HH:MM:SS.mmm タイミング付きWebVTTに変換します。

JSON ファイルをここにドラッグ&ドロップ

またはクリックして選択

50MB以下の.json, .json3, .xml, .htmlファイルに対応

コアエンジンアーキテクチャ

JSON から VTT への変換について

HTML5のtrack要素や多くのWeb動画プラットフォームはJSON3を受け付けません。このツールはJSON3のevents配列を解析し、segsテキストフラグメントを結合、キュー時間を計算し、必須WEBVTTヘッダー付きの有効なWebVTTを出力します。HTML5動画、YouTube Studio、Vimeo、JavaScriptプレーヤーでそのまま利用できます。

ペイロード&構文インスペクター

JSON → VTT コード構文と構造の検証

ヘッダー定義、タイムスタンプ構文、キューペイロードのフォーマットを並べて比較し、コードレベルの対応関係を確認できます

ミリ秒同期
input.json
JSON 入力
{
"events": [
{ "tStartMs": 1000, "dDurationMs": 3000,
"segs": [{ "utf8": "Hello, world!" }] },
{ "tStartMs": 4500, "dDurationMs": 3500,
"segs": [{ "utf8": "This is a subtitle file." }] }
]
}
output.vtt
VTT 出力
WEBVTT
 
00:00:01.000 --> 00:00:04.000
Hello, world!
 
00:00:04.500 --> 00:00:08.000
This is a subtitle file.
 
00:00:08.500 --> 00:00:12.000
Converted locally!
仕様シート

JSON vs VTT 技術仕様

規格準拠
入力形式

JSON

JSON

JSON3 は YouTube が内部で使用する字幕形式で、timedtext API から提供されます。ファイルは JSON 構造で events 配列を含みます。各イベントには tStartMs(開始ミリ秒)、dDurationMs(継続ミリ秒)、segs(テキストフラグメントの配列、各フラグメントに utf8 フィールド)があります。youtube-dl、yt-dlp などのツールでダウンロードできます。

出力形式

VTT

VTT

VTT(WebVTT)は、Web動画向けのW3C標準字幕形式で、HTML5のtrack要素で使用され、YouTube、Vimeo、Video.jsやJW PlayerなどのJavaScriptプレーヤーで受け付けられます。ファイルは先頭行にWEBVTTという文字列を置き、その後にキューブロックを続けます。各キューはHH:MM:SS.mmm --> HH:MM:SS.mmmのタイムスタンプを使用します。キュー設定、インラインスタイルタグ、NOTEコメント、CSSブロックにも対応します。

フォーマットの違い

JSON3はYouTubeのevents配列を使用、VTTはWEBVTTヘッダーとキューブロックを使用
JSON3はtStartMsとdDurationMsを保存、VTTはHH:MM:SS.mmm --> HH:MM:SS.mmmを保存
JSON3はYouTube専用、VTTはW3CのWeb動画標準
ブラウザはtrackでJSON3を読み込めない、VTTはHTML5ネイティブ字幕形式

変換のトラブルシューティングと注意点

プレイヤー互換性、文字エンコーディング、タイミング同期に関する実践的な解決策

4 個の注意点
GOTCHA #1

プレーヤーで字幕のタイミングがずれたり音ズレが発生する

動画のフレームレートの違い(23.976fpsと25fpsなど)が原因の場合があります。当サイトの「字幕同期ツール」で全体の遅延を一括調整できます。

GOTCHA #2

日本語の漢字や記号が文字化け(?)して表示される

Shift-JISなど古い文字コードで保存されたファイルは文字化けします。出力ファイルはUTF-8に標準化されます。元のファイルが破損している場合は文字コード変換ツールをご利用ください。

GOTCHA #3

複数人物が同時に話す際に字幕が重なって見づらい

フォーマットによって重複表示の仕様が異なります。当サイトの字幕エディターで各行の表示時間を微調整できます。

GOTCHA #4

動画編集ソフト(Premiere、DaVinci Resolve等)で読み込みエラーになる

当ツールの変換エンジンは、改行や構文の一般的な問題を整理したクリーンなファイルを出力します。主要な編集ソフトでの読み込みをテストしてください。

機能

YouTube JSON3 の events 配列と segs テキストフラグメントを自動解析
JSON3のミリ秒タイムスタンプをVTTのHH:MM:SS.mmm形式に変換
クライアント側処理 — ファイルはデバイスから離れません
UTF-8 エンコーディング対応、CJK・非ラテン文字に対応
完全ブラウザ処理 — アップロードなし、プライバシー完全保護
無料、登録不要、透かしなし、1ファイル最大50MB

変換する理由

HTML5ビデオの<video>要素はWebVTTをネイティブサポートしており、JSON3はサポートされません。
YouTube Studioは字幕のアップロードにVTTを受け付けますが、JSON3は認識しません。
VimeoのWeb画面からクローズドキャプションをアップロードするにはVTTが必要です。
Video.js、Plyr、JW PlayerなどのJavaScript動画プレーヤーは、主な字幕ソースとしてVTTを使用します。
WebVTTは、ブラウザでアクセシブルな動画再生を行うためのネイティブな字幕形式です。
Web型の講義プラットフォームでは、動画字幕やキャプションにVTTが広く受け付けられます。
VTTはJSON3では表現できない位置指定、スタイル指定、メタデータに対応しています。
Scenarios

主なユースケース

Webビデオの字幕表示

HTML5の<video>要素で再生するWebビデオに対して、JSON3字幕をVTTに変換して表示させます。

YouTube字幕アップロード

YouTubeにアップロードする字幕をVTT形式で準備し、最適な同期と表示を確保します。

Vimeoのキャプション

Vimeo動画にクローズドキャプションを追加する際は、字幕設定画面からVTTファイルをアップロードします。

eラーニングプラットフォーム

Coursera、Canvas、自社LMSなど、VTTをWeb用キャプション形式として受け付ける講義動画に字幕を追加します。

JavaScript動画プレーヤー

Video.js、Plyr、JW Playerなど、字幕ソースとしてVTTを読み込むWebプレーヤーでキャプションを表示します。

Format Ecosystem

関連フォーマット

JSON (YouTube JSON3)

JSON3 は YouTube が内部で使用する字幕形式で、timedtext API から提供されます。ファイルは JSON 構造で events 配列を含みます。各イベントには tStartMs(開始ミリ秒)、dDurationMs(継続ミリ秒)、segs(テキストフラグメントの配列、各フラグメントに utf8 フィールド)があります。youtube-dl、yt-dlp などのツールでダウンロードできます。

SRT

SubRip - スマートTVやデスクトッププレーヤーでも動作する汎用形式。対象がWebブラウザでない場合は、VTTの代わりにSRTを選んでください。

ASS

Advanced SubStation Alpha - フォント、色、位置指定に対応するスタイル付き形式。Web互換性よりも見た目のスタイルを優先する場合はASSを選んでください。

使い方

  1. 1

    .json ファイルをアップロードまたはツールエリアにドラッグします。

  2. 2

    パーサーが JSON 構造を読み取り、events 配列を反復処理します。

  3. 3

    各時間ペアはVTT表記に整形され、時間が0埋めされ、矢印とミリ秒のピリオドが追加されます。

  4. 4

    segs のないタイミングのみのイベントは自動的にスキップされます。

  5. 5

    生成された .vtt はWEBVTTで始まり、Webプレーヤーで利用できる有効な矢印付きキューを含みます。

よくある質問

JSON3 は YouTube が内部で使用する字幕形式です。timedtext API から events 配列を含む JSON オブジェクトとして提供されます。各イベントには tStartMs(開始ミリ秒)、dDurationMs(継続ミリ秒)、segs(テキストフラグメント配列、各フラグメントに utf8 フィールド)があります。

各イベントのutf8フラグメントは元の順序で結合されます。例えば "Hello " と "world" は完全な字幕行 "Hello world" になります。

はい。必須のWEBVTTヘッダーと有効なキュータイミングが含まれるため、YouTube Studio、Vimeo、HTML5 track要素、Video.js、Plyr、JW Playerで動作します。

yt-dlp を使用:yt-dlp --write-auto-sub --sub-format json3 <動画URL>。ダウンロードした .json3 ファイルをこのツールに直接インポートして変換できます。

YouTube JSON3 の一部のイベントにはテキストフラグメントなしのタイミング情報のみが含まれます(aAppend マーカーなど)。これらのイベントは変換時に自動的にスキップされ、VTT 出力に影響しません。

VTT(WebVTT)は、Web動画向けのW3C標準字幕形式で、HTML5のtrack要素で使用され、YouTube、Vimeo、Video.jsやJW PlayerなどのJavaScriptプレーヤーで受け付けられます。ファイルは先頭行にWEBVTTという文字列を置き、その後にキューブロックを続けます。各キューはHH:MM:SS.mmm --> HH:MM:SS.mmmのタイムスタンプを使用します。キュー設定、インラインスタイルタグ、NOTEコメント、CSSブロックにも対応します。

字幕を変換する準備はできましたか?

JSON ファイルをここにドロップして VTT に即座に変換。