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

Google Sheets + Google Drive, publicera videor överallt

Rickard Andersson Partner, Nodenordic.se

Att publicera videor ska inte kännas som att du måste barnvakta ett dussin flikar. Men om du laddar upp, döper om filer, hämtar länkar, laddar upp igen och sedan försöker komma ihåg vad som gick live var, blir det snabbt ett dagligt slit.

Den här automatiseringen för Google Sheets posting träffar sociala medier-ansvariga först, ärligt talat. Men byråägare som jonglerar kundkalendrar och marknadsförare på småföretag som försöker vara konsekventa känner också av det. Du får en tracker, en process och långt färre “vänta, publicerade vi det där?”-ögonblick.

Du får se hur det här flödet använder Google Sheets som en kontrollpanel, hämtar källvideor, förlänger dem med AI, slår ihop slutklippet, sparar det i Google Drive och publicerar på TikTok, Instagram, Facebook, LinkedIn, X och YouTube.

Varför detta är viktigt: publicering på flera plattformar blir snabbt rutinjobb

När din innehållspipeline är “gör en video och lotsa den manuellt mellan plattformar” går allt långsammare. Du lägger din bästa energi på filhantering i stället för kreativ testning. Och det värsta är osäkerheten. En video kan vara exporterad, men inte publicerad. Den kan vara publicerad, men inte loggad. Eller så tar någon en gammal version från en chatttråd och laddar upp fel klipp. Efter några veckor slutar ditt kalkylark (eller anteckningsapp) vara en källa till sanning och blir mer av en grov fingervisning.

Det summeras snabbt. Här är var det oftast fallerar i riktiga team.

  • Att ladda upp till sex eller sju kanaler en och en kan lätt ta runt en timme per färdig video när du räknar in titlar, omförsök och länkspårning.
  • Status blir otydlig, så folk laddar upp samma fil igen eller publicerar två gånger eftersom ingen litar på trackern.
  • När AI-videverktyg tar tid att rendera måste någon fortsätta kolla, vilket gör “automation” till konstant övervakning.
  • Slutliga tillgångar hamnar utspridda på skrivbord och i molnmappar, vilket gör godkännanden, återanvändning och återbruk svårare än det behöver vara.

Så fungerar automatiseringen

Här är hela flödet du kommer att sätta upp:

n8n Workflow Template: Google Sheets + Google Drive, publicera videor överallt

Det här bygger du: ett ark som förlänger, slår ihop, lagrar och publicerar videor

Det här flödet gör Google Sheets till en enkel produktionskö. Du lägger in en URL till källvideon, en prompt och en mållängd. Därifrån hämtar n8n källan, extraherar sista bildrutan (så förlängningen matchar looken) och skickar den bildrutan plus din prompt till en AI-modell (Kling 2.1 via RunPod i den här versionen). Eftersom videogenerering inte är omedelbar väntar flödet och kontrollerar status tills klippet faktiskt är klart. Sedan slår det ihop originalet och det förlängda klippet, laddar upp slutfilen till Google Drive och publicerar resultatet via verktyg för social publicering (Postiz för TikTok, Instagram, Facebook, LinkedIn, X och YouTube, plus Upload-Post för YouTube). Till sist skriver det tillbaka URL:er och klarmarkeringar i samma ark så att du ser vad som hände utan att gissa.

Flödet startar med en manuell körning (ett klick) och läser nästa rad från Google Sheets. Det loopar genom steg för “rendera, kontrollera, vänta” tills tillgångarna är klara och avslutar sedan med lagring i Drive och publicering på flera plattformar. Ditt kalkylark blir en live-tracker i stället för en inaktuell checklista.

Det här bygger du

Förväntade resultat

Säg att du publicerar 5 videor i veckan på sex kanaler (TikTok, Instagram, Facebook, LinkedIn, X och YouTube). Om manuell publicering och loggning tar cirka 10 minuter per kanal är det ungefär 5 timmar i veckan bara för att trycka ut filer och spåra länkar. Med det här flödet är ditt “arbete” att uppdatera en rad i Google Sheets och köra flödet, vilket oftast tar 5 minuter. Rendering och sammanslagning tar fortfarande tid, men du sitter inte där och gör det, så du får tillbaka merparten av de timmarna.

Innan du börjar

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
  • Google Sheets som fungerar som din kontrollpanel för innehåll.
  • Google Drive för att lagra sammanslagna slutvideor centralt.
  • Fal.ai API-nyckel (hämta den i din fal.ai-dashboard) för frame-extraktion och sammanslagning.
  • RunPod API-nyckel (hämta den i ditt RunPod-konto) för att generera det förlängda klippet via Kling 2.1.
  • Postiz-konto för att publicera till TikTok, Instagram, Facebook, LinkedIn, X och YouTube.
  • Upload-Post-konto för att publicera till YouTube i flödets YouTube-spår.

Kunskapsnivå: Medel. Du kopplar några konton, klistrar in API-nycklar och verifierar att kalkylarkets kolumner matchar flödet.

Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).

Steg för steg

Du triggar en körning från n8n. Flödet startar med en manuell start och hämtar sedan nästa källvideo och dess inställningar från Google Sheets (dina fält START URL, PROMPT och DURATION).

Bildrutor och promptar förbereds för AI. n8n begär den sista bildrutan via Fal.ai, väntar en kort stund och kontrollerar sedan status tills bildrutan är klar. Den bildrutan blir “ankaret” för förlängningen så att det nya klippet smälter ihop med det du redan har.

Det förlängda klippet genereras och spåras. Flödet anropar AI-videomodellen via RunPod och loopar sedan igenom vänta-och-kolla-steg (som den inbyggda “Pause 60 Seconds” plus statuskontroller) tills klippet faktiskt är klart. När det är redo skrivs klippets URL tillbaka till Google Sheets.

Allt slås ihop, lagras och publiceras. n8n bygger en merge-lista, slår ihop originalet plus det genererade segmentet via Fal.ai, laddar ner slutfilen, laddar upp den till Google Drive och skickar den sedan till Postiz och Upload-Post för distribution. Slutlig URL och status går tillbaka till Google Sheets så att din tracker förblir korrekt.

Du kan enkelt ändra vilka plattformar som publiceras automatiskt (eller bara spara till Drive) utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: konfigurera den manuella triggern

Det här arbetsflödet startas manuellt så att ni kan köra processen för videoextension vid behov.

  1. Lägg till noden Manual Launch Trigger som arbetsflödets trigger.
  2. Behåll standardinställningarna i Manual Launch Trigger (inga parametrar krävs).
  3. (Valfritt) Behåll sticky note Flowpast Branding för tydligare dokumentation.

Steg 2: anslut Google Sheets för indata och utdata

Google Sheets hanterar källindata och lagrar clip- och slut-URL:er.

  1. Öppna Fetch Source Video och välj ert kalkylark i Document med värdet [YOUR_ID], och ställ in Sheet till gid=0. Credential Required: Anslut era googleSheetsOAuth2Api-credentials.
  2. I Fetch Source Video behåller ni filtret på VIDEO URL för att hitta rader för bearbetning.
  3. Öppna Write Clip URL och ställ in Operation till update. Mappa VIDEO URL till {{ $json.output.result }} och row_number till {{ $('Fetch Source Video').item.json.row_number }}. Credential Required: Anslut era googleSheetsOAuth2Api-credentials.
  4. Öppna Fetch Merge List och bekräfta filtret på MERGE, med Document [YOUR_ID] och Sheet gid=0. Credential Required: Anslut era googleSheetsOAuth2Api-credentials.
  5. Öppna Write Final URL och ställ in Operation till update. Mappa FINAL VIDEO till {{ $json.video.url }}, MERGE till x, VIDEO URL till =, och row_number till {{ $('Fetch Source Video').item.json.row_number }}. Credential Required: Anslut era googleSheetsOAuth2Api-credentials.
⚠️ Vanlig fallgrop: Ersätt alla platshållare [YOUR_ID] i Fetch Source Video, Write Clip URL, Fetch Merge List och Write Final URL med era faktiska Google Sheet-ID:n, annars hittar arbetsflödet inte er data.

Steg 3: konfigurera frame-extrahering och clip-generering

Det här segmentet extraherar sista framen, genererar ett förlängt clip och övervakar status med vänteloopar.

  1. I Map Input Fields ställer ni in tilldelningarna till {{ $json.PROMPT }} för prompt, {{ $json.DURATION }} för duration och {{ $json.START }} för video.
  2. Konfigurera Pull Final Frame med URL https://queue.fal.run/fal-ai/ffmpeg-api/extract-frame och JSON Body satt till { "video_url": "{{ $json.video }}", "frame_type": "last" }. Credential Required: Anslut era httpHeaderAuth-credentials.
  3. Behåll Pause 10 Seconds inställd på 10 och bekräfta att Check Frame Status använder URL https://queue.fal.run/fal-ai/ffmpeg-api/requests/{{ $('Pull Final Frame').item.json.request_id }}/status. Credential Required: Anslut era httpHeaderAuth-credentials.
  4. I Frame Ready? behåller ni villkoret som kontrollerar att {{ $json.status }} är lika med COMPLETED för att loopa tills framen är klar.
  5. Ställ in Retrieve Frame Output till URL https://queue.fal.run/fal-ai/ffmpeg-api/requests/{{ $json.request_id }}. Credential Required: Anslut era httpHeaderAuth-credentials.
  6. Konfigurera Create Extended Clip med URL https://api.runpod.ai/v2/kling-v2-1-i2v-pro/run och JSON Body som refererar till {{ $('Fetch Source Video').item.json.PROMPT }}, {{ $json.images[0].url }} och {{ $('Fetch Source Video').item.json.DURATION }}. Credential Required: Anslut era httpBearerAuth-credentials.
  7. Behåll Pause 60 Seconds inställd på 60 och säkerställ att Check Clip Status använder https://api.runpod.ai/v2/kling-v2-1-i2v-pro/status/{{ $json.id }}. Credential Required: Anslut era httpBearerAuth-credentials (httpHeaderAuth är också kopplat men krävs inte för URL:en).
  8. I Clip Ready? behåller ni villkoret att {{ $json.status }} är lika med COMPLETED, och skickar sedan vidare till Write Clip URL.
Det här arbetsflödet använder flera httpRequest-noder (11 totalt). Om ni byter API:er, uppdatera alla relaterade URL:er och credentials konsekvent för att undvika felmatchade auth headers.

Steg 4: konfigurera merge-assemblering och insamling av slutlig URL

När clipet har genererats bygger arbetsflödet en merge-lista, kombinerar videor och hämtar den slutliga URL:en.

  1. I Build Merge URL List behåller ni JavaScript-koden som output:ar urls från item.START och item["VIDEO URL"].
  2. Ställ in Combine Video Segments med URL https://queue.fal.run/fal-ai/ffmpeg-api/merge-videos och JSON Body { "video_urls": {{ JSON.stringify($json.urls) }}, "target_fps": 24 }. Credential Required: Anslut era httpHeaderAuth-credentials.
  3. Behåll Pause 30 Seconds inställd på 30 och säkerställ att Check Merge Status använder https://queue.fal.run/fal-ai/ffmpeg-api/requests/{{ $('Combine Video Segments').item.json.request_id }}/status. Credential Required: Anslut era httpHeaderAuth-credentials.
  4. I Merge Ready? behåller ni villkoret att {{ $json.status }} är lika med COMPLETED för att fortsätta till Retrieve Final URL.
  5. Konfigurera Retrieve Final URL med URL https://queue.fal.run/fal-ai/ffmpeg-api/requests/{{ $json.request_id }}. Credential Required: Anslut era httpHeaderAuth-credentials.
  6. Bekräfta att Write Final URL skriver output till ert ark innan Download Final File använder {{ $('Retrieve Final URL').item.json.video.url }}.
Om merge-processen stannar, verifiera att input-ordningen i Build Merge URL List (START och sedan VIDEO URL) matchar er tänkta videosekvens.

Steg 5: konfigurera distributionsutdata och parallell leverans

När den slutliga filen har laddats ned levererar arbetsflödet asseten till Google Drive, YouTube och Postiz parallellt.

  1. Ställ in Download Final File med URL {{ $('Retrieve Final URL').item.json.video.url }} för att hämta den färdiga videofilen.
  2. Download Final File skickar output till Store in Drive, Post to YouTube och Send to Postiz Upload parallellt – verifiera att alla tre kopplingar finns innan ni testar.
  3. I Store in Drive behåller ni filnamnsmönstret {{ $now.format('yyyyLLddHHmmss') }}-{{ $('Retrieve Final URL').item.json.video.file_name }} och ställer in Folder till [YOUR_ID]. Credential Required: Anslut era googleDriveOAuth2Api-credentials.
  4. I Post to YouTube behåller ni URL https://api.upload-post.com/api/upload och säkerställer att multipart-fälten inkluderar platform[] satt till youtube. Credential Required: Anslut era httpHeaderAuth-credentials.
  5. I Send to Postiz Upload behåller ni URL https://api.postiz.com/public/v1/upload och mappar filfältet till data. Credential Required: Anslut era httpHeaderAuth-credentials.
  6. I Publish Social Post behåller ni Date-uttrycket {{ $now.format('yyyy-LL-dd') }}T{{ $now.format('HH:ii:ss') }} och mediareferenserna {{ $json.id }} och {{ $json.path }}. Credential Required: Anslut era postizApi-credentials.
⚠️ Vanlig fallgrop: Ersätt platshållarvärden som XXX och [YOUR_ID] i Publish Social Post och Post to YouTube innan ni kör, annars misslyckas inlägg/uppladdningar.

Steg 6: testa och aktivera ert arbetsflöde

Kör ett manuellt test för att validera hela pipeline:en för videoextension innan ni aktiverar den för produktion.

  1. Klicka på Execute Workflow och trigga Manual Launch Trigger för att köra ett fullständigt test med en exempelrad i ert Google Sheet.
  2. Bekräfta att Write Clip URL uppdaterar cellen VIDEO URL och att Write Final URL skriver output för FINAL VIDEO i samma rad.
  3. Verifiera att Download Final File producerar output och att Store in Drive, Post to YouTube och Send to Postiz Upload alla tar emot filen parallellt.
  4. När körningen är lyckad, växla arbetsflödet till Active för produktionsanvändning.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Felsökningstips

  • Behörigheter i Google Sheets eller Google Drive är en vanlig fallgrop. Om flödet inte kan läsa rader eller skriva URL:er, kontrollera OAuth-anslutningen igen i n8n:s credentials för Google-noderna.
  • Om du använder Wait-noder eller extern rendering varierar behandlingstiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • Fal.ai- eller RunPod-anrop misslyckas om din API-nyckel saknas, har gått ut eller blockeras av faktureringsgränser. Börja med att kontrollera Authorization-headern i relevanta HTTP Request-noder (frame-extraktion, klippgenerering och sammanslagning).

Snabba svar

Hur lång tid tar det att sätta upp den här Google Sheets posting-automatiseringen?

Cirka en timme om dina konton och API-nycklar är redo.

Krävs kodning för den här publiceringsautomatiseringen?

Nej. Du kopplar mest konton och klistrar in API-nycklar i HTTP Request-noderna.

Är n8n gratis att använda för det här Google Sheets posting-flö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 användning av Fal.ai och RunPod, eftersom videogenerering och rendering är betalda API:er.

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

Två alternativ: n8n Cloud (hanterat, enklast att sätta upp) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och klarar n8n bra. Egen hosting ger dig obegränsade körningar men kräver grundläggande serveradministration.

Kan jag anpassa det här Google Sheets posting-flödet för andra use cases?

Ja, det är byggt för det. Du kan behålla Google Sheets som kontrollpanel men byta AI-leverantör genom att redigera HTTP Request-noderna som används för “Create Extended Clip” och statuskontrollerna. Vanliga anpassningar är att bara publicera till Drive (inga sociala kanaler), ändra logiken för titel/caption före Postiz eller hoppa över merge-steget när du bara vill ha det genererade klippet.

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

Oftast är det ett OAuth-behörighetsproblem eller att fel Google-konto är anslutet. Återanslut Google Sheets-credential i n8n och bekräfta sedan att sheet-ID och worksheet-/fliknamn matchar vad noden förväntar sig. Kontrollera också om någon har ändrat kolumnrubriker (som START, PROMPT eller DURATION), eftersom flödet mappar fält baserat på de namnen. Om det fungerade tidigare och plötsligt slutade är utgångna tokens nästa misstänkta.

Vilken volym kan det här Google Sheets posting-flödet hantera?

Det beror mer på renderingstid och dina API-gränser än på n8n i sig. På n8n Cloud Starter kan du köra en bra mängd körningar per månad för små team, och högre planer hanterar mer. Om du hostar själv är körningar inte begränsade, men din server måste fortfarande vänta på långkörande videojobb. I praktiken lägger de flesta team videor i kö i batchar (till exempel 10 åt gången) och låter statuskontrollerna rulla tills varje jobb är klart.

Är den här Google Sheets posting-automatiseringen bättre än att använda Zapier eller Make?

Ofta, ja, eftersom det här flödet bygger på långkörande jobb, loopande statuskontroller och filhantering. Zapier och Make kan göra delar av det, men du landar vanligtvis i att sy ihop flera scenarier och betala mer när volymen växer. n8n är också enklare att hosta själv, vilket spelar roll när du vill ha många körningar utan överraskningsfakturor. Samtidigt: om du bara behöver “rad i Sheet → ladda upp till ett ställe” är de verktygen snabba att sätta upp. Om du är osäker, prata med en automationsexpert och få en rak rekommendation för din stack.

När det här väl rullar blir ditt kalkylark operativsystemet för distribution. Flödet tar hand om de repetitiva delarna, och du får tillbaka din tid (och ditt fokus).

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