動画のタイムラインに沿って字幕キューのカードが並び、その横に字幕文書が2枚ある。

SRTとVTTは、字幕のテキスト形式です。各字幕キューには、表示する言葉と、その開始時刻と終了時刻が含まれます。キューとは、字幕の1項目です。実用的な成果物は、保存して、使う予定のプレーヤーや編集ソフトで開ける字幕テキストです。

この比較記事はChronometricaが公開しています。以下の製品情報は、2026年10月20日に確認した公開ドキュメントに基づきます。この記事は出力を比較するものです。精度、速度、価格について、測定に基づく主張はしていません。

字幕テキストの整形を誰が行うかを選ぶ

YouTubeの文字起こしをコピーすると、時刻表示が含まれていても、そのまま使える字幕ファイルにはならないことがあります。ある読者が、YouTubeコミュニティへの質問でこの問題を取り上げました。その読者は文字起こしテキストを持っていましたが、コピーした時刻の表記がSRTの構文に合っていませんでした。

この問題は、2つの作業に分かれます。まず、字幕の言葉と時刻を取得します。次に、編集ソフトが受け付ける字幕形式に整えます。後半が整形の作業です。時刻付きセグメントを字幕テキストに変換します。

公開動画のURLがあり、字幕を整形するプログラムを持っていない人には、Chronometricaがよく適しています。任意で指定する`srt`と`vtt`フィールドには、整形済みの字幕テキストが入ります。指定したフィールドの内容を保存し、編集ソフトで確認できます。Actorが返すのはテキストフィールドです。形式を選ぶだけで、ダウンロード済みの字幕ファイルが自動的に作られるわけではありません。Actorとは、ホスト環境で動くデータ収集プログラムです。(Chronometricaのドキュメント)

この選択を変える主な条件は、変換処理を自分で管理する必要があるかどうかです。短いセグメントの結合、改行位置の指定、特定の編集手順に合わせた字幕の準備について、すでに独自のルールがあるかもしれません。それらは利用者側の編集ルールです。この比較で確認した製品設定ではありません。

字幕テキストの整形を誰が行うかを選ぶ
判断基準ChronometricaPinto Studio
確認した出力任意で指定できる、整形済みの`srt`と`vtt`テキスト`start`、`dur`、`text`を含む`data`配列
字幕の確認前に必要な作業指定したテキストフィールドの内容を保存するセグメントを必要な形式に変換する
この比較で適している用途整形済みのテキストを受け取りたい変換処理を自分で管理したい

この表は、ドキュメントに記載された出力構造を示しています。(Chronometrica、Pinto Studio)

形式を選ぶ前に字幕の要件を確認する

Chronometricaは、既存の公開字幕を抽出します。字幕がない場合に、音声認識による文字起こしを新たに作成する機能ではありません。音声認識による文字起こしとは、録音された話し声から文章を生成することです。利用可能な字幕がない動画からテキストを得る必要がある場合、VTTの代わりにSRTを選んでも、その問題は解決しません。(Chronometricaのドキュメント)

Actorを実行する前に、元動画のURL、必要な字幕言語、出力先の字幕形式を記録します。この3つで、何をもって成功とするかが決まります。読みやすい字幕でも、言語が違えば、英語字幕を求める依頼には応えられません。

Chronometricaは、指定された順に`preferredLanguages`を試します。指定した言語がどれも一致しない場合は、別の言語で代用せず、種類を示す失敗情報を返します。この失敗情報から、問題の種類が分かります。別の言語を追加するのは、その言語も結果として受け入れられる場合だけにしてください。(Chronometricaの入力、出力仕様)

抽出と翻訳は分けて扱います。別の言語が必要な場合は、そのテキストをどのように取得し、確認するかを決めます。YouTube翻訳の意味を確認するガイドでは、この確認を別に行う必要性を説明しています。

この比較での成功とは、指定した既存の字幕トラックを取得し、必要な字幕形式に整え、動画と照合して結果を確認することです。すべての公開URLから字幕を取得できるという意味ではありません。

ChronometricaでSRTまたはVTTを明示的に指定する

Chronometricaの`outputFormats`には、`json`、`text`、`srt`、`vtt`、`llm`を指定できます。既定値は`json`と`text`です。そのため、`srt`または`vtt`フィールドが必要な場合は、明示的に指定する必要があります。(現在の入力スキーマ)

公開されているYouTube字幕SRT/VTT Taskを、最初の設定として使えます。Taskとは、保存済みの入力設定です。保存済みの設定は変わる可能性があるため、実行前に実際の入力を確認してください。

以下の入力は、公開スキーマと照合して確認しました。実行はしていません。サンプルURLは、公開スキーマの例にあるものです。現在その動画の字幕を利用できるかどうかは不明です。字幕作業に合う公開動画のURLに置き換えてください。

json
{
  "startUrls": [
    "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
  ],
  "preferredLanguages": [
    "en"
  ],
  "outputFormats": [
    "json",
    "srt",
    "vtt"
  ],
  "includeFailedInputDetails": true
}
ChronometricaでSRTまたはVTTを明示的に指定する

この入力は、英語と、両方の字幕形式への整形を指定しています。また、字幕テキストを時刻付きセグメントと比較できるように、構造化出力も指定しています。両方の形式を指定するのは、両方を確認する必要がある場合だけにします。必要な形式が1つなら、その形式を明示的に指定してください。

処理に成功した動画については、動画を識別する情報、字幕言語、時刻付きセグメントを含む1行が出力されます。任意で指定する`srt`と`vtt`フィールドには、指定した字幕テキストが入ります。失敗情報は、成功した結果のデータセットとは別に、`OUTPUT`に記録されます。`includeFailedInputDetails`設定により、入力単位の失敗の詳細がそこに保存されます。(Chronometricaの出力、入力スキーマ)

両方を確認してください。成功した結果のデータセットには、取得できた内容が示されます。`OUTPUT`には、失敗した入力の説明があります。取得に失敗した結果を、空の字幕ファイルに置き換えないでください。そうすると、抽出に成功した場合と、元のテキストが得られなかった場合の違いが分からなくなります。

変換処理を自分で管理する場合はセグメント出力を使う

Pinto Studioのドキュメントでは、1回の実行につき`videoUrl`と`targetLanguage`を1つずつ指定します。公開されている出力例では、`start`と`dur`が秒単位の数値文字列で表されています。これらの値から、字幕の時刻を計算できます。(Pinto Studioの入力、出力例)

変換処理を自分で管理する場合は、加算する前に、これらの値を数値として読み取ります。終了時刻は、開始時刻に継続時間を加えた値です。単位を統一してから、必要な字幕構文で書き出します。

既存の処理ですでに編集ルールを適用している場合、この追加作業は役立つことがあります。たとえば、使っている編集ソフトでは、書き出し前に短いキューの確認が必要かもしれません。自分の処理であれば、元のセグメントを保持し、選んだ変更を適用して、変更内容を記録できます。

その管理が不要な場合、整形プログラムの作成と保守は、字幕作業の負担を増やします。整形済みの出力があれば、保存と確認の段階から始められます。ただし、ファイルが開くことと、キューが動画に合っていることは、引き続き確認する必要があります。

変換の詳しい手順は、YouTube字幕変換ガイドを参照してください。ここで判断するのは、作業手順の中で、その変換工程を自分で管理する必要があるかどうかです。

架空の例で違いを確認する

この例は、すべて架空のものです。字幕の整形と計算を確認するための例です。実際のActorの実行結果ではなく、どちらの製品の字幕精度についても根拠にはなりません。

次の2つの架空のセグメントがあるとします。

架空の例で違いを確認する
セグメントテキスト開始時刻継続時間終了時刻
A編集ソフトを開いてください。1.25秒2.50秒3.75秒
B字幕を確認してください。4.00秒1.20秒5.20秒

セグメントAの終了時刻は、`1.25 + 2.50 = 3.75`秒です。セグメントBの終了時刻は、`4.00 + 1.20 = 5.20`秒です。両者の間隔は、`4.00 - 3.75 = 0.25`秒です。どちらの継続時間も正の値で、キューは重なっていません。

SRT形式に整形すると、次のようになります。

srt
1
00:00:01,250 --> 00:00:03,750
Open the editor.

2
00:00:04,000 --> 00:00:05,200
Check the subtitle.
架空の例で違いを確認する

同じ内容をVTT形式に整形すると、次のようになります。

vtt
WEBVTT

00:00:01.250 --> 00:00:03.750
Open the editor.

00:00:04.000 --> 00:00:05.200
Check the subtitle.
架空の例で違いを確認する

SRTの時刻表記では、ミリ秒の前にカンマを使います。VTTの時刻表記では小数点を使い、テキストの先頭に`WEBVTT`を置きます。どちらの整形結果も、同じ2つのキューと、その時刻を保持しています。

整形済みの出力を受け取った場合は、セグメントと比較します。キューが二つあり、どちらの継続時間も正の値で、間隔が同じ四分の一秒であることを確認します。これらの確認に合格すれば、変換処理を自分で作らずにテキストを保存できます。

自分の処理でセグメントから始める場合は、終了時刻を計算し、構文に従って書き出す必要があります。独自の結合や改行を加える場合は、さらに編集上の判断が必要です。後で変更を確認できるように、元のテキストと時刻を保持してください。

簡単な手順で字幕の受け入れ確認を行う

用途に合う公開動画を1本使い、実際に使える作業手順を確立します。さらに多くの字幕を準備する前に、明確な成功条件を決めてください。

  1. 必要な結果を明確にします。動画URL、字幕言語、出力先の形式を記録します。字幕を読み込むプレーヤーや編集ソフトの名前も記録します。これにより、ファイルを実際に使う環境に合わせて受け入れ確認を行えます。
  2. 現在の入力を確認します。必要な字幕形式を明示的に指定します。上記の入力を使う場合は、サンプルURLを置き換えます。言語の一覧を順に確認し、結果として受け入れられる言語だけを含めます。
  3. 成功情報と失敗情報を併せて確認します。成功した行が、対象の動画と字幕言語のものであることを確かめます。`OUTPUT`で失敗情報を確認します。字幕がない場合や、指定した言語を利用できない場合は、未解決の作業として記録します。不明な値は、不明のまま保持します。
  4. 字幕ファイルを作成します。整形済みの出力を使う場合は、`srt`フィールドの内容を`.srt`ファイルとして、または`vtt`フィールドの内容を`.vtt`ファイルとして保存します。保存するのは字幕テキストそのものです。セグメント出力を使う場合は、単位を統一して開始時刻と終了時刻を計算してから、指定形式で書き出します。
  5. キューを確認します。キューの順序、継続時間が正の値であること、時刻の構文を確認します。間隔と重なりを調べます。間隔は、発話がない時間かもしれません。重なりは、元動画との照合が必要です。元動画のURLと字幕言語を、保存したファイルと一緒に保管します。
  6. ファイルを開き、音声を聞きます。使う予定のプレーヤーや編集ソフトでファイルを読み込みます。選んだキューの開始と終了を、動画と照合します。字幕の言葉を発話と比較します。ファイルが正しく開いても、字幕の言葉やタイミングに問題がある可能性は残ります。
  7. 判断を記録します。字幕を受け入れ済み、または未解決として記録します。確認が残っている点を明記します。字幕を利用できない場合は、新たに生成したテキストを使うことが作業上認められるときだけ、別の音声認識による文字起こし処理を選びます。

それぞれの確認は、異なる点を確かめます。形式の確認では、字幕テキストが必要な構造を持つかを確かめます。再生の確認では、選んだキューが動画に合うかを確かめます。言葉の確認では、字幕テキストが用途に適しているかを確かめます。

これらの結果は分けて記録します。「ファイルが開く」は有用な結果ですが、すべての言葉やキューが正しいことの証明にはなりません。短い受け入れ確認の記録があれば、ほかの人も、どの確認を済ませたかを把握できます。

字幕と一緒に元動画の情報を保管する

字幕を引き渡す際には、元動画を識別する情報、字幕言語、字幕テキストまたは保存済みファイル、キューの簡単な確認記録を添えると役立ちます。それらがなければ、次の担当者が、ファイルの出所と確認済みの内容を調べなければなりません。

元動画のURL、指定した形式、返された字幕言語、保存したファイル名、確認状況を、短く記録します。キューの確認についても、簡潔な文を加えます。たとえば、どの開始・終了箇所を聞いたか、変更が必要かどうかを記載します。字幕を編集する場合も、元の出力を参照できるようにしておきます。

キューを1つ確認しただけで、全体の確認が完了したと記載しないでください。実施した確認を記載します。言語の値や元動画の情報が欠けている場合は、確認できるまで不明と記録しておきます。

この記録は、整形済みの出力が自分の要件を満たすかどうかを判断する際にも役立ちます。残る作業が通常の字幕確認であれば、整形済みのSRTまたはVTTテキストは有用な出発点です。引き渡しのたびに同じ編集ルールを適用する必要がある場合は、変換処理を自分で管理できることのほうが重要かもしれません。

出典と参考資料

著者 Chronometrica · 更新日

ページの先頭へ ↑