mcpField
Y
youtube-transcript-api

youtube-transcript-api

github.com/youtube-transcript-devクリエイティブ・メディア1145 回インストール3 週間前に更新
リポジトリ

youtube-transcript-api について

youtube-transcript-apiは、YouTube動画の文字起こしを取得・処理するAPIスキルです。動画コンテンツを扱う制作者やLLMパイプラインを構築する開発者向けで、字幕取得、字幕がない動画の非同期音声認識、翻訳、バッチ処理に対応します。

主な機能

  1. 01単一動画の文字起こし取得
  2. 02最大100本の動画を一括処理
  3. 03字幕がない動画の非同期音声認識
  4. 04指定言語への文字起こし翻訳
  5. 05タイムスタンプ・段落・単語形式に対応

活用シーン

  1. 01動画コンテンツの文字起こし作成
  2. 02字幕のないYouTube動画の文字起こし
  3. 03動画の文字起こしを別の言語へ翻訳
  4. 04動画コンテンツの一括処理パイプライン構築

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/youtube-transcript-dev/youtube-transcript-api --skill youtube-transcript-api

インストール後、Claude Code で/youtube-transcript-apiを入力して読み込まれたか確認します。

詳細

YouTube Transcript API スキル

YouTube 動画の文字起こしを取得する、字幕のない動画を文字起こしする、動画の内容を翻訳する、または複数の動画を一括処理する場合にこのスキルを使用します。

使用する場面

  • YouTube 動画の文字起こし/字幕を取得したい
  • 字幕のない YouTube 動画を文字起こししたい(ASR)
  • YouTube 動画の文字起こしを別の言語に翻訳したい
  • 複数の YouTube 動画を一度に処理したい
  • YouTube 動画のコンテンツを使う AI/LLM パイプラインを構築したい
  • 動画のコンテンツをテキスト(ブログ記事、要約など)に再利用したい

API の概要

ベース URL: https://youtubetranscript.dev/api/v2

認証: Authorization: Bearer YOUR_API_KEY による Bearer トークン

ユーザーは youtubetranscript.dev で無料の API キーを取得できます。

エンドポイント
メソッドエンドポイント説明
POST/api/v2/transcribe単一の動画から文字起こしを取得
POST/api/v2/batch最大 100 本の動画から文字起こしを取得
GET/api/v2/jobs/{job_id}ASR ジョブのステータスを確認
GET/api/v2/batch/{batch_id}一括リクエストのステータスを確認
リクエストフィールド
フィールド必須説明
videoはい(単一)YouTube URL または 11 文字の動画 ID
video_idsはい(一括)ID または URL の配列(最大 100 件)
languageいいえISO 639-1 コード(例:"es"、"fr")。省略すると、利用可能な最適な言語が選択されます
sourceいいえauto(デフォルト)、manual、または asr
formatいいえtimestamp、paragraphs、または words
webhook_urlいいえ非同期配信用 URL(source="asr" の場合は必須)
クレジット費用
方法費用速度
ネイティブ字幕1 クレジット5~10 秒
翻訳2,500 文字あたり 1 クレジット5~10 秒
ASR(音声)90 秒あたり 1 クレジット2~20 分(非同期)

例

基本的な文字起こしの取得(Python)
import requests

API_KEY = "your_api_key"

response = requests.post(
    "https://youtubetranscript.dev/api/v2/transcribe",
    headers={
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json",
    },
    json={"video": "dQw4w9WgXcQ"}
)

data = response.json()
for segment in data["data"]["transcript"]:
    print(f"[{segment['start']:.1f}s] {segment['text']}")
基本的な文字起こしの取得(JavaScript/Node.js)
const response = await fetch("https://youtubetranscript.dev/api/v2/transcribe", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ video: "dQw4w9WgXcQ" }),
});

const { data } = await response.json();
console.log(data.transcript);
Node.js SDK の使用
npm install youtube-audio-transcript-api
import { YouTubeTranscript } from "youtube-audio-transcript-api";

const yt = new YouTubeTranscript({ apiKey: "your_api_key" });

// Simple extraction
const result = await yt.getTranscript("dQw4w9WgXcQ");

// With translation
const translated = await yt.transcribe({
  video: "dQw4w9WgXcQ",
  language: "es",
});

// Batch (up to 100 videos)
const batch = await yt.batch({
  video_ids: ["dQw4w9WgXcQ", "jNQXAC9IVRw", "9bZkp7q19f0"],
});
基本的な文字起こしの取得(cURL)
curl -X POST https://youtubetranscript.dev/api/v2/transcribe \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"video": "dQw4w9WgXcQ"}'
一括処理(最大 100 本の動画)
curl -X POST https://youtubetranscript.dev/api/v2/batch \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"video_ids": ["dQw4w9WgXcQ", "jNQXAC9IVRw", "9bZkp7q19f0"]}'
翻訳

"language": "es"(または任意の ISO 639-1 コード)を追加すると、文字起こしを翻訳できます。

curl -X POST https://youtubetranscript.dev/api/v2/transcribe \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"video": "dQw4w9WgXcQ", "language": "es"}'
ASR による文字起こし(字幕のない動画)

字幕のない動画では、Webhook を使って ASR を実行します。

curl -X POST https://youtubetranscript.dev/api/v2/transcribe \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"video": "VIDEO_ID", "source": "asr", "webhook_url": "https://yoursite.com/webhook"}'

このリクエストは status: "processing" を返してすぐに終了します。処理が完了すると、結果が Webhook URL に送信されます。Webhook を使用しない場合は、GET /api/v2/jobs/{job_id} でポーリングしてください。

エラー処理

HTTP ステータスエラーコード説明
400invalid_requestJSON が無効、または必須フィールドが不足しています
401invalid_api_keyAPI キーがないか、無効です
402payment_requiredクレジットが不足しています
404no_captions字幕がなく、ASR も使用されていません
429rate_limit_exceededリクエストが多すぎます。Retry-After ヘッダーを確認してください

重要な注意事項

  • API キーが提示されていない場合は、必ずユーザーに API キーを尋ねてください。無料のキーは youtubetranscript.dev で取得できます。
  • language パラメーターを省略すると、翻訳せずに利用可能な最適な文字起こしが返されます(クレジットを節約できます)。
  • ASR は非同期です。必ず Webhook URL を使用するか、ジョブのエンドポイントをポーリングしてください。
  • 一括処理エンドポイントでは、YouTube URL と 11 文字の動画 ID の両方を受け付けます。
  • すでに所有している文字起こしを再取得する場合、クレジットはかかりません。

リソース

コメント