Att leta efter ”det där ögonblicket” i en YouTube-video är en särskild sorts tidstjuv. Du drar i tidslinjen, skummar autoundertexter och tappar sedan bort klippet igen nästa vecka eftersom ingen sparade tidsstämpeln.
Content leads märker det när de återanvänder långa videor till shorts. Marknadschefer stöter på det under kampanjplanering. Och kundnära byråteam hamnar i det när någon frågar: ”Var pratade skaparen om prissättning?” Den här automatiseringen för Airtable Pinecone transcripts förvandlar utspridda video-URL:er till en sökbar kunskapsbas, med länkar som hoppar till exakt rätt sekund.
Nedan ser du vad workflowet gör, vilka resultat du kan förvänta dig och hur du kan tänka kring att anpassa det för ditt eget innehållsbibliotek.
Så fungerar den här automatiseringen
Hela n8n-workflowet, från trigger till slutresultat:
n8n Workflow Template: Airtable till Pinecone: sökbara YouTube-transkript
flowchart LR
subgraph sg0["Flow 1"]
direction LR
n0["<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/airtable.svg' width='40' height='40' /></div><br/>Airtable"]
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
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/airtable.svg' width='40' height='40' /></div><br/>Airtable1"]
n3@{ icon: "mdi:cog", form: "rounded", label: "Wait", 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/httprequest.dark.svg' width='40' height='40' /></div><br/>Apify NinjaPost"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Get JSON TS"]
n6["<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/>JSON Stringifier"]
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "Edit Fields", pos: "b", h: 48 }
n3 --> n5
n0 --> n1
n2 --> n1
n7 --> n2
n5 --> n6
n4 --> n3
n1 --> n4
n6 --> n7
end
subgraph sg1["When clicking ‘Test workflow’ Flow"]
direction LR
n8["<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/airtable.svg' width='40' height='40' /></div><br/>Airtable2"]
n9@{ icon: "mdi:cube-outline", form: "rounded", label: "Pinecone Vector Store", pos: "b", h: 48 }
n10@{ icon: "mdi:vector-polygon", form: "rounded", label: "Embeddings OpenAI", pos: "b", h: 48 }
n11@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Test workflow’", pos: "b", h: 48 }
n12["<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/>Transcript Processor"]
n13@{ icon: "mdi:robot", form: "rounded", label: "Default Data Loader", pos: "b", h: 48 }
n14@{ icon: "mdi:robot", form: "rounded", label: "Recursive Character Text Spl..", pos: "b", h: 48 }
n8 --> n12
n10 -.-> n9
n13 -.-> n9
n12 --> n9
n11 --> n8
n14 -.-> n13
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 n11 trigger
class n13,n14 ai
class n9 ai
class n10 ai
class n0,n2,n8 database
class n4,n5 api
class n6,n12 code
classDef customIcon fill:none,stroke:none
class n0,n2,n4,n5,n6,n8,n12 customIcon
Problemet: YouTube-kunskap försvinner i dina egna videor
Du har redan svaren som teamet behöver, men de ligger begravda i 30, 60 eller 90 minuter video. Någon minns ett citat, en taktik eller en verktygsrekommendation, men ingen hittar det tillräckligt snabbt för att återanvända det. Så teamet tittar om, gissar eller återskapar insikten från noll. Det värsta är snöbollseffekten: varje ny uppladdning lägger på mer ”sökskuld”, och biblioteket blir mindre användbart över tid i stället för mer värdefullt.
Det växer snabbt. Här är var det faller isär i verkligheten.
- Att hitta ett bra klipp kan ta runt 20 minuter av skrollande och omtittande, särskilt när ämnet dyker upp på flera ställen.
- Anteckningar ligger i Slack-trådar, Notion-sidor och i någons huvud, så samma frågor kommer tillbaka om och om igen.
- Auto-transkriptioner hjälper, men de är inte sökbara över hela biblioteket på ett sätt som förstår betydelse, inte bara nyckelord.
- När tidsstämplar inte fångas blir ”återanvänd” till ”återskapa”, och det är dyrt i kreativ tid.
Lösningen: indexera YouTube-transkript till Pinecone automatiskt
Det här workflowet använder Airtable som kontrollcenter för YouTube-URL:er och metadata, och skickar sedan transkript till Pinecone så att de blir verkligt sökbara. Det börjar med att hämta videoposter från Airtable och kör sedan en Apify-actor för transkript-skrapning via en HTTP-förfrågan. Efter en kort väntan (Apify behöver en stund för att generera transkriptet) hämtar workflowet transkriptets JSON, sparar tillbaka det i Airtable och bearbetar det till meningsfulla textblock. Slutligen skapar OpenAI embeddings för varje block, och workflowet indexerar dessa vektorer i Pinecone tillsammans med metadata som videotitel och en direktlänk till exakt tidsstämpel.
I praktiken underhåller du en enkel Airtable-tabell med videor. n8n sköter hämtning av transkript, formatering, konvertering av tidsstämplar, chunking och indexering. När du senare lägger till en retrieval-/sökagent (separat från detta workflow) kan teamet ställa frågor och hoppa direkt till bästa stället i videon.
Vad du får: automatisering vs. resultat
| Vad detta workflow automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du publicerar 5 YouTube-videor i veckan och att teamet plockar ut 3 klipp per video för sociala inlägg. Manuellt kan även en ”snabb” jakt ta 20 minuter per klipp, vilket blir ungefär 5 timmar i veckan bara på att leta. Med det här workflowet lägger du in YouTube-URL:erna i Airtable, och sedan sköter n8n transkript-skrapning och indexering i bakgrunden (ofta runt 2 minuter per video). Nu går tiden till att välja klipp, inte att hitta dem.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Airtable för att lagra video-URL:er och metadata.
- Apify för att skrapa YouTube-transkript med tidsstämplar.
- OpenAI API-nyckel (hämta den i OpenAI-dashboarden).
- Pinecone för att lagra embeddings för semantisk sökning.
Svårighetsgrad: Medel. Du kopplar konton, lägger in API-nycklar och är bekväm med att redigera ett par fält och prompts.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Airtable drar i gång. Workflowet söker i din Airtable-bas efter videoposter (URL:er plus de fält du använder, som titel eller publiceringsdatum) och bearbetar dem i batcher så att du kan indexera en hel backlog utan att få timeouts.
Apify hämtar transkriptet. För varje URL skickar n8n en HTTP-förfrågan för att köra en YouTube-transkript-skrapare med tidsstämplar aktiverade. En kort väntan är inbyggd eftersom transkriptgenerering inte sker direkt.
Transkriptet blir rensat och uppdelat i chunks. n8n hämtar transkriptets JSON, serialiserar det, extraherar YouTube-video-ID från URL:en och uppdaterar Airtable-posten. Därefter konverterar ett bearbetningssteg tidsstämplar till sekunder, grupperar rader till logiska chunks (baserat på pauser) och lägger till metadata inklusive en direkt YouTube-länk för att ”hoppa till” rätt ställe.
Pinecone blir indexet. Workflowet delar långa chunks i mindre segment (cirka 500 tecken med lite överlapp), genererar OpenAI-embeddings och lagrar allt i Pinecone så att en separat retrieval-agent kan söka på betydelse.
Du kan enkelt ändra vilka Airtable-fält som sparas som metadata i Pinecone, så att sökresultaten innehåller den kontext teamet faktiskt behöver. Se hela implementeringsguiden nedan för alternativ för anpassning.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera den manuella triggern
Starta arbetsflödet med en manuell trigger så att ni kan testa transkript-pipelinen end-to-end innan ni automatiserar den.
- Lägg till och behåll Manual Start Trigger som första nod med standardinställningar.
- Koppla Manual Start Trigger till Airtable Input Table för att hämta de transkriptposter ni vill bearbeta.
- Lämna Flowpast Branding som en dokumentationsnotering (ingen konfiguration krävs).
Steg 2: Anslut Airtable
Konfigurera Airtable-noderna som används för att läsa in rader och skriva tillbaka bearbetade resultat.
- I Airtable Input Table, välj den bas och tabell som innehåller de transkript ni vill bearbeta.
- I Fetch Airtable Records, ställ in den bas/tabell som används för batchbearbetningsloopen.
- I Update Airtable Row, välj samma bas/tabell och konfigurera post-ID samt de fält ni vill uppdatera.
- Aktivera Continue On Fail i Update Airtable Row för att matcha arbetsflödets feltoleranta uppdateringsbeteende.
Steg 3: Konfigurera batch- och förfrågningsloopen
Sätt upp den iterativa förfrågningscykeln som hämtar transkriptdata och stryper förfrågningar.
- Konfigurera Batch Item Iterator för att dela inkommande Airtable-poster i hanterbara chunkar.
- Koppla Fetch Airtable Records → Batch Item Iterator så att varje batch bearbetas sekventiellt.
- Sätt upp Apify Request Runner med API-endpointen och den request-metod som krävs av er Apify-run-konfiguration.
- Använd Delay Interval för att strypa förfrågningar innan ni fortsätter till Fetch JSON Transcript.
Steg 4: Sätt upp transkript-tolkning och fältmappning
Transformera den hämtade transkript-JSON:en till de strukturerade fält som behövs för Airtable-uppdateringar.
- Konfigurera Fetch JSON Transcript med URL-endpointen för transkriptet som returneras av er Apify-run.
- Använd Serialize JSON för att normalisera transkript-payloaden till en konsekvent struktur.
- I Map Fields, mappa de normaliserade transkriptvärdena till de fält som krävs i Update Airtable Row.
- Koppla Serialize JSON → Map Fields → Update Airtable Row för att slutföra uppdateringscykeln.
Steg 5: Sätt upp AI-bearbetningspipelinen
Bearbeta transkripttext och lagra embeddings i er vektordatabas för sökning och hämtning.
- Koppla Airtable Input Table till Process Transcript för att skicka rå transkriptdata in i AI-pipelinen.
- I Process Transcript, formatera transkriptinnehållet för dokumentinläsning och chunkning.
- Koppla Process Transcript till Pinecone Vector Index för att lagra bearbetat innehåll som vektorer.
- Säkerställ att Recursive Text Splitter matar Default Document Loader, och sedan vidare till Pinecone Vector Index som dokumentpipeline.
- Koppla OpenAI Embedding Builder till Pinecone Vector Index som embedding-leverantör.
Steg 6: Konfigurera uppdateringar av utdata
Slutför postuppdateringar och loopstyrning för att hålla pipelinen igång genom alla poster.
- Verifiera att Update Airtable Row är kopplad tillbaka till Batch Item Iterator så att nästa batch startar efter varje uppdatering.
- Bekräfta att uppdateringsfälten i Map Fields stämmer överens med de kolumner ni vill spara i Airtable.
Steg 7: Testa och aktivera ert arbetsflöde
Kör ett manuellt test för att säkerställa att transkript hämtas, transformeras, indexeras och skrivs tillbaka till Airtable korrekt.
- Klicka på Execute Workflow och trigga Manual Start Trigger för att köra ett fullständigt test.
- Bekräfta att Fetch JSON Transcript returnerar data, att Serialize JSON bearbetar den och att Map Fields ger förväntad utdata.
- Verifiera att Update Airtable Row uppdaterar rätt fält och att Pinecone Vector Index tar emot de bearbetade transkriptvektorerna.
- När resultaten är korrekta, växla arbetsflödet till Active för produktionsanvändning.
Vanliga fallgropar
- Airtable-inloggningsuppgifter kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först status för n8n-credentials och åtkomstinställningarna för din Airtable-bas.
- Om du använder Wait-noder eller extern rendering varierar bearbetningstiderna. Öka väntetiden om noder längre fram misslyckas på grund av tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in din tonalitet tidigt, annars kommer du att redigera outputs i all evighet.
Vanliga frågor
Cirka en timme om dina konton för Airtable, Apify, OpenAI och Pinecone är klara.
Ingen kod krävs. Du kopplar främst tjänster och klistrar in API-nycklar, och justerar sedan ett par fält i Airtable.
Ja. n8n har ett gratis self-hosted-alternativ 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 kostnader för OpenAI-embeddings och Apify-användning, vilket kan lägga på en liten kostnad per video.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärt och hanterar n8n bra. Self-hosting ger obegränsade körningar men kräver grundläggande serverhantering.
Ja, men planera för att testa. Du kan ändra chunk-beteende i Recursive Character Text Splitter (500-teckens chunk-storlek och överlapp) och justera vad som bifogas i Default Document Loader. Många team justerar också Process Transcript-koden så att chunks följer talare, avsnitt eller längre pauser. Och om du vill att sökresultat ska visa extra kontext (som kampanjnamn eller kund), lägg till de Airtable-fälten som metadata innan indexering i Pinecone.
Oftast beror det på utgångna inloggningsuppgifter eller saknade behörigheter till basen.
Den kan hantera mycket, men det beror på dina körningsbegränsningar i n8n och din Apify/OpenAI-kapacitet. På n8n Cloud är taket kopplat till dina månatliga körningar, så indexering i hög volym innebär ofta en betald plan. Om du self-hostar finns ingen plattformsgräns för körningar, men din server måste fortfarande hinna med HTTP-anrop och embedding-batcher. I praktiken börjar team ofta med att köra backloggen över natten och indexerar sedan nya videor veckovis.
För transkriptindexering och vektorlagring är n8n oftast smidigare. Du behöver batchning, väntan på externa jobb och några transformationssteg (chunking, konvertering av tidsstämplar, metadata-mappning). Zapier och Make kan göra delar av detta, men workflowet tenderar att svälla och kostnaderna stiger när du bearbetar många transkript-chunks. n8n ger dig också möjligheten att self-hosta, vilket spelar roll om du planerar att indexera ett växande bibliotek. Om du bara har några få videor i månaden kan Zapier eller Make fortfarande vara helt okej. Prata med en automationsexpert om du vill ha hjälp att välja.
När detta väl rullar slutar videobiblioteket vara en svart låda. Du får sökbar kunskap med tidsstämplar, redo varje gång någon ställer samma fråga igen.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.