n8n YouTube トランスクリプト ワークフロー: RSS から AI 要約

自分で実行されるn8n YouTubeトランスクリプトワークフローが必要な場合は、ここにあります: チャネルを見て、新しい各ビデオの文字起こしを引き出し、LLMで要約し、結果をSlackに投稿する4つのノード。YouTubeData APIプロジェクトなし、OAuthスクリーンなし、スクレイピングなし。
これをクリーンにするトリックは、ほとんどの人が知らないもの: すべてのYouTubeチャネルには既にRSSフィードがあります。n8nにはRSSトリガーがあります。残りは1つのHTTPコールです。
概要ですばやく
- RSS フィード トリガー ―チャネルがビデオを公開したときに発火
- HTTP リクエスト ―youtube2text.orgからトランスクリプトを取得
- OpenAI(またはLLMノード) ―トランスクリプトを概要に変える
- Slack(またはNotion、またはメール) ―配信
ノード1: RSSフィードトリガー
RSS Feed Triggerノードを追加してこのフィードURLを与えます:
https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID
チャネルのIDを見つけるには、そのビデオのいずれかを開き、ページソースを表示し、channel_idを検索してください―または、チャネルURLから/channel/UC...形式の場合はそれをつかんでください。フィードは最新のアップロードを返します。トリガーノードはポーリングと重複排除を処理するため、各ビデオは正確に1回通ります。各アイテムには、完全なビデオURLを持つlinkフィールドが含まれており、次のノードが必要とするものです。
ノード2: HTTPリクエスト
これが全統合です。HTTP Requestノードを追加:
- Method: GET
- URL:
https://youtube2text.org/api/transcribe - Query parameters:
url={{ $json.link }}、maxChars=20000 - Headers:
x-api-key=yt_YOUR_KEY
まだキーを持っていない? 無料の共有をフェッチ―アカウントは不要:
curl -s https://youtube2text.org/api/demo-key
それは{"success": true, "apiKey": "yt_..."}を返します。月5ビデオあたりIPに制限されます。ワークフローのテストには問題ありませんが、アクティブなチャネルをフォローするのではありません。
APIは任意のYouTube URL形式を受け入れます(watch?v=、youtu.be、裸の11文字ビデオIDさえ)。RSSリンクはそのまま機能します。トランスクリプトがLLMに向かっているので、ここでmaxCharsを20000に設定しました。トークンを支払うため。デフォルトと最大値は150000です。
レスポンスは構造化JSONとして到着します:
{"result": {"videoId": "...", "title": "...", "pubDate": "...",
"content": "transcript text ...", "contentSize": 12345, "truncated": false}}
ノード3: LLMで要約
選択のLLMノードを追加し、{{ $json.result.content }}のようなエクスプレッション付きでトランスクリプトを参照してください。私のために確実に機能したプロンプト:
> Summarize this video transcript in 5 bullet points, then list any tools, links, or numbers mentioned. Title: {{ $json.result.title }}
プロンプトのタイトルを保ちます―自動字幕は時々製品名を歪め、タイトルはモデルがアンカーに何かを与えます。
ノード4: 配信
Slackノードを追加して、ビデオタイトル、概要、元のリンクでチャネルに投稿します。代わりに検索可能なアーカイブを構築したい場合は、Notionノードをスワップイン―Notionガイドでそのバリアントを書きました。
実際に処理すべきエラー
すべてのビデオに字幕があるわけではありません。放送直後のライブストリーム、いくつかの音楽ビデオ、字幕を無効にしたチャネルは返します:
{"error": {"code": "TRANSCRIPT_UNAVAILABLE", "message": "...", "status": 404}}
HTTPリクエストノードでは、失敗時に続行するオプションを有効にします(またはエラーブランチでキャッチ)。字幕がない1つのビデオはワークフローを停止しません。分岐する他のコードはRATE_LIMIT_EXCEEDED(429)―レスポンスにretryAfterSecondsが含まれるため、Waitノードと再試行ループはバックログを処理している場合に処理します。
キーとクォータ
テスト実行を超えて何かのために、youtube2text.org/app/keysでGoogleサインインして、独自のキーを作成してください―電話番号もカードもありません。無料ティアは月5ビデオをカバーし、有料プランは50ビデオの$5.99から無制限の$19.99まで実行し、マルチチャネルセットアップもカバーします。
チームがn8nの代わりにMakeまたはZapierに住んでいる場合、同じアーキテクチャは直接変換されます―MakeバージョンとZapierバージョンを参照してください。しかし、新しく選択している場合: n8nの無料自己ホスト層はこのループを無制限に実行する最も安い方法になります。