APIドキュメント

YouTubeの文字起こし、検索、メタデータを取得するREST APIです。ダッシュボードからAPIキーを取得してください — 100無料クレジット、カード登録不要。

認証

APIキーはベアラートークンとして、またはx-api-keyヘッダーで渡してください:

Authorization: Bearer sk_live_...
# or
x-api-key: sk_live_...

ベースURL

https://getyoutubetranscript.com/api/v1

クレジットとプラン

プラン価格クレジット/月追加購入価格レート制限
無料$0/月100(一回限り)—60リクエスト/分
月額$5/月1,000$2.50 / 1,000200リクエスト/分
年額$4.50/月(年額$54)1,000$1.50 / 1,000300リクエスト/分
Starter$19/月7,500$1.50 / 1,000300リクエスト/分
Pro$49/月25,000$1.50 / 1,000400リクエスト/分
Scale$99/月60,000$1.50 / 1,000600リクエスト/分

1クレジット = 1回の成功したリクエスト。失敗したリクエストに課金されることはありません。例: 10回の文字起こしリクエストのうち2本の動画に字幕がない場合、消費は8クレジットです。失敗した動画の再試行は、成功するまで課金されません。追加購入したクレジットは、購入から30日後または現在の請求期間終了時のいずれか遅い方で失効し、使用にはアクティブなサブスクリプションが必要です。

エンドポイント

GET/transcript1クレジット

動画のタイトル、チャンネル名、サムネイルなどのメタデータとともに、YouTube動画の文字起こしを取得します。language_code と requested_language、caption_type(manual または auto、不明な場合は null)、cached / fetched_at も返します。

パラメータ必須説明
vはい動画IDまたは完全なYouTube URL
languageいいえ言語コード(デフォルト: en)
timestampsいいえtrue にすると行ごとのタイムスタンプ(segments: start、duration、text、秒単位)が追加されます。デフォルトはオフです。

リクエスト

curl "https://getyoutubetranscript.com/api/v1/transcript?v=jNQXAC9IVRw" \
  -H "Authorization: Bearer sk_live_..."

レスポンス

{
  "success": true,
  "data": {
    "video_id": "jNQXAC9IVRw",
    "language_code": "en",
    "requested_language": "en",
    "caption_type": "manual",
    "title": "Me at the zoo",
    "author_name": "jawed",
    "author_url": "https://www.youtube.com/channel/UC4Qob...",
    "thumbnail_url": "https://...",
    "transcript": "All right, so here we are...",
    "word_count": 39,
    "cached": true,
    "fetched_at": "2026-09-20T03:10:58.938Z"
  }
}
GET/transcript/languages無料

文字起こしを取得する前に、動画で利用できる字幕言語(手動と自動生成)を一覧表示します。default_language_code は言語を指定しない /transcript が返す言語です。字幕のない動画では空のリストを返します。

パラメータ必須説明
vはい動画IDまたは完全なYouTube URL

リクエスト

curl "https://getyoutubetranscript.com/api/v1/transcript/languages?v=kJQP7kiw5Fk" \
  -H "Authorization: Bearer sk_live_..."

レスポンス

{
  "success": true,
  "data": {
    "video_id": "kJQP7kiw5Fk",
    "default_language_code": "en",
    "languages": [
      { "language_code": "en", "name": "English - en", "caption_type": "manual" },
      { "language_code": "es", "name": "Spanish", "caption_type": "manual" }
    ]
  }
}
POST/batch成功した動画ごとに1クレジット

1回の呼び出しで最大100本の動画をキューに追加します。すぐに batch_id を返し、文字起こしはバックグラウンドで取得します。GET /batch で状況を確認するか、webhook_url を指定すると完了時に署名付き POST(X-GYT-Signature ヘッダー)を受け取れます。失敗した動画に課金されることはありません。

パラメータ必須説明
videosはい動画IDまたはURLの配列(1〜100)。重複は1回だけ取得します。
languageいいえすべての動画に使う言語コード(デフォルト: en)
timestampsいいえtrue で結果に行ごとの segments を含めます
webhook_urlいいえバッチ完了時に通知される公開 https URL
Idempotency-Keyいいえヘッダー。リクエストを安全に再試行できます。同じキーなら元のバッチを返します。

リクエスト

curl -X POST "https://getyoutubetranscript.com/api/v1/batch" \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
        "videos": ["jNQXAC9IVRw", "https://youtu.be/dQw4w9WgXcQ"],
        "webhook_url": "https://example.com/hooks/transcripts"
      }'

レスポンス

{
  "success": true,
  "data": {
    "batch_id": "324eb615-e4d5-4b3c-b8e7-04235671066b",
    "status": "queued",
    "total": 2,
    "succeeded": 0,
    "failed": 0,
    "pending": 2,
    "results_url": "https://getyoutubetranscript.com/api/v1/batch?id=324eb615-...",
    "webhook_secret": "whsec_..."
  }
}
GET/batch無料

バッチの状況、件数、送信順の結果1ページ分を返します。成功した項目は /transcript と同じフィールドを持ち、失敗した項目には error_code が付きます。

パラメータ必須説明
idはいPOST /batch で返された batch_id
offsetいいえスキップする件数(デフォルト: 0)
limitいいえ1ページの件数、1〜50(デフォルト: 20)

リクエスト

curl "https://getyoutubetranscript.com/api/v1/batch?id=324eb615-e4d5-4b3c-b8e7-04235671066b" \
  -H "Authorization: Bearer sk_live_..."

レスポンス

{
  "success": true,
  "data": {
    "batch_id": "324eb615-...",
    "status": "completed",
    "total": 2,
    "succeeded": 1,
    "failed": 1,
    "credits_charged": 1,
    "items": [
      { "position": 0, "status": "succeeded", "charged": true, "video_id": "jNQXAC9IVRw", "caption_type": "manual", "transcript": "All right, so here we are...", ... },
      { "position": 1, "status": "failed", "charged": false, "video_id": "dQw4w9WgXcQ", "error_code": "TRANSCRIPT_DISABLED" }
    ],
    "next_offset": null
  }
}
GET/search1クレジット / ページ

フィルターとページネーションを使ってYouTube動画を検索します。

パラメータ必須説明
qはい検索クエリ(2文字以上)
countryいいえ2文字の国コード(デフォルト: us)
languageいいえ言語コード(デフォルト: en)
page_tokenいいえ次のページを取得するための、前回レスポンスのcontinuation_token
limitいいえ最大結果数(デフォルト20、最大50)

リクエスト

curl "https://getyoutubetranscript.com/api/v1/search?q=lofi+beats" \
  -H "Authorization: Bearer sk_live_..."

レスポンス

{
  "success": true,
  "data": {
    "query": "lofi beats",
    "video_results": [ { "title": "...", "videoId": "...", "channel": { "name": "..." } } ],
    "continuation_token": "c_bKt9xQ2mVf7LpR0aZ3sWyA"
  }
}
GET/resolve無料

チャンネルのハンドル、URL、またはユーザー名を実際のチャンネルIDに解決します。構文的な入力(すでにチャンネルIDまたはIDを含むURL)は通信なしで即座に解決されますが、単なるハンドルの場合は1回の実際のルックアップが発生します。

パラメータ必須説明
handleはいチャンネルID、URL、または@ハンドル

リクエスト

curl "https://getyoutubetranscript.com/api/v1/resolve?handle=@mkbhd" \
  -H "Authorization: Bearer sk_live_..."

レスポンス

{
  "success": true,
  "data": {
    "channel_id": "UCBJycsmduvYEL83R_U4JriQ",
    "title": "Marques Brownlee",
    "handle": "http://www.youtube.com/@mkbhd",
    "resolved_via": "scrape"
  }
}
GET/channel/latest無料

チャンネル情報(タイトル、登録者数、説明、アイコン)と、チャンネルのホームタブに表示される最新動画を返します。すべてのアップロード履歴には /channel/videos を使用してください。

パラメータ必須説明
channelはいチャンネルの@handle、URL、またはチャンネルID

リクエスト

curl "https://getyoutubetranscript.com/api/v1/channel/latest?channel=@mkbhd" \
  -H "Authorization: Bearer sk_live_..."

レスポンス

{
  "success": true,
  "data": {
    "channel": { "id": "UCBJycsmduvYEL83R_U4JriQ", "title": "Marques Brownlee", "subscribers": 1160000, "avatar": "https://..." },
    "about": { "description": "...", "links": [] },
    "videos_sections": [ ... ]
  }
}
GET/channel/videos1クレジット / ページ

チャンネルがアップロードしたすべての動画を新しい順にページ単位で返します。

パラメータ必須説明
channelはいチャンネルの@handle、URL、またはチャンネルID
continuationいいえ次のページを取得するための、前回のレスポンスのcontinuation_token(他のパラメータの代わりに指定)。24時間で失効します。

リクエスト

curl "https://getyoutubetranscript.com/api/v1/channel/videos?channel=@mkbhd" \
  -H "Authorization: Bearer sk_live_..."

レスポンス

{
  "success": true,
  "data": {
    "videos": [ { "position": 1, "id": "...", "title": "...", "views": "6.2M", "published_time": "1d ago", "length": "10:47" } ],
    "has_more": true,
    "continuation_token": "c_pqHR9v13sqaqxlcKhA4MnA"
  }
}
GET/channel/search1クレジット / ページ

1つのチャンネルの動画内を検索します(ページ単位)。

パラメータ必須説明
channelはいチャンネルの@handle、URL、またはチャンネルID
qはい検索クエリ(2文字以上)
continuationいいえ次のページを取得するための、前回のレスポンスのcontinuation_token(他のパラメータの代わりに指定)。24時間で失効します。

リクエスト

curl "https://getyoutubetranscript.com/api/v1/channel/search?channel=@mkbhd&q=iphone" \
  -H "Authorization: Bearer sk_live_..."

レスポンス

{
  "success": true,
  "data": {
    "videos": [ { "position": 1, "id": "...", "title": "...", "published_time": "3w ago", "length": "17:14", "channel": { "name": "Marques Brownlee" } } ],
    "has_more": true,
    "continuation_token": "c_pnm10M6orzLgOTVWJk2oww"
  }
}
GET/playlist1クレジット / ページ

プレイリスト内のすべての動画をページ単位で返します。最後のページでは continuation_token が null になります。

パラメータ必須説明
listはいプレイリストIDまたはURL
continuationいいえ次のページを取得するための、前回のレスポンスのcontinuation_token(他のパラメータの代わりに指定)。24時間で失効します。

リクエスト

curl "https://getyoutubetranscript.com/api/v1/playlist?list=PLxxx" \
  -H "Authorization: Bearer sk_live_..."

レスポンス

{
  "success": true,
  "data": {
    "playlist_id": "PLxxx",
    "title": "...",
    "videos": [ { "position": 1, "id": "...", "title": "...", "channel": { "name": "..." } } ],
    "has_more": true,
    "continuation_token": "c_DfE9mQx2Ln8TbW4kJ1pZsA"
  }
}
GET/credits無料

使う前にこのキーの残りクレジット残高を確認できます - MCPのget_creditsツールと同じデータです。

パラメータ必須説明

リクエスト

curl "https://getyoutubetranscript.com/api/v1/credits" \
  -H "Authorization: Bearer sk_live_..."

レスポンス

{
  "success": true,
  "data": {
    "plan_credits_left": 87,
    "topup_credits_left": 0,
    "plan": "monthly",
    "rate_limit_per_minute": 200
  }
}

エラー

エラーはHTTPステータスに加え、条件分岐に使える安定したcodeフィールドを含むJSONボディを返します:

ステータスコード意味
400BAD_REQUESTパラメータが不足しているか無効です
400CURSOR_EXPIREDページカーソルの有効期限切れ(24時間後)- 最初のページからやり直してください
401MISSING_API_KEY / INVALID_API_KEYキーが指定されていないか、無効/失効しています
402PAYMENT_REQUIREDクレジット不足 - 追加購入するかアップグレードしてください
404VIDEO_UNAVAILABLE / TRANSCRIPT_NOT_FOUND動画またはリソースが見つかりません
429RATE_LIMITEDプランのレート制限を超えるリクエストです
503UPSTREAM_UNAVAILABLE一時的な上流の問題です - 再試行しても問題ありません
504UPSTREAM_TIMEOUT上流の応答が25秒を超えました - 課金されず、再試行しても問題ありません

このAPIをAIツールと組み合わせて使う

リクエストを自分で書く代わりに、Claude(または他のAIコーディングツール)にこのAPIを呼び出させたいですか?YouTube Transcriptスキルをダウンロードしてください - 文字起こしの取得、検索などの方法をAIに教える、すぐに使えるClaude Skillです。

Zapierで使う

コード不要:Zapierアプリを使えば、どのZapでも文字起こしの取得、YouTube検索、チャンネル動画の一覧取得ができます。同じAPIキーで接続でき、各アクションのクレジットはAPI呼び出しと同じです。