SRTの字幕をWebVTTに変換する

.srtファイルをドロップするだけで、どのブラウザーでも再生できる.vttが手に入ります。アップロード不要、アカウント不要、透かしもありません。

  1. 1ファイル
  2. 2変換
  3. 3ダウンロード

このツールでできること

ブラウザーはSRTを読めません。HTML5の `<track>` にSRTを指定しても、エラーも字幕も何も出ず、ただ無反応です。ブラウザーが読むのはWebVTTで、2つの形式はよく似ているため、変換は機械的に行えます。タイミングもテキストも同じで、先頭にヘッダーが付き、ミリ秒の区切りがカンマからピリオドに変わるだけです。

そのため、世の中の変換ツールの多くはわずか3行のコードでできていて、同じようなファイルで壊れます。実際のサイトからダウンロードした字幕には、バイトオーダーマーク、Windowsの改行、位置指定、そしてWebVTTがマークアップと誤認する単独のアンパサンドなどが含まれています。こちらでは、書き出す前にそれらをすべて処理します。

他にはない、細かな配慮

  • バイトオーダーマークとWindowsの改行は、ヘッダーを書く前に除去します。WEBVTTの前にBOMがあるだけで、プレーヤーはファイル全体を拒否することがあります。
  • アンパサンドと小なり記号をエスケープするので、「Tom & Jerry」のような表記でも、行の残りが消えることはありません。
  • 斜体、太字、下線はそのまま保持されます。どちらの形式も対応しているためです。
  • タイミングはミリ秒単位でそのまま維持します。出力されるのは、形式だけが違う同じファイルです。

使い方

  1. 1

    .srtをドロップ

    テキストを直接貼り付けても構いません。読み込みはお使いのブラウザー内で行われ、どこにも送信されません。

  2. 2

    結果を確認

    取り込まれた字幕の数と全体の長さが表示され、変換済みのファイルも確認できます。

  3. 3

    .vttをダウンロード

    <track>、プレーヤー、WebVTTを求めるあらゆるものにそのまま使えます。

詳しく

2つのファイルで実際に何が違うのか

見た目より違いは少なく、それでも片方では動くのにもう片方では動かない程度には違います。WebVTTは、1行目が必ずWEBVTTという単語で始まらなければなりません。ないと、ブラウザーは何も言わずにファイル全体を破棄します。ミリ秒の前はカンマではなくピリオドです。そしてSRTでは必須の連番が、ここでは不要です。

もう1つ、手軽な変換ツールの多くが引っかかる違いがあります。WebVTTはテキストをHTMLのように解釈するのです。行の途中に単独のアンパサンドや小なり記号があると、マークアップとして扱われ、その後ろが消えてしまいます。こちらでは、書き出す前にそれらをエスケープします。

VTTが必要になる場面

ウェブページ上のあらゆるプレーヤーです。HTML5のtrack要素(サイト上の動画に字幕を重ねるもの)が理解するのはWebVTTだけで、これがこの変換を探すことになる最大の理由です。字幕が表示されず、確認できるエラーも出ません。

HLSのストリーミング、一部の埋め込みプレーヤー、いくつかの企業向け動画プラットフォームでも求められます。一方、ブラウザーの外では、ほとんどのものがSRTを好むので、両方を保存しておくのがおすすめです。数キロバイトしかなく、変換し直す手間が省けます。

質問

お手元にあるのが動画だったら?

アップロードするだけで、タイムスタンプ付きの文字起こし、名前付きで分けられた話者、要点をまとめた要約をお返しします。アカウントなしで始められます。