Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

ChatGPT + JsonCut: vertikala videor redo att posta

Rickard Andersson Partner, Nodenordic.se

Ditt ”snabba” kortformatsklipp blir till en mini-produktionssprint. Manus, visuellt, voiceover, musik, undertexter, exporter, filnamn. Sedan gör du om allt i morgon.

Den här ChatGPT-videoautomationen slår hårdast mot social media managers, men marknadsförare och småföretagare känner också av det. Du får konsekventa 9:16-videor utan att behöva bo i redigeringsprogram.

Det här arbetsflödet tar en enda prompt och producerar en färdig att publicera vertikal video (inklusive berättarröst, bakgrundsmusik och textöverlägg). Du får se hur delarna hänger ihop, vad du behöver och de vanligaste fallgroparna att undvika.

Så fungerar den här automationen

Hela n8n-flödet, från trigger till slutresultat:

n8n Workflow Template: ChatGPT + JsonCut: vertikala videor redo att posta

Problemet: kortformatsvideo kräver för många ”små” steg

Kortformat ska gå snabbt. Ärligt talat gör det sällan det. Du börjar med en enkel idé, och plötsligt jonglerar du fem olika verktyg för att få det att se och låta ”på riktigt”. Även med mallar lägger du tiden på limjobbet: leta upp musik som funkar, skapa en voiceover som inte låter robotisk, ändra storlek på assets och synka allt till beatet. Missar du en detalj ser slutrendern fel ut, och då gör du om. Det är precis den typen av slit som dödar kontinuiteten.

Det är inte en stor uppgift. Det är dussintals små.

  • Du skriver om manus för att hooken är svag eller tempot känns fel när du väl hör berättarrösten.
  • Visuellt material genereras, laddas ned, döps om, laddas upp igen – och sedan inser du att du behöver en annan stil och börjar om.
  • Musikval blir en tidstjuv eftersom ”gratis” spår ändå kräver licenskoll och volymbalansering.
  • Kvaliteten sjunker när du stressar, vilket betyder fler ändringar och färre inlägg som faktiskt presterar.

Lösningen: en prompt → full 9:16-video, automatiskt

Det här n8n-arbetsflödet gör en enda formulärinlämning till en komplett vertikal video som du kan publicera på Instagram Reels, TikTok eller YouTube Shorts. Det börjar med en enkel prompt (ditt tema, miljö och stil). ChatGPT genererar ett sammanhållet manus plus en uppsättning bildprompter som matchar berättelsen. Google Gemini skapar bakgrundsbilderna, medan OpenAI text-till-tal producerar berättarrösten. Sedan hämtar flödet ett CC-licensierat ambient musikspår från Openverse, laddar upp alla assets till JsonCut och ber JsonCut att sätta ihop allt till en polerad 9:16-klippning med överlägg, övergångar och ljudmixning. När det är klart hämtas den färdiga filen och sparas (valfritt i NocoDB) så att du kan hantera resultaten utan att gräva i mappar.

Arbetsflödet startar när du skickar in formulärinput i n8n. Därifrån skapar AI manus, bilder och berättarröst, och sedan komponerar JsonCut videon och renderar den. Till sist kontrollerar n8n renderstatus tills allt är klart och sparar resultatet så att du kan använda det direkt.

Det du får: automation kontra resultat

Exempel: så här kan det se ut

Säg att du producerar 5 Shorts i veckan. Manuellt är det vanligt att lägga cirka 20 minuter på att skriva, 20 minuter på att samla visuellt material, 20 minuter på att spela in eller generera röst och ytterligare 20 minuter på att redigera och exportera. Det är ungefär 1,5 timme per video, alltså runt 7 timmar i veckan. Med det här flödet skickar du in ett formulär (2 minuter) och låter sedan automationsflödet jobba medan JsonCut renderar (flödet noterar att processningen tar 1–2 minuter, så räkna med cirka 2 minuter). Du granskar fortfarande innan publicering, men grovjobbet är gjort.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
  • JsonCut API för att komponera och rendera den färdiga videon.
  • OpenAI API för att generera manus och berättarröst (TTS).
  • Google Gemini API för att skapa tematiska bakgrundsbilder.
  • NocoDB (valfritt) för att spara och hantera videoposter.
  • JsonCut API-nyckel (hämta den från app.jsoncut.com).

Kunskapsnivå: Medel. Du behöver vara bekväm med att lägga in API-nycklar, testköra och justera prompter utan att sabba flödet.

Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).

Så fungerar det

En formulärinlämning sätter igång allt. Du fyller i tema, miljö och stilpreferenser en gång, och sedan börjar n8n sätta ihop hela produktionspaketet i bakgrunden.

Manus och visuell plan genereras tillsammans. ChatGPT tar fram berättartext och en lista med bildprompter, vilket gör att det visuella följer berättelsen i stället för att kännas slumpmässigt.

Assets skapas och laddas upp automatiskt. Google Gemini genererar bildvarianter, OpenAI skapar berättarrösten och flödet hämtar ett CC-licensierat ambient spår från Openverse. Allt (inklusive en vattenmärkesasset) laddas upp via HTTP-anrop till JsonCut så att det kan byggas ihop konsekvent.

JsonCut renderar, n8n övervakar och hämtar sedan den färdiga filen. Flödet startar ett renderjobb, väntar, kontrollerar status och hanterar fel. När det är klart laddar det ner resultatet och sparar en post i NocoDB så att du hittar det senare utan gissningar.

Du kan enkelt ändra promptstilen och JsonCut-kompositionsinställningarna för att matcha olika nischer, varumärkesriktlinjer eller plattformsspecifika format. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementering

Steg 1: Konfigurera formulärtriggern

Konfigurera formuläret som fångar in indata för videokonceptet och startar arbetsflödet.

  1. Lägg till noden Form Input Trigger och ställ in Form Title till Social Video Production Input.
  2. Ställ in Form Description till Provide the core idea and the setting for your video. These details will guide the generation of a polished, ready-to-publish social media video..
  3. Under Form Fields skapar ni tre fält med etiketterna Video Theme, Video Setting och Image Style, som matchar platshållarna från nodkonfigurationen.
  4. Bekräfta att Form Input Trigger skickar utdata till Compose Script & Prompts, Retrieve Ambient Audio List och Fetch Watermark Asset parallellt.

Form Input Trigger skickar utdata till både Compose Script & Prompts och Retrieve Ambient Audio List och Fetch Watermark Asset parallellt.

Steg 2: Anslut primära tjänster (AI och mediauppladdningar)

Anslut autentiseringsuppgifter för AI-generering och mediauppladdningar så att arbetsflödet kan skapa resurser och skicka dem till renderings-API:t.

  1. Öppna Compose Script & Prompts och ställ in JSON Output till true. Credential Required: Anslut era openAiApi-uppgifter.
  2. I Create Image Variant ställer ni in Prompt till =Generate in the format 9:16 (no text in image): {{ $json['message.content.image_prompts'] }} och Resource till image. Credential Required: Anslut era googlePalmApi-uppgifter.
  3. I Generate Voice Narration ställer ni in Input till ={{ $json.message.content.full_text }} och Voice till echo. Credential Required: Anslut era openAiApi-uppgifter.
  4. Koppla httpHeaderAuth-uppgifter till uppladdnings- och rendernoderna: Upload Background Visuals, Upload Narration Audio, Upload Background Audio, Upload Watermark, Initiate Render Job, Query Render Status och Retrieve Output File. Credential Required: Anslut era httpHeaderAuth-uppgifter.

Compose Script & Prompts skickar utdata till både Split Image Prompt List och Generate Voice Narration parallellt.

Steg 3: Konfigurera innehållsgenerering och resursuppladdningar

Konfigurera pipelines för bild, berättarröst och ambientt ljud så att alla resurser laddas upp innan rendering.

  1. I Split Image Prompt List ställer ni in Field To Split Out till message.content.image_prompts.
  2. I Upload Background Visuals ställer ni in URL till https://api.jsoncut.com/api/v1/files/upload, Method till POST och Content Type till multipart-form-data.
  3. I Aggregate Image URLs aggregerar ni fältet data.storageUrl så att bild-URL:er lagras som en lista.
  4. I Compute Audio Length behåller ni Language som python och låter det tillhandahållna skriptet vara kvar för att beräkna duration_seconds.
  5. I Retrieve Ambient Audio List ställer ni in URL till https://api.openverse.engineering/v1/audio/ och säkerställer att query-parametrarna inkluderar q=ambiente, license=cc0,by,by-sa och format=json.
  6. I Download Random Audio ställer ni in URL till ={{ $json.results[Math.floor(Math.random() * $json.results.length)].url }}.
  7. Säkerställ att Upload Narration Audio och Upload Background Audio båda postar till https://api.jsoncut.com/api/v1/files/upload med binära fil-bodyparametrar.

Upload Background Visuals skickar utdata till Aggregate Image URLs, och Aggregate Image URLs skickar utdata till Combine Upload Streams.

Generate Voice Narration skickar utdata till Compute Audio Length, och sedan skickar Compute Audio Length utdata till Upload Narration Audio.

Retrieve Ambient Audio List skickar utdata till Download Random Audio, och sedan skickar Download Random Audio utdata till Upload Background Audio.

Fetch Watermark Asset skickar utdata till Upload Watermark.

Upload Watermark, Upload Narration Audio, Upload Background Audio och Aggregate Image URLs matas alla in i Combine Upload Streams, som sedan skickar utdata till Collect Upload Results.

⚠️ Vanlig fallgrop: Om Aggregate Image URLs inte aggregerar data.storageUrl kommer render-payloaden att misslyckas eftersom $json.upload_results[0].storageUrl inte blir en lista.

Steg 4: Konfigurera render-jobbet och pollningsloopen

Bygg render-payloaden, starta jobbet och polla tills det är klart.

  1. I Initiate Render Job ställer ni in URL till https://api.jsoncut.com/api/v1/jobs och Method till POST.
  2. Ställ in JSON Body till det angivna uttrycket och behåll alla inbäddade uttryck, inklusive {{ $('Compute Audio Length').item.json.duration_seconds }} och {{ $json.upload_results[0].storageUrl[0] }} för timing och mediasökvägar.
  3. I Delay Timer ställer ni in Unit till seconds och Amount till 3.
  4. I Query Render Status ställer ni in URL till =https://api.jsoncut.com/api/v1/jobs/{{ $('Initiate Render Job').item.json.data.jobId }}.
  5. I Validate Completion ställer ni in villkoret till att ={{ $json.data.status }} är lika med COMPLETED.

Initiate Render Job skickar utdata till Delay Timer, därefter skickar Delay Timer utdata till Query Render Status, och Query Render Status skickar utdata till Validate Completion.

Om render-jobb tar längre tid än väntat kan ni öka Delay Timer från 3 sekunder för att minska frekvensen för API-pollning.

Steg 5: Konfigurera lagring av utdata

Ladda ned den färdiga videon och lagra den i er databas.

  1. I Retrieve Output File ställer ni in URL till =https://api.jsoncut.com/api/v1/files/{{ $json.data.outputFileId }}/download och behåller svarsformatet som en fil.
  2. I Store Video Record ställer ni in Project ID och Table till era NocoDB-ID:n (ersätt [YOUR_ID]).
  3. Mappa fält i Store Video Record med uttryck: ={{ $('Form Input Trigger').item.json['Video Theme'] }}, ={{ $('Form Input Trigger').item.json['Video Setting'] || "" }} och ={{ $('Form Input Trigger').item.json['Image Style'] || "" }}.
  4. Ställ in fältet Output så att det använder Binary Data från data-egenskapen.
  5. Credential Required: Anslut era nocoDbApiToken-uppgifter i Store Video Record.

Validate Completion skickar utdata till Retrieve Output File när status är COMPLETED, och sedan skickar Retrieve Output File utdata till Store Video Record.

Steg 6: Lägg till felhantering

Stoppa arbetsflödet om renderingen misslyckas och undvik oändlig pollning.

  1. I Detect Failure behåller ni villkoren som kontrollerar att ={{ $json.data.status }} är lika med FAILED eller CANCELLED.
  2. Koppla “true”-vägen från Validate Completion till Retrieve Output File och “false”-vägen till Detect Failure.
  3. Koppla Detect Failure till Abort on Failure så att arbetsflödet stoppas med meddelandet Failed to generate image.

Om Detect Failure inte är kopplad tillbaka till Delay Timer för statusar som inte är fel, kommer pollningsloopen att stanna för tidigt och ni kommer aldrig att nå Validate Completion.

Steg 7: Testa och aktivera ert arbetsflöde

Kör ett manuellt test för att säkerställa att resurser laddas upp, att renderingen slutförs och att videon lagras korrekt.

  1. Klicka på Execute Workflow och skicka in formuläret Form Input Trigger med exempelvärden för Video Theme och Video Setting.
  2. Verifiera att Compose Script & Prompts returnerar JSON med image_prompts, full_text och text_segments.
  3. Bekräfta att Combine Upload Streams och Collect Upload Results innehåller URL:er för bilder, berättarröstljud, bakgrundsljud och vattenstämpeln.
  4. Kontrollera Query Render Status tills Validate Completion routar till Retrieve Output File.
  5. Bekräfta att Store Video Record skapar en ny rad i NocoDB med utdatafilen bifogad.
  6. När testet är lyckat, växla arbetsflödet till Active för användning i produktion.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • JsonCut-inloggningsuppgifter kan löpa ut eller vara felkonfigurerade. Om det slutar fungera, kontrollera först din n8n HTTP Header Auth-inloggning (headernamn x-api-key).
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre fram fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in ert varumärkesspråk tidigt, annars kommer du redigera output för alltid.

Vanliga frågor

Hur lång tid tar det att sätta upp den här ChatGPT-videoautomationen?

Cirka 45 minuter om dina API-nycklar är redo.

Behöver jag kunna koda för att automatisera ChatGPT-videoskapande?

Nej, ingen kodning krävs. Du klistrar mest in API-nycklar, justerar några prompter och kör testinlämningar.

Är n8n gratis att använda för det här ChatGPT-videoautomationsflödet?

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 API-användning för OpenAI, Gemini och JsonCut (oftast några cent per video, beroende på längd och inställningar).

Var kan jag hosta n8n för att köra den här automationen?

Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger dig obegränsat antal körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här ChatGPT-videoautomationsflödet efter min varumärkesstil och nisch?

Ja, och det bör du. De flesta team börjar med att redigera innehållet i ChatGPT-noden ”Compose Script & Prompts” så att hook, tempo och ordval matchar nischen (träning, B2B, fastigheter, coaching). Du kan också ändra inställningarna för bildgenerering i Google Gemini för att låsa en konsekvent art direction, och sedan justera JsonCut-render-payloaden för att ändra typsnitt, timing för överlägg och placering av vattenmärke. Om du vill ha full automation kan du byta formulärtriggern mot en trigger från Google Sheets eller en databas så att godkända idéer renderas utan manuell inlämning.

Varför misslyckas min JsonCut-anslutning i det här flödet?

Oftast är det ett problem med API-nyckeln. Generera en ny JsonCut-nyckel i app.jsoncut.com och uppdatera sedan n8n HTTP Header Auth-inloggningen med rätt headernamn (x-api-key). Om det fortfarande misslyckas, kontrollera att din JsonCut-plan har API-åtkomst aktiverad och bekräfta att request-URL:erna inte har ändrats. Rate limiting kan också dyka upp när du testkör många körningar direkt efter varandra.

Hur många videor klarar den här ChatGPT-videoautomationen?

Om du kör n8n med egen hosting finns ingen gräns för antal körningar, så det beror främst på din server och API-gränserna hos OpenAI, Gemini och JsonCut.

Är den här ChatGPT-videoautomationen bättre än att använda Zapier eller Make?

För det här flödet är n8n oftast ett bättre val eftersom du kan hantera logik i flera steg (loopar, förgreningar, retries) utan att betala extra för varje väg, och du kan köra med egen hosting för obegränsade körningar. Mönstret för renderövervakning (vänta, polla status, validera, försök igen) är också mycket enklare att styra i n8n än i de flesta ”enkla automationsverktyg”. Å andra sidan kan Zapier eller Make kännas snabbare för lätta uppgifter som ”ny rad i Sheets → skicka Slack-meddelande”. Det här flödet är mer som ett mini-produktionssystem. Om du vill ha hjälp att välja, Prata med en automationsexpert.

Sätt upp det här en gång, så slipper du ”producera videor” hela veckan. Du godkänner bara idéer och publicerar resultaten.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Launch login modal Launch register modal