解決する課題
プロの字幕翻訳は時間がかかり、分単位で料金が発生するため、多くのクリエイターは1言語でしか公開していません。YouTubeの自動翻訳は品質が安定せず、書き出しも編集もできません。チームには、自分たちで確認してアップロードできる、編集可能なタイミング付き多言語字幕ファイルが必要です。
最初のバージョンに含めるべき機能
- 既存の字幕言語の検出
- 複数の対象言語への一括翻訳
- 元のタイミングを保ったSRT・VTTの書き出し
- 翻訳を確認できる対訳エディタ
- ブランド名や専門用語の用語集
開発手順(ステップごとに解説)
- 01
既存の言語を確認する
/transcripts/{video_id}/languagesを呼び出してすでに存在する字幕トラックを確認し、既にある言語の翻訳に費用をかけないようにします。
- 02
元の文字起こしを取得する
format.timestampを指定して/transcribeを呼び出し、開始・終了時刻付きのセグメントを取得します。
- 03
翻訳する
対象言語ごとに/transcripts/{video_id}/translateを呼び出します。セグメントのタイミングは元の動画と揃ったままです。
- 04
字幕ファイルを書き出す
各セグメントを開始・終了時刻を使って番号付きのSRTブロックまたはVTTキューとして書き出し、ユーザーがダウンロードしたりYouTubeにアップロードしたりできるようにします。
サンプルコード
このアイデアは「レシピ1:動画1本から構造化された出力を作る」パターンをベースにしています。チャンネル、プロンプト、保存先はご自身のものに置き換えてください。
import requests
API = "https://www.youtubetranscript.dev/api/v2"
HEADERS = {"Authorization": "Bearer yt_sk_live_YOUR_KEY"}
res = requests.post(f"{API}/transcribe", headers=HEADERS, json={
"video": "https://www.youtube.com/watch?v=VIDEO_ID",
"format": {"timestamp": True, "paragraphs": True},
}).json()
transcript = res["data"]["transcript"]
print(transcript["text"][:500]) # plain text for your LLM prompt
for seg in transcript["segments"][:3]: # timestamps for deep links
print(seg["start"], seg["text"])作る価値がある理由
動画1分あたり・1言語あたりの料金、または月額サブスクリプションプランで課金します。大量にローカライズするeラーニングプラットフォームや代理店が最良の顧客です。言語が増えるほど価値が高まるからです。
避けるべき失敗
- 文脈なしで1行ずつ翻訳すること:複数の字幕キューにまたがる文が崩れます。
- 読む速さを無視すること:翻訳文は元より長くなる場合があるため、1秒あたりの文字数を確認しましょう。
- 人が作成した字幕がすでにある言語の翻訳に費用をかけること。
このアイデアに関する質問
翻訳したYouTube字幕をSRTでダウンロードできますか?
はい。APIで文字起こしを翻訳し、タイミング付きの各セグメントをSRTまたはVTT形式で書き出してください。
文字起こしの翻訳にはいくらかかりますか?
翻訳は文字起こしテキスト2,500文字あたり約1クレジットです。既存の字幕の取得は動画1本あたり1クレジットです。
吹き替えにも使えますか?
はい。翻訳済みのタイミング付き台本は、多くのAI音声・吹き替えツールが必要とする入力そのものです。