Du har redan den långa videon. Problemet är allt som kommer efter: att hitta de bra ögonblicken, klippa snyggt, skriva captions och sedan publicera tre olika versioner på tre olika ställen.
Det här är den typen av video clips automation som räddar sociala medier-ansvariga från att leva i en tidslinje hela veckan. Det hjälper också grundare som vill fortsätta synas, och redigerare som hellre batchar arbete än jagar daglig publicering.
Du sätter upp ett enda arbetsflöde i n8n som förvandlar en lång video till 3–6 korta klipp och schemalägger sedan ett per dag till Shorts, Reels och TikTok. Och ja, det respekterar din ursprungliga upplösning så att du inte får konstiga, gryniga exporter.
Så fungerar automatiseringen
Här är hela arbetsflödet som du kommer att sätta upp:
n8n Workflow Template: Gemini + upload-post: gör 1 video till shorts
flowchart LR
subgraph sg0["Form: Upload Video Flow"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Download Audio"]
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/>FFmpeg: Extract Audio"]
n2@{ icon: "mdi:cog", form: "rounded", label: "Schedule to TikTok, Instagra..", pos: "b", h: 48 }
n3["<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 Whisper Results"]
n4@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model", pos: "b", h: 48 }
n5@{ icon: "mdi:robot", form: "rounded", label: "AI Agent - Select Viral Clips", pos: "b", h: 48 }
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Whisper: Transcribe with Tim.."]
n7@{ icon: "mdi:cog", form: "rounded", label: "Wait 5s & Retry (Audio)", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Is Audio Job Completed?", 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/>Check Audio Job Status"]
n10@{ icon: "mdi:cog", form: "rounded", label: "Wait 10s (Audio)", pos: "b", h: 48 }
n11["<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/>Form: Upload Video"]
n12@{ icon: "mdi:cog", form: "rounded", label: "Wait 5s & Retry (Short)", pos: "b", h: 48 }
n13["<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/>Download Short"]
n14@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Is Short Job Completed?", 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/httprequest.dark.svg' width='40' height='40' /></div><br/>Check Short Job Status"]
n16@{ icon: "mdi:cog", form: "rounded", label: "Wait 10s (Short)", pos: "b", h: 48 }
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/>Parse Gemini Analysis"]
n18["<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/>FFmpeg: Upload & Cut"]
n0 --> n6
n13 --> n2
n10 --> n9
n16 --> n15
n11 --> n1
n18 --> n16
n1 --> n10
n17 --> n18
n3 --> n5
n9 --> n8
n15 --> n14
n8 --> n0
n8 --> n7
n14 --> n13
n14 --> n12
n7 --> n9
n12 --> n15
n4 -.-> n5
n5 --> n17
n6 --> n3
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 n5 ai
class n4 aiModel
class n8,n14 decision
class n0,n1,n6,n9,n13,n15,n18 api
class n3,n17 code
classDef customIcon fill:none,stroke:none
class n0,n1,n3,n6,n9,n11,n13,n15,n17,n18 customIcon
Varför det här spelar roll: att göra en video till dagliga Shorts är ett slit
Manuell klippning känns enkelt tills du ska göra det konsekvent. Du tittar på hela videon (igen), letar efter ”det där ögonblicket”, skubbar fram och tillbaka för att undvika att klippa mitt i ett ord och anpassar sedan till 9:16 utan att kapa någons huvud. Efter det kommer titlar, beskrivningar, hashtags, exportinställningar och den ”roliga” delen: att ladda upp samma klipp till tre plattformar med lite olika regler. En dag du hoppar över blir till en vecka och plötsligt är ditt ”återanvändningssystem” bara dåligt samvete med en mapp full av halvfärdiga utkast.
Det växer snabbt. Här är var det oftast faller isär.
- Bra klipp missas eftersom ingen har tid att titta igenom långformat noggrant.
- Redigerare klipper på ”känsla”, vilket ofta skapar stelt klippta partier mitt i ord och fler revisionsrundor.
- Vertikalformatering blir ett repetitivt mini-projekt för varje klipp, särskilt när källan är horisontell.
- Publiceringen blir inkonsekvent eftersom schemaläggning för Shorts, Reels och TikTok är tre separata sysslor.
Vad du bygger: långformat in, schemalagda shorts ut
Det här arbetsflödet startar med ett enkelt formulär för videoinlämning där du skickar in en lång video (podcast, webbinar, intervju, produktdemo, vad som helst). n8n skickar den till Upload-Posts FFmpeg-API för att extrahera ett ljudspår och använder sedan OpenAI Whisper för att skapa en transkription på ordnivå med tidsstämplar. Därefter granskar Google Gemini transkriptionen och identifierar 3–6 segment med hög kvarhållning (antalet skalar med videolängd och kvalitet) och genererar klippmetadata som titlar och beskrivningar. Sedan klipper Upload-Post klippen med exakta timecodes och hanterar smart beskärning eller padding så att resultatet fungerar för 9:16-plattformar utan onödig uppskalning. Slutligen schemalägger Upload-Post ett klipp per dag under på varandra följande dagar på TikTok, Instagram Reels och YouTube Shorts vid en konfigurerbar tid (standard är 20:00 Europe/Madrid).
Arbetsflödet drar igång när du skickar in formuläret. AI sköter transkriptbaserad ”klipp-gruvdrift”, och Upload-Post gör grovjobbet med klippning och formatering. När klippen är klara lägger schemaläggaren dem i kö så att du får en jämn publiceringstakt utan dagligt manuellt arbete.
Det här bygger du
| Det som automatiseras | Det du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du publicerar ett podcastavsnitt i veckan och vill ha dagliga shorts från det. Manuellt innebär 6 klipp ofta runt 30 minuter per klipp för att hitta, klippa, omformatera, texta, exportera och ladda upp, vilket är ungefär 3 timmar innan du ens skriver beskrivningar. Med det här arbetsflödet skickar du in videon en gång (några minuter), väntar på att transkription och klippning blir klara, och dina 3–6 klipp schemaläggs automatiskt för de kommande 3–6 dagarna. De flesta team får tillbaka flera timmar per avsnitt och publicering slutar kännas som en daglig brandövning.
Innan du börjar
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Google Gemini för klippurval och metadata.
- Upload-Post för att klippa, formatera och schemalägga inlägg.
- OpenAI API-nyckel (hämta den i din OpenAI-dashboard).
Kunskapsnivå: Medel. Du kopplar API-uppgifter och justerar några fält som tidszon och publiceringstid.
Vill du att någon bygger det här åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
Videoinlämning via formulär. Du laddar upp (eller anger) den långa videon en gång, och sedan tar arbetsflödet över utan att du jagar filer eller skickar meddelanden till en redigerare.
Ljudextraktion och transkription. Upload-Post kör ett FFmpeg-jobb för att plocka ut ljudspåret, och n8n pollar jobbet tills det är klart. Whisper skapar sedan en transkription med tidsstämplar på ordnivå, vilket gör att klippen känns naturliga i stället för ”robot-avhuggna”.
Gemini hittar ögonblicken som är värda att klippa. Gemini analyserar transkriptionen, väljer 3–6 segment som är designade för kvarhållning (oftast 15–60 sekunder) och genererar titlar och beskrivningar som du kan använda direkt eller justera senare.
Klippen klipps, formateras och schemaläggs. Upload-Post klipper videon med exakta timecodes, beskär eller letterboxar smart för 9:16 och schemalägger sedan ett klipp per dag över TikTok, Reels och Shorts med start i morgon.
Du kan enkelt ändra antalet klipp och schemaläggningstiden så att det matchar din publiceringstakt. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera formulärtriggern
Konfigurera intagsformuläret som startar arbetsflödet och tar emot videofilen.
- Lägg till och öppna Video Intake Form.
- Ställ in Path på
352a575b-42cf-4e9b-8d76-6acec4e40402. - Ställ in Form Title på
🎬 Video to Viral Shorts. - Ställ in Form Description på
Upload your video and automatically create viral shorts with AI. Depending on the video's length, 3 to 6 shorts will be generated and automatically scheduled to be uploaded one per day at this time starting tomorrow. - Under Form Fields, lägg till ett file-fält med etiketten
Videooch ställ in Accept File Types påvideo/*.
Steg 2: Koppla Upload-Post och ljudextraktion
Konfigurera kedjan för ljudextraktion och jobb-pollning som förbereder ljud för transkribering.
- Öppna Extract Audio Track och ställ in URL på
https://api.upload-post.com/api/uploadposts/ffmpeg/jobs/upload. - I Extract Audio Track, ställ in Method på
POSToch Content Type påmultipart-form-data. - Mappa body-parametrarna i Extract Audio Track: file från binärfältet
Video, full_command tillffmpeg -y -i {input} -map a:0 -vn -ac 1 -ar 16000 -c:a pcm_s16le {output}, och output_extension tillwav. - Inloggningsuppgifter krävs: koppla era
httpHeaderAuth-credentials i Extract Audio Track. - I Delay 10s Audio, ställ in Amount på
10sekunder för att vänta innan pollning. - I Poll Audio Job, ställ in URL på
=https://api.upload-post.com/api/uploadposts/ffmpeg/jobs/{{ $json.job_id }}och lägg till Inloggningsuppgifter krävs:httpHeaderAuth. - I Audio Job Finished?, säkerställ att villkoret kontrollerar Left Value
={{ $json.status }}är lika medfinished. - I Retry Audio After 5s, lämna standardinställningarna för att loopa tillbaka till Poll Audio Job när jobbet inte är klart.
- I Fetch Audio File, ställ in URL på
=https://api.upload-post.com/api/uploadposts/ffmpeg/jobs/{{ $json.job_id }}/downloadoch lägg till Inloggningsuppgifter krävs:httpHeaderAuth.
Tips: Loopen för status på ljudjobbet styrs av Audio Job Finished? → Retry Audio After 5s → Poll Audio Job; behåll statusvärdet exakt finished för att undvika en oändlig loop.
Steg 3: Sätt upp transkribering och AI-val av klipp
Transkribera ljudet, normalisera det och skicka det till AI-modellen för val av klipp.
- Öppna Whisper Transcription och ställ in URL på
https://api.openai.com/v1/audio/transcriptions. - Ställ in Method på
POSToch Content Type påmultipart-form-datai Whisper Transcription. - Konfigurera body-parametrarna i Whisper Transcription: file från binärfältet
data, model tillwhisper-1, response_format tillverbose_json, och timestamp_granularities[] tillword. - Inloggningsuppgifter krävs: koppla era
openAiApi-credentials i Whisper Transcription. - I Normalize Whisper Output, behåll den medföljande JavaScript-koden som skapar
video_duration,words_llmochtext_llmför AI-prompten. - Öppna AI Clip Selector och behåll prompttexten som den är, inklusive uttrycken
{{ $json.video_duration }},{{ JSON.stringify($json.text_llm) }}och{{ JSON.stringify($json.words_llm) }}. - Bekräfta att Gemini Chat Engine är ansluten som språkmodell för AI Clip Selector.
- Inloggningsuppgifter krävs: koppla era
googlePalmApi-credentials i Gemini Chat Engine (credentials läggs till i den överordnade språkmodellen, inte i agentnoden).
⚠️ Vanlig fallgrop: lägg inte till credentials i AI Clip Selector; lägg till dem i Gemini Chat Engine i stället, annars misslyckas AI-anropet.
Steg 4: Konfigurera klipptolkning, klippning och schemaläggning av uppladdningar
Tolka AI-utdata, klipp klippen med Upload-Post och schemalägg sociala uppladdningar.
- I Parse Gemini Output, behåll JavaScript-koden som tolkar JSON, normaliserar tidsstämplar och bygger
full_commandper klipp. - Öppna Upload and Cut Clips och ställ in URL på
https://api.upload-post.com/api/uploadposts/ffmpeg/jobs/upload. - Ställ in Method på
POSToch Content Type påmultipart-form-datai Upload and Cut Clips. - Ställ in body-parametrarna i Upload and Cut Clips med full_command som inkluderar uttrycken
{{ $json.startTime }}och{{ $json.duration }}i ffmpeg-strängen. - Inloggningsuppgifter krävs: koppla era
httpHeaderAuth-credentials i Upload and Cut Clips, Poll Clip Job och Fetch Clip File (dessa hanterar klipjobbets livscykel). - Ställ in Delay 10s Clip på
10sekunder och säkerställ att Poll Clip Job använder=https://api.upload-post.com/api/uploadposts/ffmpeg/jobs/{{ $json.job_id }}. - I Clip Job Finished?, bekräfta att villkoret kontrollerar
={{ $json.status }}är lika medfinished. - I Fetch Clip File, ställ in URL på
=https://api.upload-post.com/api/uploadposts/ffmpeg/jobs/{{ $json.job_id }}/download. - Öppna Schedule Social Uploads och ställ in User på
influencersde. - Ställ in Title på
={{ $('Parse Gemini Output').item.json.video_description_for_tiktok }}, YouTube Title på={{ $('Parse Gemini Output').item.json.video_title_for_youtube_short }}och Instagram Title på={{ $('Parse Gemini Output').item.json.video_description_for_instagram }}. - Ställ in Scheduled Date till det angivna uttrycket:
{{ $now .setZone('Europe/Madrid') .plus({ days: $itemIndex + 1 }) // +1 = empieza mañana .set({ hour: 15, minute: 0, second: 0, millisecond: 0 }) .toFormat('yyyy-LL-dd HH:mm:ss') // si tu nodo acepta este formato }}. - Inloggningsuppgifter krävs: koppla era
uploadPostApi-credentials i Schedule Social Uploads.
Tips: Det här arbetsflödet kedjar Parse Gemini Output → Upload and Cut Clips → Delay 10s Clip → Poll Clip Job → Clip Job Finished? → Fetch Clip File → Schedule Social Uploads för att säkerställa att varje genererat klipp laddas upp och schemaläggs i rätt ordning.
Steg 5: Testa och aktivera ert arbetsflöde
Kör ett fullständigt test för att bekräfta att flödet för ljudextraktion, AI-val, klippning och schemaläggning fungerar från början till slut.
- Klicka på Execute Workflow och skicka in en testfil via Video Intake Form.
- Verifiera att Extract Audio Track skapar ett jobb, att Poll Audio Job returnerar
finishedoch att Fetch Audio File laddar ned ljudet. - Bekräfta att Whisper Transcription returnerar verbose JSON och att Normalize Whisper Output skapar
video_duration,words_llmochtext_llm. - Kontrollera att AI Clip Selector returnerar giltig JSON och att Parse Gemini Output skapar klippobjekt med
startTime,durationochfull_command. - Verifiera att Upload and Cut Clips och pollningscykeln för klippen slutförs, och att Schedule Social Uploads får den färdiga klippfilen och metadata.
- När ni är nöjda, växla arbetsflödet till Active så att nya formulärinskick automatiskt bearbetas.
Felsökningstips
- Upload-Post-uppgifter kan gå ut eller kräva specifika behörigheter. Om något skapar fel, kontrollera din API-token i n8n Credentials och bekräfta att dina sociala konton fortfarande är anslutna i Upload-Post.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in din tonalitet tidigt annars kommer du redigera utdata i all evighet.
Snabba svar
Cirka 30 minuter om dina API-nycklar och sociala konton är redo.
Nej. Du kommer främst att koppla uppgifter och justera några fält som tidszon och publiceringstid.
Ja. n8n har ett gratis alternativ för egen 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 kostnader för OpenAI Whisper-användning, Gemini-användning och Upload-Post för bearbetning/publicering.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärt och hanterar n8n bra. Egen hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det borde du sannolikt göra. Du kan ändra Gemini-instruktionerna i noderna Gemini Chat Engine och AI Clip Selector så att de matchar din innehållsstil (mer utbildande, mer säljigt, mer storydrivet) och sedan justera reglerna för klipplängd innan steget Upload and Cut Clips. Vanliga justeringar är att tvinga exakt 3 klipp, ändra 15–60 s-fönstret, använda en annan publiceringstid än 20:00 Europe/Madrid eller schemalägga varannan dag i stället för på varandra följande dagar.
Oftast är det API-tokenen. Skapa en ny Upload-Post-token, uppdatera uppgiften i n8n och dubbelkolla sedan i Upload-Post att dina TikTok-/Instagram-/YouTube-konton fortfarande är anslutna och auktoriserade. Om FFmpeg-jobben fungerar men publiceringen misslyckas är det ofta ett behörighetsproblem på socialsidan (indragen åtkomst, utgången inloggning eller saknade sid-/kanalbehörigheter). Rate limiting kan också dyka upp när du trycker ut många klipp på en gång, så att glesa ut uppladdningar eller minska batchstorleken hjälper.
På en typisk n8n Cloud-plan kan du köra tusentals körningar per månad, och om du kör egen hosting finns ingen fast körningsgräns (din server blir begränsningen). I praktiken är flaskhalsen rendering och polling av externa jobb, så att bearbeta många långa videor samtidigt hamnar i kö bakom Upload-Post och transkriptionstiden. För de flesta små team är det realistiskt att hantera en handfull långa videor per vecka utan att trimma något.
Ofta, ja, eftersom det här arbetsflödet behöver polling, förgreningar och fler-stegs jobhantering som blir krånglig (och dyr) i enklare verktyg. n8n gör det enklare att vänta på att FFmpeg-jobb blir klara, göra om försök när svar är tomma och transformera transkriptdata innan det går in i Gemini. Du får också alternativet för egen hosting, vilket spelar roll när du börjar köra många körningar. Zapier eller Make kan fortfarande fungera bra om du bara vill ha enkla ”ladda upp video → meddela mig”-automationer. Prata med en automationsexpert om du är osäker på vad som passar.
När det här är live kan en lång inspelning driva nästan en hel vecka med shorts utan den dagliga redigeringsspiralen. Sätt upp det, trimma prompterna och låt arbetsflödet hålla din publiceringstakt stabil.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.