WebVTT(.vtt)をAdvanced SubStation Alphaに変換
.vttキャプションファイルを、適切なスタイル定義とセンチ秒単位のタイミングを備えたスタイル付きの.ass字幕トラックに変換します。ASSを前提とするプレーヤーや編集ソフトにそのまま使えます。アップロードは一切不要です。
ファイルがサーバーに触れることは一切ありません。 このページでの変換はすべて、JavaScriptのFileReader APIを使用してブラウザ内でローカルに実行されます。アップロード、記録、保存は一切行われません。Zoom/Teamsの機密録画、未公開の動画、法的なインタビューにも安心してご利用いただけます。
VTT to ASS変換の仕組み
WebVTT(.vtt)はブラウザでのキャプション表示のために作られています。WEBVTTヘッダーに続いて、HH:MM:SS.mmm --> HH:MM:SS.mmm形式のタイムコード範囲と1〜2行のテキストからなるキューが並び、任意でキュー設定や<v Speaker>のような話者タグが付くこともあります。一方、Aegisubや多くのファンサブグループ、MPVやVLCのような高度なプレーヤーが使うAdvanced SubStation Alpha(.ass)は、まったく異なる構造を持ちます。[Script Info]ヘッダー、フォント・色・輪郭・画面位置を定義する[V4+ Styles]セクション、そして行ごとにそれらのスタイルを参照する[Events]セクションです。
SubToolDeskのVTT to ASS変換ツールは、あなたのブラウザ内でローカルにWebVTTのキューを解析し、WEBVTTヘッダーと話者タグをすべて取り除き、すべてのタイムコードをASSのセンチ秒形式であるH:MM:SS.ccに変換し、動作する[Script Info]ブロック、単一のDefaultスタイル、キューごとのDialogue:行を持つ、完全で有効な.assファイルを書き出します。
VTTをASSに変換する方法(手順ごとに解説)
- 上の変換ツールに
.vttファイルをドラッグするか、「ファイルをアップロード」をクリックして選択します。 - 自動検出された形式バッジがVTTと表示されているか確認します。
- 元のファイルに
<v Speaker>タグや、引き継ぎたくない先頭の名前ラベルが含まれている場合は話者ラベルを削除をオンにします。 - ダウンロードを押して、元のファイル名に合わせて命名された有効な
.assファイルを保存します。
なぜVTTをASSに変換するのか
.vttキャプションファイルは、スタイル付きテキストをレンダリングする編集ソフトのためではなく、ブラウザ内蔵のプレーヤーのために作られています。ASSへの変換は、ほとんどの場合、変換先のプレーヤーや編集ソフトがそのテキストに対して何を行う必要があるかにかかっています。
- ファンサブ用のカラオケ風タイミング:ASSの1音節ごとのオーバーライドタグは、元のキャプションがブラウザから書き出されたWebVTTトラックであったとしても、ファンサブやアニメのリリースグループがカラオケ効果を作る標準的な方法です。
- 画面上でのダイアログの位置指定:ASSはマージンとアライメントのオーバーライドによって、フレーム内の任意の位置に行を配置でき、WebVTT自体の
align/positionキュー設定よりも柔軟な代替手段となりますが、この変換ツールはこれらを自動的には引き継ぎません。 - アクセシビリティやスタイルのための色付き・輪郭付きテキスト:この変換ツールが自動的に書き出す色付きで輪郭のあるDefaultスタイルは、フラットなWebVTTテキストでは保証できない形で、明るい映像や複雑な映像の上でも読みやすさを保ちます。
- Aegisub、MPV、VLCのワークフロー:AegisubはASS形式を中心に構築されており、MPVとVLCはいずれもそのスタイルのオーバーライドをレンダリングするため、そこから始まるプロジェクトはブラウザ用キャプションファイルではなくASSを必要とします。
- 行ごとのフォントとサイズのオーバーライド:ASSでは、ベースのスタイルに手を加えずに、個々のDialogue行でフォント、サイズ、色を上書きできます。これはWebVTTのキュー設定では表現できません。
- 土台となるスタイル付きファイルを用意する:変換によって
[Script Info]、[V4+ Styles]、[Events]の構造が整うため、Aegisubで残る作業はスタイルそのものを追加することだけになります。
変換前と変換後:実際の例
キュー設定、話者タグ、イタリックタグを含む、2つのキューからなる短いWebVTTの抜粋を、書式タグを削除をオン、話者ラベルを削除をオフ(このページの既定の状態です)にして変換した例です。
WEBVTT 00:00:03.500 --> 00:00:06.120 align:start position:10% <v ジョーダン>本日はお電話にご参加いただきありがとうございます。 00:00:06.500 --> 00:00:09.800 <v プリヤ><i>もちろんです、早速始めましょう。</i>
[Script Info] Title: SubToolDesk Export ScriptType: v4.00+ ... [V4+ Styles] Format: Name, Fontname, Fontsize, ... Style: Default,Arial,20,&H00FFFFFF,... [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:03.50,0:00:06.12,Default,,0,0,0,,ジョーダン: 本日はお電話にご参加いただきありがとうございます。 Dialogue: 0,0:00:06.50,0:00:09.80,Default,,0,0,0,,プリヤ: もちろんです、早速始めましょう。
WEBVTTヘッダーとalign:start position:10%のキュー設定はどちらも消えています。この変換ツールにはキュー設定に対応するASSの等価表現がないため、変換されるのではなく取り除かれます。各タイムコードは、WebVTTのピリオド区切りのミリ秒から、ASSのピリオド区切りのセンチ秒に変わりました(00:00:03.500が0:00:03.50になっています)。<i>タグは書式タグを削除がオンだったために消えています。<v ジョーダン>と<v プリヤ>の話者タグも消えていますが、話者ラベルを削除がオフだったため、それぞれの名前は完全に取り除かれるのではなく、名前:という接頭辞としてダイアログテキストに折り込まれています。これは移動先となる専用のASSのNameフィールドが存在しないためで、そのフィールドは空のままです。
生成される.assファイルの内容
出力は完全でプレーヤーにそのまま使える状態のASSファイルです。実際に機能する[Script Info]ブロック、Defaultという名前のスタイルを1つ持つ[V4+ Styles]セクション(映像の上でも読みやすいよう、白いテキストに細い輪郭と影を付け、下部中央に配置)、そしてすべてのキューに対応するDialogue:行を持つ[Events]セクションが含まれます。その後Aegisubで結果を開いて、フォント、色、位置を調整できます。
WebVTT固有の機能はどうなるのか
WebVTTのキュー設定(align:start position:10%のような)や<v Speaker Name>の話者タグは、この変換ツールの出力において直接対応するASSの等価表現を持ちません。キュー設定は取り除かれ、話者タグは話者ラベルを削除のトグルによって取り除かれます。これはこのサイトの他のすべての変換ツールと同じ扱いです。ASSで同じ情報が必要な場合、それは行ごとのMarginL/MarginR/MarginVのオーバーライドや専用のスタイルを通じて別の形で表現され、ベースファイルを手に入れた後の手作業の工程となります。
なぜASSではタイムコードの見た目が異なるのか
WebVTTはピリオド区切りでミリ秒単位(00:00:09.400)の時間を記録しますが、ASSはセンチ秒、つまり100分の1秒単位で、時間はゼロ埋めされません(0:00:09.40)。この丸め処理は変換ツールが自動的に行うため、元のファイルで9.4秒から始まるキューは、出力側でも正しいセンチ秒の位置に収まります。
人々がVTTからASSに移行する理由
- ファンサブやアニメのリリースグループ:元のキャプションがWebVTTとして書き出されたものであっても、ASSのスタイルと位置指定のオーバーライドが事実上の標準となっている分野です。
- Aegisubで作業する編集者:プレーンなVTTのインポートではなく、ネイティブなプロジェクト形式としてASSを前提としています。
- スタイル付きのオーバーライドをレンダリングするプレーヤーやパイプライン:MPVや特定のストリーミングエンコーダーなど、WebVTTのキュー設定がASSが提供するのと同じ位置指定やフォント制御に対応しない場合です。
- ウェブから書き出されたキャプショントラックからスタイル付き字幕プロジェクトを始める:手作業でスタイルを追加する前に、この変換ツールを使って構造的に有効なASSファイルをまず用意します。
ポリシーではなく、構造によるプライバシー
VTTの解析とASSファイルの書き出しは、いずれもあなたのブラウザタブ内で動作するJavaScriptによって行われます。この機能にはアップロード先のエンドポイントそのものが存在しません。これは元のファイルが公開されているYouTubeのキャプション書き出しであっても、機密の録音であっても変わりません。
この変換ツールが保持するものと削除するもの
保持されるもの:
- 発言されたダイアログテキストのすべての単語を、元の順序と句読点のまま保持します。
- 各キューのタイミングを、ずれが生じないように、WebVTTのミリ秒単位の精度からASSのセンチ秒単位の精度に再整形します。
- 元のVTTファイルに登場した順序のまま、ソースのキューごとに1つの
Dialogue:行を保持します。 - 話者ラベルを削除がオフの場合、
ジョーダンのような話者タグの名前を、接頭辞としてダイアログテキストに折り込んだ状態で保持します。
削除されるもの:
WEBVTTヘッダー行、およびNOTE、STYLE、REGIONのブロック。align:start position:10%のような、タイムスタンプ行上のキュー設定。この変換ツールの出力には対応する直接的なASSの等価表現がありません。- 書式タグを削除がオンの場合、
<i>、<b>、<u>などのインライン書式タグ。 - 話者ラベルを削除がオンの場合、名前を含む
<v Speaker Name>のような話者タグ全体。
よくある問題とその解決方法
- 出力にまだ
<i>や<b>タグがダイアログテキストに残っている場合:書式タグを削除をオンにしてください。これは変更していない場合にのみ既定でオンになっています。 ジョーダン:のような名前がまだダイアログテキストに付いたままの場合:話者ラベルを削除をオンにしてください。このページでは既定でオフになっているため、有効にしない限り話者タグの名前はテキストの接頭辞としてそのまま通過します。- キューの位置指定やアライメントが消えてしまったように見える場合:これは想定された動作です。WebVTTの
align/positionのキュー設定は自動的にはASSに引き継がれません。必要であればAegisubでマージンやアライメントのオーバーライドを使ってその位置指定を再現してください。 - Aegisubでどの行も同じフォント・サイズ・色で表示される場合:これは想定された動作です。この変換ツールは単一のDefaultスタイルを書き出します。その後Aegisubでファイルを開き、追加のスタイルや行ごとのオーバーライドを作成してください。
- 変換後に字幕のタイミングが少しずれているように見える場合:ASSはセンチ秒精度しか保持しないため、正確にミリ秒単位でタイミングが設定されたキューは、最大で100分の1秒ずれる可能性があります。これは気づけるレベルを大きく下回るものです。ずれがそれより大きい場合は、代わりに元のVTTのタイムコードを確認してください。
- アクセント付きの文字や英語以外のテキストが
éのような文字化けとして表示される場合:元の.vttがUTF-8で保存されていません。UTF-8として再書き出しまたは再保存してから、再度アップロードしてください。
このツールが意図的に行わないこと
このツールは単一のDefaultスタイルを書き出すだけで、カラオケのタイミング、キャラクターごとの色、位置指定のオーバーライドを推測しようとはしません。それらは有効なベースファイルが手に入った後の、手作業(またはAegisubを使った作業)の工程です。また、WebVTTのキュー設定をASSのマージンやアライメントのオーバーライドに自動的に翻訳することもありません。その対応関係は一対一ではないため、必要であれば自分の意図に沿って適用することが求められます。
よくある質問
VTTファイルをASSに変換するにはどうすればいいですか?
上の変換ツールに.vttファイルをドラッグするか、内容を左側のパネルに貼り付けてください。形式バッジがVTTであることを確認したら、ダウンロードを押します。完全で有効な.assファイルがあなたのブラウザ内で生成されます。
生成されたASSファイルはAegisub、VLC、MPVで正しく開きますか?
はい。出力には有効な[Script Info]ヘッダー、Defaultスタイルを持つ[V4+ Styles]セクション、適切に整形されたDialogue行を持つ[Events]セクションが含まれており、これは3つすべてが期待する構造です。
WebVTTの話者タグとキューの位置指定はどうなりますか?
<v Speaker Name>のような話者タグは、話者ラベルを削除のトグルによって取り除かれます。align や position のようなキューの位置指定設定は自動的には引き継がれません。ASSではその情報はスタイルや行ごとのマージンのオーバーライドを通じて別の形で表現されます。
なぜASS出力ではタイムコードの見た目が異なるのですか?
ASSはWebVTTのミリ秒単位のタイムコードとは異なる形式のセンチ秒精度を採用しています(00:00:09.400ではなく0:00:09.40)。この変換ツールはこの変換を自動的に処理します。
この変換を行うためにキャプションファイルはどこかにアップロードされますか?
いいえ。VTTの解析とASSファイルの生成は、いずれもお使いのブラウザのJavaScriptエンジン内で完全に行われます。サーバーには何も送信されません。
YouTubeやVimeoは.ass字幕ファイルを受け付けますか?
いいえ。YouTubeやVimeoを含むほとんどのアップロードフォームは、SRTまたはVTTを受け付けますが、ASSは受け付けません。そのスタイルをレンダリングする編集ソフトやプレーヤー(Aegisub、MPV、VLC)向けにはASSに変換し、プラットフォームへのアップロード用にはVTTまたはSRTのコピーを残しておいてください。
ASSはVTTより優れていますか、それともVTTのままでいいですか?
必要なものによります。ASSはVTTのキュー設定では完全に表現できない位置指定、カラオケのタイミング、行ごとのフォントや色のオーバーライドに対応しています。VTTはブラウザやHTML5の<track>要素が実際に要求する形式です。AegisubやMPVのようなプレーヤーでワークフローが特にスタイルを必要とする場合はASSを、ウェブでの再生にはVTTを使ってください。