Råvideor är enkla att spela in. Att göra dem till något du faktiskt kan publicera är slitjobbet. Undertexter behöver rättas, speakerröster matchar inte tajmingen och “final-final-v3”-filer hamnar utspridda på laptops och i chatttrådar.
Den här OpenAI-videoautomationen träffar innehållsskapare först, men utbildningsteam och små byråer känner av den också. Du vill ha en felfri MP4 med undertexter (eller berättarröst) som är redo att dela, utan att spendera kvällen i ett redigeringsprogram.
Det här arbetsflödet gör uppladdningar till polerade leveranser och lägger de färdiga filerna i Google Drive. Du ser vad som automatiseras, vilka resultat du kan förvänta dig och vad som krävs för att köra det stabilt.
Så fungerar den här automatiseringen
Det kompletta n8n-arbetsflödet, från trigger till slutleverans:
n8n Workflow Template: OpenAI + Google Drive: textade MP4:or levererade
flowchart LR
subgraph sg0["UV Flow"]
direction LR
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/form.svg' width='40' height='40' /></div><br/>UV"]
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "C", pos: "b", h: 48 }
n6@{ icon: "mdi:cog", form: "rounded", label: "SUV", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "EA", pos: "b", h: 48 }
n8@{ icon: "mdi:cog", form: "rounded", label: "SDA", pos: "b", h: 48 }
n9["<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/>WT"]
n10["<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/>WS"]
n11@{ icon: "mdi:cog", form: "rounded", label: "EF", 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/merge.svg' width='40' height='40' /></div><br/>M"]
n13@{ icon: "mdi:cog", form: "rounded", label: "SDF", pos: "b", h: 48 }
n14@{ icon: "mdi:robot", form: "rounded", label: "AF", pos: "b", h: 48 }
n15["<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/>RT"]
n16["<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/>OS"]
n17["<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/>CV"]
n18@{ icon: "mdi:cog", form: "rounded", label: "SUV1", pos: "b", h: 48 }
n19["<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/merge.svg' width='40' height='40' /></div><br/>M1"]
n20["<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/>BC"]
n21@{ icon: "mdi:cog", form: "rounded", label: "SUV2", pos: "b", h: 48 }
n22@{ icon: "mdi:cog", form: "rounded", label: "TM", pos: "b", h: 48 }
n23@{ icon: "mdi:cog", form: "rounded", label: "SDV", pos: "b", h: 48 }
n35@{ icon: "mdi:cog", form: "rounded", label: "SDV1", pos: "b", h: 48 }
n36@{ icon: "mdi:cog", form: "rounded", label: "StoreVideo", pos: "b", h: 48 }
n37@{ icon: "mdi:cog", form: "rounded", label: "CleanUp", pos: "b", h: 48 }
n5 --> n6
n12 --> n13
n14 --> n15
n20 --> n21
n17 --> n18
n7 --> n8
n11 --> n12
n19 --> n20
n16 --> n17
n15 --> n19
n15 --> n16
n22 --> n23
n4 --> n5
n10 --> n11
n10 --> n12
n9 --> n10
n8 --> n9
n13 --> n14
n23 --> n36
n6 --> n7
n35 --> n36
n18 --> n19
n21 --> n22
n36 --> n37
end
subgraph sg1["UMV Flow"]
direction LR
n24["<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/form.svg' width='40' height='40' /></div><br/>UMV"]
n25["<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/>S"]
n26@{ icon: "mdi:cog", form: "rounded", label: "SUV3", pos: "b", h: 48 }
n27["<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/>CO"]
n28@{ icon: "mdi:cog", form: "rounded", label: "MV", pos: "b", h: 48 }
n29@{ icon: "mdi:cog", form: "rounded", label: "EA1", pos: "b", h: 48 }
n30@{ icon: "mdi:cog", form: "rounded", label: "SDA1", pos: "b", h: 48 }
n31["<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/>WT1"]
n32["<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/>PR"]
n33@{ icon: "mdi:cog", form: "rounded", label: "SUS", pos: "b", h: 48 }
n34@{ icon: "mdi:cog", form: "rounded", label: "AS", pos: "b", h: 48 }
n25 --> n26
n27 --> n28
n28 --> n29
n32 --> n33
n29 --> n30
n33 --> n34
n24 --> n25
n31 --> n32
n30 --> n31
n26 --> n27
end
subgraph sg2["Initialize Folders Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Initialize Folders", pos: "b", h: 48 }
n1@{ icon: "mdi:cog", form: "rounded", label: "R", pos: "b", h: 48 }
n2@{ icon: "mdi:cog", form: "rounded", label: "CMF", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "CS", pos: "b", h: 48 }
n1 --> n2
n2 --> n3
n0 --> n1
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 n4,n24,n0 trigger
class n14 ai
class n9,n16,n31 api
class n10,n15,n17,n20,n25,n27,n32 code
classDef customIcon fill:none,stroke:none
class n4,n9,n10,n12,n15,n16,n17,n19,n20,n24,n25,n27,n31,n32 customIcon
Problemet: flaskhalsar i videoredigering bromsar leveransen
De flesta team fastnar inte på “att göra en video”. De fastnar på allt efter inspelningen. Undertexter behöver genereras och sedan rensas. Speakerröster låter bra, men att synka dem mot bild tar evigheter. Och när du producerar många lektioner, demoklipp eller sociala klipp blir redigeringskön den verkliga begränsningen. Det värsta är kontextbytena: du hoppar mellan ett transkriberingsverktyg, ett TTS-verktyg, en editor och ett lagringssystem, och ändå slutar det med att du manuellt exporterar och delar.
Det går snabbt att summera. Här är var det oftast fallerar i verkligheten.
- Grundläggande undertextning kan sluka cirka 1–2 timmar per video när du räknar in rensning och omexporter.
- Små timingfel skapar stora trovärdighetsproblem, särskilt i utbildnings- eller compliancevideor.
- Team tappar bort versioner eftersom leveranser hamnar i slumpmässiga mappar och meddelandetrådar.
- Färdiga SaaS-editorer ger löpande avgifter, exportbegränsningar eller vattenstämplar som gör skalning krånglig.
Lösningen: ladda upp en gång, få tillbaka en MP4 redo för Drive
Det här arbetsflödet ger dig en AI-assisterad “redigeringsfil” som körs i n8n och slutar i Google Drive. Det startar när någon laddar upp råvideo (och eventuella stödassets) via en enkel formulärtrigger. Flödet mellanlagrar filerna på din server, förbereder en sessionsmapp och kör sedan grovjobbet: transkribering med OpenAI Whisper, valfri textrensning och valfri AI-röstgenerering med OpenAI Speech. Därefter slår FFmpeg-baserade steg ihop klipp, justerar videons timing för att matcha berättarrösten när det behövs och bränner in undertexter när du väljer undertextläge. Till sist levereras och lagras den färdiga MP4:an i Google Drive så att du kan dela en länk, lägga den i en kursplattform eller skicka den till en kund utan att leta filer.
Arbetsflödet börjar med ett uppladdningsformulär och en servermapps-setup. Sedan bearbetar det media (transkribera, översätta, berättarröst, slå ihop, undertexta) och renderar den slutliga MP4:an. Sist laddar det upp resultatet till Google Drive och städar bort temporära filer så att din server inte blir en skräplåda.
Vad du får: automatisering vs. resultat
| Vad det här arbetsflödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut i praktiken
Säg att du producerar 5 utbildningsklipp per vecka. Manuell hantering: en “enkel” runda (generera undertexter, rensa dem, exportera, ladda upp till Drive, dela) landar ofta på cirka 2 timmar per klipp, så du tappar ungefär 10 timmar i veckan. Med det här arbetsflödet laddar du upp en gång (cirka 10 minuter), väntar på bearbetning och rendering (ofta under en timme beroende på videolängd och serverhastighet), och sedan finns den färdiga MP4:an redan i Google Drive. Du granskar och godkänner fortfarande, men det repetitiva arbetet slutar äga din kalender.
Det här behöver du
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- OpenAI API för Whisper-transkribering och Speech TTS
- Google Drive för att lagra och dela slutliga MP4-leveranser
- FFmpeg installerat (installerat på din server)
- OpenAI API-nyckel (hämta den i OpenAI-dashbordet)
Kunskapsnivå: Medel. Du kopplar in credentials i n8n och är bekväm med att konfigurera en server som kan köra FFmpeg-jobb.
Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Ett uppladdningsformulär startar jobbet. Någon skickar in en video (och valfria assets) via triggern “Incoming Upload Form”, vilket startar en ny bearbetningssession.
Filer mellanlagras och organiseras på servern. n8n skapar en mediamapp och en sessionsmapp, flyttar uppladdningen och packar upp arkiv vid behov så att varje körning är isolerad och prydlig.
OpenAI sköter transkribering och röstgenerering. Whisper tar fram transkriptet, sedan rensar ett AI-formateringssteg upp det för undertexter eller berättarröst. Om berättarröstläge väljs genererar OpenAI Speech rösten och arbetsflödet justerar videons timing så att ljud och bild matchar naturligt.
Den slutliga MP4:an renderas och levereras till Google Drive. FFmpeg slår ihop klipp, applicerar undertext-styling när du väljer undertextläge och producerar en MP4 redo att publicera. Google Drive-lagring blir din överlämningspunkt och städsteg tar bort temporära filer.
Du kan enkelt ändra undertext-styling och röstalternativ utifrån dina behov. Se den fullständiga implementeringsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera den manuella triggern
Det här arbetsflödet startar med en manuell trigger för att initiera fjärrmappar innan filbearbetningen börjar.
- Lägg till och öppna Start Folder Setup.
- Lämna alla fält med standardvärdena, eftersom den här manuella triggern används för körningar av setup.
- Koppla Start Folder Setup till Remote Init Command för att starta flödet för mappinitiering.
Steg 2: Anslut fjärr- och överföringstjänster
Arbetsflödet använder flera SSH-, FTP-, HTTP- och Google Drive-anslutningar för att flytta filer och köra fjärrkommandon.
- Öppna varje SSH-nod och anslut autentiseringsuppgifter: Remote Init Command, Create Media Folder, Create Session Folder, Extract Archive, Execute Finalize, Merge Update Assets, Extract Update Archive, Trigger Media Build, Apply Server Settings och Cleanup Temp Files. Credential Required: Anslut era SSH-autentiseringsuppgifter.
- Öppna varje FTP-nod och anslut autentiseringsuppgifter: Transfer Upload Files, Sync Data Assets, Stage Data Files, Transfer Variant Files, Send Composition Files, Deliver Video Files, Upload Update Assets, Sync Update Assets, Send Upload Summary och Deliver Alt Video. Credential Required: Anslut era FTP-autentiseringsuppgifter.
- Öppna HTTP-noderna Web Task Request, Output Service Call och Webhook Task Call. Credential Required: Anslut era HTTP Request-autentiseringsuppgifter om era endpoints kräver auth.
- Öppna Store Video Output. Credential Required: Anslut era Google Drive-autentiseringsuppgifter.
Steg 3: Sätt upp intake och förbearbetning
Två formulärtriggers fångar upp uppladdningar och uppdateringar och förbereder samt överför sedan data för bearbetning.
- Öppna Incoming Upload Form och Incoming Update Form för att konfigurera era formulärfält och beteendet vid inskickning.
- Konfigurera Prepare Form Values för att mappa eller normalisera inkommande fält för uppladdningsflödet.
- Bekräfta att uppdateringsflödet kör Sanitize Update Data före Upload Update Assets och Compose Update Data.
- Verifiera intake-vägen: Incoming Upload Form → Prepare Form Values → Transfer Upload Files → Extract Archive → Sync Data Assets → Web Task Request → Workflow Script.
Steg 4: Konfigurera bearbetning och AI-formatering
Huvudflödet för bearbetning mellanlagrar filer, formaterar innehåll med AI och renderar mallar innan det förgrenas till parallella utdata.
- Säkerställ att bearbetningskedjan följer: Combine Streams → Stage Data Files → AI Formatting Step → Render Template.
- Öppna AI Formatting Step. Credential Required: Anslut era OpenAI-autentiseringsuppgifter.
- Granska Render Template, Compile Variants och Build Composition för att bekräfta att kodlogiken stämmer med ert dataschema.
- Render Template skickar utdata parallellt till både Merge Render Outputs och Output Service Call.
- Workflow Script skickar utdata parallellt till både Execute Finalize och Combine Streams.
Steg 5: Konfigurera mediabygge, leverans och uppdateringar
Kompositioner skickas för att bygga mediaresurser, medan uppdateringsinskickningar följer sin egen synkroniserings- och svarsväg.
- Bekräfta kompositionskedjan: Merge Render Outputs → Build Composition → Send Composition Files → Trigger Media Build → Deliver Video Files → Store Video Output → Cleanup Temp Files.
- Säkerställ att varianter går via Output Service Call → Compile Variants → Transfer Variant Files → Merge Render Outputs.
- Validera uppdateringsflödet: Incoming Update Form → Sanitize Update Data → Upload Update Assets → Compose Update Data → Merge Update Assets → Extract Update Archive → Sync Update Assets → Webhook Task Call → Prepare Response → Send Upload Summary → Apply Server Settings.
- Bekräfta sekundär leveransväg: Deliver Alt Video → Store Video Output.
Steg 6: Testa och aktivera ert arbetsflöde
Kör varje trigger manuellt för att bekräfta end-to-end-bearbetning innan ni aktiverar produktionsanvändning.
- Klicka på Execute Workflow i Start Folder Setup för att verifiera att mappar skapas via Remote Init Command → Create Media Folder → Create Session Folder.
- Skicka in en testpayload till Incoming Upload Form och bekräfta att kedjan når Store Video Output och Cleanup Temp Files.
- Skicka in en testpayload till Incoming Update Form och bekräfta att kedjan når Apply Server Settings.
- En lyckad körning ska visa att filer mellanlagras, renderas, levereras och lagras utan nodfel.
- När ni är redo, växla arbetsflödet till Active så att formulärinskickningar och fjärruppgifter körs i produktion.
Vanliga fallgropar
- Google Drive-credentials kan gå ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera först inställningarna för credentials i n8n och Drive-kontots delnings-/åtkomstregler.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet och era riktlinjer tidigt, annars kommer du att redigera leveranserna för alltid.
Vanliga frågor
Cirka 45 minuter om din server och dina konton är klara.
Nej. Du kopplar mest ihop konton och justerar några formulärfält och inställningar.
Ja. n8n har ett gratis alternativ för egen drift 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 med kostnader för OpenAI API (Whisper är cirka 0,006 USD/min, plus Speech-användning för berättarröster).
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärd och klarar n8n bra. Egen drift ger obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det är en av de bästa anledningarna att använda den här mallen. Du kan ändra undertextstyling i steget “Apply Subtitle” (typsnitt, marginaler, bakgrund), och du kan lägga till språk genom att utöka språklistan i uppladdningsformuläret. För berättarröster byter du röst i OpenAI Speech-noden genom att ändra vald röst. Om du vill ersätta Drive med Slack eller Dropbox byter du sista lagrings-/leveranssteget men behåller samma renderpipeline.
Oftast beror det på credentials som har gått ut eller återkallats. Anslut Google Drive på nytt i n8n och bekräfta att Drive-kontot fortfarande har behörighet att ladda upp till målmappen. Om du använder en delad enhet, dubbelkolla att kontot som ligger i credentials har åtkomst till den (delade enheter kan vara petiga). Håll också koll på kvotproblem om du laddar upp många stora MP4:or under kort tid.
Många, men det beror på dina exekveringsgränser och serverns kapacitet. På n8n Cloud beror din månatliga exekveringsgräns på planen, vilket påverkar hur många körningar du kan trigga. Om du kör egen drift finns ingen inbyggd exekveringsgräns, men FFmpeg-rendering och OpenAI-anrop blir en flaskhals för CPU, bandbredd och samtidighet. I praktiken börjar många team med några videor per dag och ökar parallell bearbetning när de ser stabila renderingstider. Om du planerar batchbearbetning av 50+ videor på en dag vill du ha en kraftigare VPS och vissa köregler så att jobben inte staplas på varandra.
För det här användningsfallet, ja, eftersom den “svåra delen” är serverside mediearbete och flersteglogik, inte bara att flytta data mellan appar. n8n låter dig också köra egen drift, vilket är viktigt när du gör många körningar eller hanterar stora filer. Zapier/Make kan fungera för enkla triggers och notifieringar, men långkörande videokörningar tenderar att bli krångliga (och dyra) där. Den största fördelen är ärligt talat kontroll: FFmpeg, filstaging och anpassad bearbetning är förstaklass i ett arbetsflöde som det här. Prata med en automationsexpert om du vill ha hjälp att välja rätt upplägg.
När det här väl är igång blir din “redigering” en uppladdning och en granskning, inte ett veckovis produktionsslit. Arbetsflödet tar hand om de repetitiva delarna så att du kan fokusera på innehåll som faktiskt ger effekt.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.