Du hämtar en YouTube-transkription, klistrar in den i ett dokument och det ser bra ut … tills du upptäcker saknade rader, slumpmässiga tidsstämplar, trasig radbrytning eller dubblerad text. Sedan bränner du ytterligare 20 minuter på att fixa den. Igen.
Den här automatiseringen för YouTube-transkriptioner i Sheets drabbar content marketers hårdast, men SEO-ansvariga och byråteam som gör research känner av det också. Resultatet är enkelt: felfri transkriptionstext plus ord- och teckenräkning, redo att loggas i Google Sheets utan den vanliga formateringsröran.
Nedan ser du hur arbetsflödet körs, vad det åtgärdar och vad du behöver för att koppla in det i din egen content pipeline.
Så här fungerar automatiseringen
Se hur den här löser problemet:
n8n Workflow Template: YouTube till Google Sheets: rensade transkript
flowchart LR
subgraph sg0["When Executed by Another Workflow Flow"]
direction LR
n0@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Variables", pos: "b", h: 48 }
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Get Transcript (YouTube Tran.."]
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Parse API Response"]
n3@{ icon: "mdi:swap-horizontal", form: "rounded", label: "IF Has Transcript?", pos: "b", h: 48 }
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Clean Transcript"]
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>No Transcript Fallback"]
n6@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Switch", pos: "b", h: 48 }
n7@{ icon: "mdi:play-circle", form: "rounded", label: "When Executed by Another Wor..", pos: "b", h: 48 }
n8@{ icon: "mdi:location-exit", form: "rounded", label: "No Transcript", pos: "b", h: 48 }
n9@{ icon: "mdi:location-exit", form: "rounded", label: "Not Enough Credits", pos: "b", h: 48 }
n10@{ icon: "mdi:location-exit", form: "rounded", label: "Generic Error", pos: "b", h: 48 }
n6 --> n2
n6 --> n9
n6 --> n10
n0 --> n1
n3 --> n4
n3 --> n5
n2 --> n3
n5 --> n8
n7 --> n0
n1 --> n6
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n7 trigger
class n3,n6 decision
class n1 api
class n2,n4,n5 code
classDef customIcon fill:none,stroke:none
class n1,n2,n4,n5 customIcon
Utmaningen: felfria transkriptioner är aldrig ”felfria”
Transkriptarbete är lurigt. Första hämtningen känns snabb, sedan kommer verkligheten: transkriptionen är segmenterad på ett konstigt sätt, blanksteg och radbrytningar är kaotiska och ibland returnerar API:et en struktur du inte förväntade dig. Du slutar med att manuellt leta efter saknade delar, formatera om till läsbara stycken och räkna ord med ett andra verktyg eftersom du behöver ett sätt att uppskatta omfång för sammanfattningar, briefar eller SEO. Och om du gör det här mer än en gång i veckan blir det en återkommande skatt på din koncentration.
Här är var det brister i vardagen.
- Du kopierar och klistrar in transkriptioner i Sheets och lägger sedan massor av tid på att ta bort extra radbrytningar och märklig spacing.
- Transkriptkällan ändrar sitt svarsformat, så det som funkade förra veckan ger plötsligt tom text.
- Du upptäcker inte saknade avsnitt förrän du redan har skrivit sammanfattningar eller briefar utifrån ofullständig text.
- Utan wordCount och charCount blir det gissningar att uppskatta omfattning för AI-sammanfattningar och SEO-arbete.
Lösningen: en felfri transkription + mätvärden, skickas direkt till Sheets
Det här arbetsflödet tar ett YouTube-video-ID och en API-token, anropar ett transkript-endpoint (youtube-transcript.io) och gör den del som vanligtvis slösar din tid: det tolkar API-svaret, kontrollerar att en användbar transkription faktiskt finns och normaliserar texten till något du kan jobba med. Om transkriptionen finns rensar den blanksteg och formatering så att slutresultatet blir ett konsekvent textblock. Den returnerar också grundläggande mätvärden (ord- och teckenräkning), vilket är oväntat nyttigt när du ska köra sammanfattningar, nyckelordsutvinning eller researchanteckningar. Om transkriptionen saknas eller API:et returnerar fel eller kreditproblem stoppar den med ett tydligt felmeddelande i stället för att tyst skicka skräp vidare i kedjan.
Arbetsflödet startar när en annan automatisering anropar det (det är byggt som ett sub-workflow). Det skickar ditt video-ID till transkript-API:et, tolkar och rensar sedan det som kommer tillbaka. Till sist levererar det transkriptionstext plus wordCount och charCount, redo att läggas in i Google Sheets från ditt överordnade arbetsflöde.
Vad som förändras: före vs. efter
| Det här tar bort | Effekten du märker |
|---|---|
|
|
Effekt i praktiken
Säg att du hanterar 10 konkurrentvideor i veckan för research. Manuellt tar det oftast ungefär 20 minuter per video att hämta en transkription, rensa den och klistra in i Google Sheets, så du tappar cirka 3 timmar i veckan. Med det här arbetsflödet lägger du in video-ID:t i ditt överordnade arbetsflöde, väntar en minut på API-anropet och rensningen, och transkriptionen landar redo att loggas med ord- och teckenräkning. Du granskar den fortfarande, men grovjobbet är borta.
Krav
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger funkar bra)
- YouTube för att tillhandahålla ett publikt video-ID
- Google Sheets för att lagra transkriptioner och mätvärden
- API-token för youtube-transcript.io (hämta den i din youtube-transcript.io-dashboard)
Kunskapsnivå: Nybörjare. Du kommer främst att klistra in inloggningsuppgifter och mappa några fält i ditt överordnade arbetsflöde.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Flödet i arbetsflödet
Ett överordnat arbetsflöde triggar det. Den här automatiseringen är designad som ett sub-workflow, så den startar när ett annat n8n-arbetsflöde anropar den och skickar två indata: ditt YouTube-video-ID och din API-token.
Transkript-API:et anropas. n8n skickar en POST-request till youtube-transcript.io och routar sedan resultatet baserat på statuskod så att fel inte behandlas som ”lyckat”.
Svaret tolkas och valideras. Arbetsflödet normaliserar olika svarsformat till en förväntad struktur och kontrollerar sedan att transkriptinnehåll faktiskt finns. Om det inte gör det avslutar den med ett tydligt fel om ”saknad transkription”.
Texten rensas och mätvärden läggs till. Den normaliserar blanksteg och skapar felfri transkriptionstext, plus wordCount och charCount för enkel loggning i Google Sheets (eller för nedströms AI-steg).
Du kan enkelt modifiera utdatafälten så att de matchar dina kolumner i Sheets, eller bygga ut det för att köra sammanfattningar direkt efter rensningen. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera triggern för underflödet
Det här arbetsflödet är utformat för att anropas från ett annat arbetsflöde, så triggern måste ta emot de obligatoriska indata som krävs.
- Lägg till noden Sub-Workflow Trigger som startpunkt.
- I Workflow Inputs lägger ni till två värden med namnen
youtubeVideoIdochapiToken. - Säkerställ att triggern är kopplad till Assign Input Fields.
Steg 2: anslut anropet till transcript-API:et
Det här steget förbereder indata och anropar YouTubes transcript-endpoint.
- I Assign Input Fields lägger ni till två tilldelningar: sätt youtubeVideoId till
{{ $json.youtubeVideoId }}och apiToken till{{ $json.apiToken }}. - I Request Transcript API sätter ni URL till
https://www.youtube-transcript.io/api/transcriptsoch Method tillPOST. - Sätt Specify Body till
jsonoch JSON Body till{ "ids": [ "{{ $('Assign Input Fields').item.json.youtubeVideoId }}" ] }. - Lägg till headers i Header Parameters: Content-Type =
application/jsonoch Authorization =Basic {{ $json.apiToken }}. - Aktivera Full Response och sätt Response Format till
texti nodens svarsalternativ.
Steg 3: routa svar och tolka resultat
Routa baserat på statuskoder och parsa samt normalisera sedan API-svaret.
- I Route Status Code sätter ni den första regeln till att matcha
{{ $json.statusCode }}lika med200och namnger utgångenOK. - Lägg till en andra regel för kreditfel: matcha
{{ $json.statusCode }}lika med402och byt namn på utgången tillNot enough credits. - Lägg till en tredje regel för en icke-tom status: matcha
{{ $json.statusCode }}är inte tom och byt namn tillGeneric Error. - Koppla utgången OK till Interpret API Result.
- Behåll standardkoden i Interpret API Result för att parsa
$json.bodyoch skapatext,languageochstatus.
Steg 4: validera och normalisera transcript-innehåll
Det här steget verifierar att transcript finns och standardiserar textutmatningen.
- I Transcript Present Check sätter ni villkoret till
{{ $json.text !== null && $json.text !== undefined && $json.text !== '' }}. - Koppla grenen true till Normalize Transcript Text.
- Lämna rensningslogiken i Normalize Transcript Text som den är för att ta bort radbrytningar och extra mellanslag samt för att beräkna
wordCountochcharCount. - Koppla grenen false till Fallback No Transcript för ett strukturerat felsvar.
preferredLanguage uppströms så att Fallback No Transcript kan använda det som standard.Steg 5: lägg till felhanteringsvägar
Arbetsflödet innehåller explicita stopnoder för saknade transcripts, otillräckliga krediter och generella fel.
- Från Route Status Code kopplar ni utgången
Not enough creditstill Stop: Credit Shortage. - Från Route Status Code kopplar ni utgången
Generic Errortill Stop: General Failure. - Koppla Fallback No Transcript till Stop: Missing Transcript för att ge ett tydligt fel vid tomma resultat.
- Verifiera att varje stopnod har korrekt Error Message (t.ex.
Not enough credits to fetch these transcripts).
statusCode och kommer att routa fel på fel sätt.Steg 6: testa och aktivera ert arbetsflöde
Kör en manuell exekvering för att bekräfta att transcript-tolkning och felroutning fungerar som förväntat.
- Kör arbetsflödet manuellt från Sub-Workflow Trigger med ett exempel på
youtubeVideoIdoch en giltigapiToken. - Verifiera att Normalize Transcript Text ger
status=success, samttext,wordCountochcharCount. - Testa en video utan transcripts för att bekräfta att Fallback No Transcript leder till Stop: Missing Transcript.
- När resultaten är korrekta, slå om arbetsflödet till Active för produktionsanvändning.
Se upp för
- youtube-transcript.io-inloggningar kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först din tokenstatus i youtube-transcript.io-dashboarden.
- Om du använder Wait-noder eller extern rendering i ditt överordnade arbetsflöde varierar processtiderna. Öka väntetiden om nedströms noder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du redigera utdata i all evighet.
Vanliga frågor
Oftast cirka 30 minuter om din API-token är klar.
Ja. Du kopplar konton, klistrar in API-token och mappar transkriptfälten till Google Sheets.
Ja. n8n har ett gratis alternativ för self-hosting och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in youtube-transcript.io-API-kostnader baserat på din användning.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och klarar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serveradministration.
Du kan anpassa fälten direkt efter ”Assign Input Fields” för att acceptera en full YouTube-URL, metadata från en spellista eller ett kund-/projekt-ID. Om du vill ha andra rensningsregler justerar du kodsteget ”Normalize Transcript Text” för att behålla talarbyten, ta bort utfyllnadsord eller behålla tidsstämplar. Många team bygger också ut det överordnade arbetsflödet för att trycka den rensade transkriptionen till Google Drive och sedan skicka en Slack-notis när raden skapas i Sheets.
Oftast beror det på en ogiltig eller utgången API-token, så skapa en ny och uppdatera autentiseringsuppgiften i n8n. Det kan också vara att du har slut på krediter på ditt youtube-transcript.io-konto, vilket det här arbetsflödet stoppar och flaggar tydligt. Om du skickar ett felaktigt video-ID (extra parametrar, förkortade länkar eller ett spelliste-ID) kan API:et returnera ett ”success”-svar utan transkriptinnehåll, och arbetsflödet stoppar vid kontrollen av att transkript finns.
Om du self-hostar n8n finns ingen körningsgräns (det beror främst på din server och transkript-API:ets begränsningar). På n8n Cloud beror den månatliga körningsgränsen på din plan, och det här arbetsflödet använder en körning per bearbetat video-ID.
Ofta ja, eftersom det här arbetsflödet behöver riktig förgrening och felhantering, inte bara ”försök och hoppas”. n8n gör det enkelt att routa baserat på statuskoder, stoppa vid saknade transkriptioner och normalisera svar som kommer tillbaka i olika format. Du får också möjligheten att self-hosta, vilket blir viktigt när du börjar bearbeta transkriptioner i bulk. Zapier eller Make kan fortfarande fungera om din version är väldigt enkel (en request, en rads skrivning), men du brukar behöva lägga till extra steg för att hantera edge cases. Om du vill ha en snabb rekommendation för just din setup, prata med en automationsexpert.
Felfria transkriptioner ska vara tråkiga. Sätt upp det här en gång, så håller din Sheets-logg sig pålitlig medan teamet fokuserar på jobbet som faktiskt kräver en hjärna.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.