n8n YouTube Transkriptionsarbetsflöde: RSS till AI-sammanfattning

Om du vill ha ett n8n YouTube-transkriptionsarbetsflöde som kör sig själv, här är det: fyra noder som bevakar en kanal, drar transkriptionen för varje ny video, sammanfattar den med en LLM, och postar resultatet till Slack. Ingen YouTube Data API-projekt, ingen OAuth-skärm, ingen skrapning.
Tricket som gör detta rent är ett de flesta inte vet: varje YouTube-kanal redan har ett RSS-flöde. n8n har en RSS-utlösare. Resten är ett enda HTTP-anrop.
Arbetsflödet i kort
- RSS Feed Trigger — aktiveras när kanalen publicerar en video
- HTTP Request — hämtar transkriptionen från youtube2text.org
- OpenAI (eller valfri LLM-nod) — förvandlar transkriptionen till en sammanfattning
- Slack (eller Notion, eller e-post) — levererar den
Nod 1: RSS Feed Trigger
Lägg till noden RSS Feed Trigger och ge den denna feed-URL:
https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID
För att hitta en kanals ID, öppna en av dess videor, visa sidkällan, och sök efter channel_id — eller ta den från kanal-URL:en om den är formen /channel/UC.... Feeden returnerar de senaste uppladdningarna; utlösarnoden hanterar avsökning och deduplicering, så varje video kommer genom exakt en gång. Varje objekt inkluderar ett link-fält med den fullständiga video-URL:en, vilket är exakt vad nästa nod behöver.
Nod 2: HTTP Request
Det här är hela integreringen. Lägg till en HTTP Request-nod med:
- Metod: GET
- URL:
https://youtube2text.org/api/transcribe - Frågeparametrar:
url={{ $json.link }},maxChars=20000 - Rubriker:
x-api-key=yt_YOUR_KEY
Ingen nyckel ännu? Hämta den gratis delade — inget konto behövs:
curl -s https://youtube2text.org/api/demo-key
Det returnerar {"success": true, "apiKey": "yt_..."}. Den är begränsad till 5 videor per månad per IP, vilket är bra för att testa arbetsflödet men inte för att följa en aktiv kanal.
API:t accepterar valfri YouTube URL-form (watch?v=, youtu.be, till och med ett enkelt 11-tecken video-id), så RSS-länken fungerar som den är. Jag ställde in maxChars till 20000 här för att transkriptionen är på väg till en LLM nästa och du betalar för dessa tokens; standard och maximum är 150000.
Svaret landar som strukturerad JSON:
{"result": {"videoId": "...", "title": "...", "pubDate": "...",
"content": "transcript text ...", "contentSize": 12345, "truncated": false}}
Nod 3: Sammanfatta med en LLM
Lägg till din LLM-nodval och referera transkriptionen med ett uttryck som {{ $json.result.content }}. En prompt som har fungerat bra för mig:
> Summarize this video transcript in 5 bullet points, then list any tools, links, or numbers mentioned. Title: {{ $json.result.title }}
Behåll titeln i prompten — auto-bildtexter garbuller ibland produktnamn, och titeln ger modellen något att förankra sig på.
Nod 4: Leverera det
Lägg till en Slack-nod som postar till din kanal, med videotiteln, sammanfattningen och den ursprungliga länken. Byt in en Notion-nod om du snarare vill bygga ett sökbart arkiv — jag skrev upp varianten i Notion-guiden.
Felet du faktiskt bör hantera
Inte varje video har bildtexter. Livestreamar precis efter sändning, vissa musikvideor och kanaler som inaktiverar bildtexter returnerar:
{"error": {"code": "TRANSCRIPT_UNAVAILABLE", "message": "...", "status": 404}}
I HTTP Request-noden, aktivera alternativet att fortsätta vid misslyckande (eller fånga det med en felgren) så att en bildtextlös video inte stoppar arbetsflödet. Den andra koden värd en gren är RATE_LIMIT_EXCEEDED (429) — svaret inkluderar retryAfterSeconds, så en Wait-nod plus en omprövningsloop hanterar den om du bearbetar en eftersläpning.
Nycklar och kvoter
För något utöver en testkörning, logga in med Google på youtube2text.org/app/keys och skapa din egen nyckel — inget telefonnummer, inget kort. Den fria nivån täcker 5 videor per månad; betalningsplaner går från $5,99 för 50 videor till $19,99 för unlimited, vilket bekvämt täcker till och med en multikanal-inställning.
Om ditt team bor i Make eller Zapier i stället för n8n, översätts samma arkitektur direkt — se Make-versionen och Zapier-versionen. Men om du väljer färskt: n8ns gratis självsignerad nivå gör det det billigaste sättet att köra denna loop unlimited.