VTT to SRT — ブラウザでWebVTT字幕をSRT形式に変換
WebVTT字幕ファイルをSRTに変換します。cueのタイミングを保持し、WebVTTのメタデータヘッダーを除去し、行末を正規化します。すべてクライアントサイドで動作します。
VTT to SRT
Convert WebVTT subtitle files to SRT format. Works entirely in your browser — no uploads, no limits.
WebVTTとSRTはWeb上の2つの主要な字幕フォーマットであり、それぞれ異なる設計思想を表しています。WebVTTはブラウザ時代に設計されました。CSSスタイリング、タイムスタンプ付きメタデータ、画面上の字幕位置を指定するcueリージョン、任意のメタデータを保持できるヘッダーブロックをサポートします。SRTはデスクトップ動画時代を生んだ古いシンプルなフォーマットで、番号付きのタイムスタンプ付きテキストブロックのリストであり、スタイリングも位置指定も、cueのタイミング以外のメタデータもありません。VTTからSRTへの変換は単純化です。WebVTTが時限テキストに加えて追加するすべてが取り除かれ、プレーンテキストのcueとそのタイミングのみが残ります。
単純な字幕ファイル(cueごとに1行のセリフ、標準的なタイムスタンプ、重複エントリなし)の場合、変換は straightforward です。複雑さをもたらすのは、SRTが表現できない機能です。WebVTTは2つのcueの重複を許可します(最初の話者のテキストがまだ表示されている間に2番目の話者のテキストが表示される割り込み)。しかしSRTでは、各cueは次のcueが始まる前に終わっていなければなりません。WebVTTは <b>bold</b> や <i>italic</i> のspanで強調や話者の帰属を表現できますが、SRTはプレーンテキストです。WebVTTはスクリーン上のリージョンへのcue配置を許可しますが、SRTには空間モデルがありません。これらの違いのそれぞれが、変換における情報損失を意味し、その損失はターゲットフォーマットに固有のものです。
最終的な引き継ぎについて:再生中にSRTのタイミングがずれる場合は、このサイトのSubtitle Shiftツールを使って、すべてのタイムスタンプを一定のオフセットで前後に調整してください。出力先が動画ホスティングプラットフォーム(YouTube、Vimeo)であれば、SRTが最も広くサポートされているアップロード形式です。スタイリングを取り戻したい場合は、SRT-to-ASSツールでSRTをASS(Advanced SubStation Alpha)に変換してください。ASSはSRTにはないフォント、色、精密な位置指定をサポートしています。
使い方
VTTファイルを読み込む
.vttファイルをドロップゾーンにドラッグするか、VTTの内容を直接貼り付けます。パーサーがWebVTTヘッダーブロックを読み取り、スタイルブロックとメタデータコメントを除去して、各cueブロックのタイミングとテキストを抽出します。
変換後のSRTを確認する
各cueは1から順に番号が付けられます。タイムスタンプは `00:01:23.456` から `00:01:23,456`(SRT仕様に従ったカンマ区切り)に再フォーマットされます。複数行のcueテキストは改行ごと保持されます。
SRTファイルをダウンロードする
変換結果をUTF-8エンコーディングとCRLF行末で .srt ファイルとしてダウンロードします。出力はVLC、YouTube、Netflixなど、SRTに対応するすべての主要な動画プレーヤーと互換性があります。
よくある質問
WebVTTのスタイリングや位置指定のcueはどうなりますか?
WebVTTはCSS風のインラインspan(`<b>`、`<i>`、`<c.red>`)、cueリージョン、テキスト配置をサポートしています。SRTにはスタイリングのマークアップがありません。コンバーターはHTML風のタグと位置指定のメタデータをすべて除去し、プレーンテキストのみを残します。スタイルに意味がある場合(話者を色で区別するなど)、その情報は失われます。
重なっているcueはSRT出力に保持されますか?
WebVTTはcueの重複(同じ時間に2つのcueがアクティブになること)を許可していますが、SRTはできません。SRTでは各cueは次のcueが始まる前に終わっていなければなりません。重なっているcueはSRT出力では順次エントリに分割されるため、字幕の表示順が変わる可能性があります。
出力されるSRTの文字エンコーディングは何ですか?
BOMなしのUTF-8です。標準的なSRTは厳密にはANSIですが、すべての現代の動画プレーヤーがUTF-8を扱えるため、字幕ファイルの実質的な標準となっています。出力先のプレーヤーが特定のレガシーエンコーディングを要求する場合は、テキストエンコーディングツールでファイルを再エンコードしてください。
コンバーターはWebVTTのメタデータヘッダーを処理しますか?
はい。WebVTTヘッダー(`WEBVTT`、任意のヘッダー行、CSS風スタイルブロック)は除去されます。SRT出力にはcueブロックのみが引き継がれます。
制限事項
- スタイル情報は常に失われるVTT内のCSSクラス、インラインspan、位置指定メタデータを通じて適用された書式は、SRTがスタイルをサポートしないプレーンテキスト形式であるため、すべて削除されます。
- WebVTTリージョンはサポートされないWebVTTリージョン(位置指定された字幕エリア)はSRTに相当するものがありません。リージョンに割り当てられたcueは、タイミングを保持したまま順次SRT出力に配置されますが、画面上の位置は失われます。
- マイクロ秒精度は切り捨てられるWebVTTタイムスタンプはマイクロ秒精度を持てますが、SRTはミリ秒に丸められます。小数第3位は最も近いミリ秒に丸められます。
プラットフォーム別の注意点
- macOS
- Safariのネイティブ動画プレーヤーはWebVTTをネイティブにサポートしていますが、SRTにはVLCやIINAなどのサードパーティプレーヤーが必要です。SRTを優先するプレーヤー向けに字幕を用意する際に、この変換が役立ちます。
- Linux
- FFmpegは `ffmpeg -i input.vtt output.srt` でVTTをSRTに変換できますが、同時に埋め込まれた動画ストリームもトランスコードします。動画コンテナに含まれない独立したVTTを扱う場合は、ブラウザツールが適切な選択肢です。
- Web
- すべてクライアントサイドで動作します。現実的なサイズ(10MB未満)の字幕ファイルであれば、変換は瞬時に完了します。