SRT ファイル 作成から、タイムスタンプ付きのWebVTTまで

SRT ファイル 作成には、対応する動画のリンクか手元の録音を使えます。YouTube、X、TikTok、Instagram、Facebook、Blueskyのほか、Twitchのクリップと配信終了後のVOD、Dailymotion、Pinterestの動画ピン、LinkedInの動画投稿、Snapchat Spotlightに対応します。各セグメントに開始・終了位置が付き、同じ文字起こしをWebVTT、JSON、タイムスタンプ付きテキストでも取得できます。

  • 同じ文字起こしをJSON・テキスト・SRT・VTTで取得
  • 各セグメントに開始・終了位置
  • include=wordsで単語ごとのタイムスタンプを取得

読み返すならテキスト、字幕に使うならSRT・VTT

IDを指定し、必要な形式で読み出せます
GET /v1/transcriptions/:idにformat=json、text、srt、vttを指定します。省略するとJSONを返します。
テキストの各行にも時刻を付けられます
format=textにtimestamps=trueを加えると、各行の先頭に[hh:mm:ss]が付きます。引用した箇所を録音で探すときに使えます。
SRTとWebVTTを作成できます
SRTはapplication/x-subrip、VTTはtext/vttで返します。VTTにはWEBVTTヘッダーが付き、どちらもセグメントごとに字幕が区切られます。
単語の時刻は取得元によって異なります
include=wordsで、利用できる単語の開始・終了位置、テキスト、信頼度、話者を取得できます。投稿者がアップロードした字幕など、単語の時刻がない場合はwordsがnullになります。
別の形式でも、もう1度文字起こしする必要はありません
どの形式も、同じ文字起こしの表示方法です。完了済みの文字起こしを別形式で読み出しても、追加の分数は使いません。

タイムスタンプを残せば、引用元に戻れます

format=textとtimestamps=trueを指定すると、各行に時刻が付きます。話者分離を指定した文字起こしには話者ラベルも付きます。引数は取得APIで確認できます。

字幕の書式は不要でも、発言の位置は残したいときに使えます。時刻と一緒に動画URLやファイル名も保存してください。00:12:40という時刻だけでは、どの録音の発言か分からなくなります。以下のテキストは形式を示すサンプルです。

JSONのstartとendは、録音の先頭からの秒数です。実際の時刻や日付ではありません。その値をプレーヤーの再生位置やメモの参照先として保存すると、同じ箇所を聞き直せます。

format=text&timestamps=true
curl "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD?format=text&timestamps=true" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY"

[00:00:00] Place the microphone near the speaker.
[00:00:04] Record a short test before the interview.

編集ソフトにはSRT、HTMLの動画にはWebVTT

SRTには字幕番号と開始・終了時刻、WebVTTにはWEBVTTヘッダーが付きます。文字起こしの完了後にformat=srtかformat=vttで取得し、レスポンスを保存します。WebVTTはHTMLのtrack要素で使えます。

字幕の読み込み先が受け付ける形式を選びます。編集ソフトや字幕のアップロードにはSRT、HTMLの動画にはWebVTTが使われます。どちらも字幕を映像に焼き付ける機能ではありません。文字の見た目や位置は、読み込み先のソフトやプレーヤーで設定します。

ミリ秒の区切りはSRTがカンマ、WebVTTがピリオドです。拡張子の変更だけでは変換できません。別の形式が必要なら、完了済みの同じ文字起こしから取得します。再度の文字起こし料金はかかりません。

format=srt
1
00:00:00,000 --> 00:00:04,200
Place the microphone near the speaker.

2
00:00:04,200 --> 00:00:09,800
Record a short test before the interview.

単語のハイライトにはinclude=wordsを使います

JSONの取得時にinclude=wordsを付けると、利用できる単語ごとのタイムスタンプを返します。単語のハイライトや切り出す箇所の確認に使えます。データがなければwords: nullです。フィールドの仕様も確認してください。

AI文字起こしには単語の開始・終了位置と信頼度があります。YouTubeの自動生成字幕には開始位置があり、終了位置は次の単語の開始から求めます。投稿者がアップロードしたYouTube字幕と、YouTube以外の字幕には単語の時刻がありません。X、TikTok、Blueskyの自動生成字幕も同様です。Xの字幕はtranscript_source: x_captionsで判別できます。

単語のデータがない場合も、セグメントの時刻で表示できるようにします。動画を切り出す前には境界の前後を聞き、発声の始まりや息継ぎが切れていないか確認してください。字幕として見せる場合は、単語を読みやすい長さにまとめ、実際の画面サイズで確かめます。

include=words
curl "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD?include=words" \
  -H "Authorization: Bearer $TRANSCRIPT1_API_KEY"

取り込めないときは、まず保存した中身を確認します

SRT・VTT・テキストを取得できるのはstatus=completedになってからです。処理中は状態を示すJSONを返します。プレーヤーが字幕を読み込めない場合は、そのJSONを字幕ファイルとして保存していないか確認してください。

字幕の時刻は、送信した録音の先頭を基準にしています。途中から切り出した動画や長さを変えた動画に使う場合は、時刻の調整が必要です。コンテンツの再利用では切り出す範囲を残し、編集が終わってから字幕を合わせます。

公開前に、使うプレーヤーで通常速度で再生します。行の長さ、読む時間、話者の表示を確認してください。アクセシビリティ向け字幕では、発話以外の重要な音や映像の文脈も補います。

保存したファイルには文字起こしIDもひも付けます。後でSRTからWebVTTに変える場合や、単語データ付きのJSONが必要になった場合も、同じIDから取得できます。新しいメディアの処理は不要です。

初回60分は無料です

メールアドレスの認証後、初回のみ60分を無料で使えます。クレジットカードは必要ありません。

APIキーを取得

よくある質問

ほかにご質問はありますか?サポートに問い合わせる

YouTubeやMP4からSRTを作れますか?

はい。動画を文字起こしし、完了後にformat=srtで取得します。同じ文字起こしをWebVTT、テキスト、JSONでも読み出せます。

startとendの単位は何ですか?

JSONでは録音の先頭からの秒数です。SRTとVTTは、それぞれの形式に沿ったhh:mm:ssの時刻表記を使います。

YouTubeの字幕にも単語の時刻はありますか?

自動生成字幕には単語の開始位置があります。投稿者がアップロードした字幕にはなく、wordsはnullです。AI文字起こしには単語の開始・終了位置と信頼度があります。

文字起こしの途中でも字幕を取得できますか?

いいえ。SRT・VTT・テキストを取得できるのは完了後です。それまではステータスを確認するためのJSONを返します。