メインコンテンツへスキップ
SubtitleMatrix

VTT を ASS に変換

形式変換WebVTT(VTT)
字幕テキストを貼り付けることもできます

この変換で変わること

2 項目が失われるか、判断が必要です

  • 精度

    タイミングの精度(変換先の時計はより粗いため、すべてのタイムスタンプは 10 ms 単位に丸められます)

  • 形式固有の内容

    元の形式が字幕ブロックの外に保持している内容(字幕以外のブロック、ヘッダーのテキスト、字幕ごとの設定、コメントアウトされたイベント)。変換先の形式に置き場所がありません

この一覧は、読み込んだファイルではなく、この2つの形式の機能対応表から作られています。形式としては許されているが対応表が扱っていない機能を使っている場合、そのファイルではさらに多くが失われることがあります。

このページは WebVTT を ASS に変換します。ファイルをドロップするかテキストを貼り付けると、プレーヤーが期待するスクリプトヘッダー、スタイル表、Dialogue イベントを備えた ASS 版が返ります。変換はすべてブラウザ内で完結し、アップロードもアカウント登録も不要で、読み込み後はネットワークを切っても動きます。

2 つの形式はテキスト、改行、字幕の順序で一致するため、返ってくるのは同じ字幕をより豊かな構文で書いたものです。変換前に知っておくべき違いが 2 つあります。ASS は時刻を 100 分の 1 秒で保存するので、00:00:01.234 は 0:00:01.23 にならなければならず、すべてのタイムスタンプが 10 ミリ秒単位に丸められます。動画と突き合わせて初めて気づくのではなく、上のレポートがそう告げます。もう 1 つ、ASS にはスタイル表が必要で、VTT に対応するものがありません。Arial サイズ 20 に黒い縁取りの Default スタイルを 1 つ作り、あとから字幕編集ソフトで変えられます。

引き継がれないのは、VTT が字幕の外に保存しているものすべてです。ヘッダー行とそのコメント、NOTE、STYLE、REGION ブロック、タイムスタンプの後に続く align:start や position:10% といった設定は行き場がありません。ASS は配置を独自の上書きコードでテキストの中に書きますが、この変換は勝手に作り出しません。レポートに一覧が出て、ファイルを読み込むとそのファイルに実際どれだけあったかが分かります。

崩れた入力も問題ありません。ヘッダーの欠落、Windows の改行、タイムスタンプの前の余分な行、BOM はどれもそのまま読めます。1 ファイルでも 1 シーズン分でも、キューが順に処理し、途中で止められ、結果は 1 つの ZIP にまとまります。

例

典型的な VTT ファイルを ASS に変換した例

入力

WEBVTT

intro
00:00:01.000 --> 00:00:04.000
Hello there.

00:00:04.500 --> 00:00:08.000 align:start position:10%
Second line with <i>italics</i>.

出力

[Script Info]
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: 0,0:00:04.50,0:00:08.00,Default,,0,0,0,,Second line with {\i1}italics{\i0}.

この出力で失われるもの:精度と形式固有の内容。それ以外は行単位で一致します。

崩れた VTT 入力を ASS に変換した例

入力

a stray comment line
cue-id-1
00:00:01.000 --> 00:00:02.000
No header, two lines before the timecode.

出力

[Script Info]
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,No header, two lines before the timecode.

実ファイルの傷み方の例です。改行の混在、余分な空白、空のフィールドが含まれます。上の整った例と比べると、パーサーがどこまで許容するかが分かります。

よくある質問

VTT を ASS に変換するとタイミングが丸められるのはなぜですか?

ASS は 100 分の 1 秒、WebVTT は 1000 分の 1 秒で時刻を記録するためです。00:00:01.234 で始まる字幕は 0:00:01.23 になり、各タイムスタンプの移動は最大 5 ミリ秒です。動画を見ている分には見えませんが、別のファイルと 1 フレームずつ比べると意味を持ちます。

VTT を ASS に変換したときスタイル表はどこから来ますか?

変換器が作ります。スタイル表のない ASS は再生できないためです。出力には Default という 1 つのスタイル(Arial、サイズ 20、白文字に黒い縁取り)が付き、すべての Dialogue 行がそれを指します。ハウススタイルが違う場合は字幕編集ソフトで変えてください。変換をやり直すとその編集は上書きされます。

VTT の align:start や position:10% は ASS でどうなりますか?

捨てられます。ASS は字幕を正確に配置できますが、テキスト内の上書きコードで行います。左上なら \an7、指定した点なら \pos(320,240) です。VTT の設定はより限られた別の語彙で 1 対 1 に対応しないため、配置を推測せずテキストはそのままにして、設定を失われたものとして報告します。

VTT を ASS に変換すると NOTE、STYLE、REGION ブロックは残りますか?

残りません。ASS に対応するものがない VTT 専用の構造です。注意すべきは STYLE で、通り過ぎるコメントではなく文書全体のレイアウト規則を保持できます。そのスタイルが必要なら ASS 側で作り直す必要があります。

機密の VTT ファイルを ASS に変換しても大丈夫ですか?

大丈夫です。ファイルはブラウザのタブ内で読まれ書き出されるため、NDA の下にある WebVTT も端末の外に出ません。アップロードの工程もサーバー側の解析もなく、出力はローカルに書かれ、ネットワークを切っても変換は続きます。

関連ツール