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

ASS を VTT に変換

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

この変換で変わること

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

  • スタイル

    太字と斜体以外のすべてのスタイル(色、縁取り、影、余白)

  • 位置

    画面内の位置指定(すべての字幕が既定の位置に戻ります)

  • カラオケ

    カラオケのタイミング(音節ごとの強調)

  • 形式固有の内容

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

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

このページは ASS を WebVTT に変換します。ファイルをドロップするかテキストを貼り付けると、VTT 版が返ります。変換はすべてブラウザ内で完結し、アップロードもアカウント登録も不要で、一度読み込んだページはネットワークを切っても動きます。

ASS は字幕制作会社がスタイル付きの仕事に使う形式で、WebVTT が保持できるより多くの情報を持ちます。太字と斜体は残り、{\b1} と {\i1} は VTT の <b> と <i> になります。一方で色、縁取り、影、余白、名前付きスタイルは失われます。{\pos(320,240)} や {\an7} による位置指定も同じで、限られたキューの設定しか持たない形式に対応先がありません。カラオケのタイミングも残らず、音節はテキスト内の別々のスパンとして残るため言葉は読めますが、順に光る動きは失われます。

もう 2 点あります。ASS は [Fonts] と [Graphics] を伴うことが多く、これはレンダラ向けの添付であって字幕ではないため、VTT には引き継がれません。また {\fad} のようなモデル化していない上書きコードは、中途半端に翻訳も削除もせず、テキストにそのまま残します。黙って消えるものはありません。

崩れた入力も扱えます。BOM、Windows の改行、字幕ではないコメント行、小数点以下が 1 桁だけのタイムコードも、そのまま読み取ります。1 ファイルでも 1 シーズン分でも、キューが順に処理し、途中で止められ、結果は 1 つの ZIP にまとまります。

例

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

入力

[Script Info]
Title: Example
ScriptType: v4.00+
WrapStyle: 0

[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
Style: Title,Arial,36,&H0000FFFF,&H000000FF,&H00000000,&H00000000,-1,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:05.00,0:00:08.50,Default,,0,0,0,,{\i1}Italic{\i0} and {\b1}bold{\b0} text.
Dialogue: 0,0:00:09.00,0:00:12.00,Title,,0,0,0,,{\pos(320,240)}Positioned
Dialogue: 0,0:00:13.00,0:00:16.00,Default,,0,0,0,,{\k50}ka{\k30}ra{\k20}o{\k10}ke
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Line one\NLine two
Dialogue: 1,0:00:21.00,0:00:24.00,Default,,0,0,0,,{\an7}Top left

出力

WEBVTT

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

00:00:05.000 --> 00:00:08.500
<i>Italic</i> and <b>bold</b> text.

00:00:09.000 --> 00:00:12.000
Positioned

00:00:13.000 --> 00:00:16.000
<c>ka</c><c>ra</c><c>o</c><c>ke</c>

00:00:17.000 --> 00:00:20.000
Line one
Line two

00:00:21.000 --> 00:00:24.000
Top left

この出力で失われるもの:スタイル、位置情報、カラオケ、形式固有の内容。それ以外は行単位で一致します。

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

入力

[Script Info]
; 一份真实的脏文件:BOM + CRLF + 认不出的覆写码 + Comment + 坏时间码
Title: Dirty sample
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,1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Fonts]
fontname: Arial
!!!!!!!!!!!!!!!!!!!!!!!!!!!!

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: 0,0:00:00.00,0:00:01.00,Default,,0,0,0,,这是一条注释,不该变成字幕
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello, world
Dialogue: 0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\fad(300,300)}Unmodelled override
Dialogue: 0,0:00:09.00,0:00:12.00,Default,,0,0,0,,{\an7\pos(320,240)}Both, wrong order
Dialogue: 0,0:00:13.00,0:00:16.5,Default,,0,0,0,,One decimal centisecond
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Soft\nbreak
Dialogue: 0,0:00:xx.00,0:00:24.00,Default,,0,0,0,,Broken timecode

出力

WEBVTT

00:00:01.000 --> 00:00:04.000
Hello, world

00:00:05.000 --> 00:00:08.000
{\fad(300,300)}Unmodelled override

00:00:09.000 --> 00:00:12.000
Both, wrong order

00:00:13.000 --> 00:00:16.500
One decimal centisecond

00:00:17.000 --> 00:00:20.000
Soft
break

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

よくある質問

ASS から VTT に変換するとカラオケのタイミングはどうなりますか?

WebVTT には音節ごとのタイミングがないため、\k の値は行き先を失います。音節はテキスト内の別々のスパンとして残り、カラオケ行は 4 分割のまま読めますが、順に光る動きは再現されません。

ASS の太字と斜体は VTT でも残りますか?

残ります。WebVTT のインラインタグが表現できるのはこの 2 つで、{\i1}斜体{\i0} は <i>斜体</i> になり、太字も同様です。色、縁取り、影、余白、フォント名など、それ以上の指定は失われます。

ASS の位置指定は VTT に変換するとどうなりますか?

位置は失われます。\pos(x,y) と \an7 は ASS 固有で、WebVTT 側は任意座標ではなく限られたキューの設定しか持たないため、テキストはプレーヤーの既定位置に表示されます。文章そのものは変わりません。

ASS の [Fonts] と [Graphics] は VTT でどうなりますか?

引き継がれません。これらはプレーヤーが描画するために必要なフォントと画像を埋め込んだ添付で、字幕そのものではありません。VTT に対応するセクションはなく、フォントの埋め込みもできないため、システムフォントかプレーヤー側のスタイルで代替することになります。

ASS の {\fad} のような未対応の上書きコードは VTT でどうなりますか?

テキストにそのまま残ります。変換器がモデル化していない上書きコードは、半分だけ翻訳したり黙って削除したりせず、元の文字列のまま出力します。対象のファイルに何個あったかは読み込み後に報告します。

関連ツール