YouTube Transcripts in n8n: HTTP Request Workflow Guide
How to fetch YouTube transcripts inside an n8n workflow using the HTTP Request node - a downloadable workflow JSON, batch processing multiple videos, handling rate limits, and feeding results into an AI summarizer.
00:09:00 · SEP 13, 2026
簡単な回答
ワークフローをダウンロード
以下をn8nのImport from Fileオプションで直接インポートするか(あるいはImport from URLに貼り付けてください):
ワークフローをダウンロード(.json)APIキーを設定
ダッシュボードからキーを取得し(100無料クレジット、カード登録不要)、お使いのn8nインスタンスで利用できる環境変数として設定してください:
GETYOUTUBETRANSCRIPT_API_KEY=sk_live_...Blog.Posts.n8nYoutubeTranscriptWorkflow.step2.body2
リクエストノードの設定方法
HTTP Requestノードは、動画IDをクエリパラメータとして文字起こしエンドポイントを呼び出します:
GET https://getyoutubetranscript.com/api/v1/transcript?v={{ $json.videoId }}
Authorization: Bearer {{ $env.GETYOUTUBETRANSCRIPT_API_KEY }}動画IDをワークフローの入力(または前のノードの出力)に渡すと、ノードは文字起こし、タイトル、投稿者、サムネイルを$json.data.transcriptにJSONとして返します。
レート制限に引っかからずに複数の動画を処理する
動画IDのリストをそのままHTTP Requestノードに流すと、n8nが可能な限り高速にすべて発火させます - 5本の動画であれば問題ありませんが、無料プランの毎分60リクエストの制限に対して500本では危険です。n8nにはこれをペース調整する組み込みの方法が2つあります:
- HTTP Requestノード → Add Option → Batching。Items per Batch(一度に発火するリクエスト数)とBatch Interval (ms)(バッチ間の遅延)を設定します。無料プランの毎分60リクエストの場合、バッチサイズ5、間隔5,000msに設定すれば十分に余裕を持って予算内に収まります。
- Split In Batches + Waitノード。Split In Batchesノードは動画リストをチャンクに分割し、Waitノードが各チャンクの間で一時停止してからループが次のチャンクへ進みます。これは厳密に逐次的(並列バーストが一切ない)であり、制限に近い場合や、下流でチェーンしているAPI(例: LLM要約ツール)自体にもスループットの上限がある場合には、より安全な選択です。
また、ノードのリトライ設定にあるWait Between Tries (ms)を、1リクエストあたりの予算より高めに設定してください - 毎分60リクエストのプランではおおよそ1秒あたり1リクエストが平均値になるため、1,000ms以上の間隔を空ければ、429で同じ制限に即座に再びぶつかることを避けられます。
バッチ内の失敗を処理する
多数の動画を処理していると、一部は失敗します(非公開動画、字幕なし、一時的な429など)。HTTP RequestノードでContinue On Failを有効にすれば、1件の失敗でワークフロー全体が止まることはありません。その後、下流にIFノードを追加してレスポンスで分岐させ、成功は要約ツールへ、失敗はログまたはリトライキューへ振り分け、1つの不正な動画IDのためにバッチ全体を失わないようにしてください。
要約ツールへ連結する
Blog.Posts.n8nYoutubeTranscriptWorkflow.step6.body
完全なエンドポイントリファレンス、クレジット、レート制限はAPIドキュメントに記載されています。n8nの自動化ではなくAIエージェントを構築していますか?MCPサーバーのセットアップガイドをご覧ください。
n8nワークフローに関するよくある質問
これにはカスタムn8nノードが必要ですか?
いいえ。このAPIは通常のRESTエンドポイントなので、n8nの組み込みHTTP Requestノードで直接扱えます - コミュニティノードのインストールは不要です。
APIキーを安全に渡すにはどうすればよいですか?
n8nの環境変数として設定し(例: GETYOUTUBETRANSCRIPT_API_KEY)、ワークフローのJSONにキーを直接ハードコードするのではなく、HTTP Requestノードのヘッダーフィールドでそれを参照してください。
HTTP RequestノードのBatchingオプションとSplit In Batchesノードの違いは何ですか?
HTTP RequestノードのBatching(Items per Batch + Batch Interval)は、バッチごとに複数のリクエストを間隔を空けて並列送信します - 高速ですが、バッチサイズが大きすぎるとレート制限を超えてバーストするリスクがあります。Split In Batches + Waitノードは1つのバッチを完全に処理してから一時停止し、次のバッチを再開します - 低速ですが厳密に逐次的であるため、タイトな1分あたりの制限に対してはより安全です。
多数の動画を処理する際にレート制限に引っかからないようにするにはどうすればよいですか?
HTTP Requestノードの「Wait Between Tries」リトライオプションを、プランの1リクエストあたりの予算より高めに設定してください - 無料プランの毎分60リクエスト(平均1秒あたり1リクエスト)の場合、リクエストの間隔をおおよそ1,000ms以上空けてください。よりスループットの高い有料プランの場合はそれより短くても構いません。
これをAI要約ステップに連結できますか?
はい - HTTP Requestノードの後にAI/LLMノード(OpenAI、Anthropicなど)を追加し、その入力として{{ $json.data.transcript }}を参照させることで、返された文字起こしを要約したり情報を抽出したりできます。
動画に字幕がない場合やリクエストが失敗した場合はどうなりますか?
複数の動画をバッチ処理する場合、HTTP Requestノードで「Continue On Fail」を有効にすれば、1本の不正な動画のためにワークフロー全体が止まることはありません。その後、下流でレスポンスのステータスによって分岐させて(例: 成功をチェックするIFノード)、ワークフローを停止させないようにしてください。
1回の実行あたりのコストはいくらですか?
成功した文字起こし取得1回につき1クレジットで、REST APIを直接呼び出す場合と同じ課金方式です。ダッシュボードからカード登録不要で100無料クレジットを取得できます。
関連記事
- YouTube API Quota Exceeded: Causes and Fixes
- YouTube Transcript API Rate Limit: What It Is and How to Handle 429s
- YouTube Transcript MCP Server: Setup Guide for Claude and Other AI Tools
- GetYouTubeTranscript vs TranscriptAPI
- GetYouTubeTranscript vs youtubetotranscript.com
- GetYouTubeTranscript vs youtube-transcript.io