Du får äntligen en bra talking-head- eller produktdemoklipp, och sedan tappar du fart när du ska få det att se “on brand” ut. Bakgrundsborttagning, compositing, export, filnamn, uppladdning, delning. Samma slit varje gång.
Marknadschefer känner av det när de snabbt behöver konsekvent material. Byråägare märker det när kunderna vill ha “bara en version till”. Och om du driver ett litet team är det oftast du som gör sista kilometerns finputs. Den här automatiseringen för videobranding gör råklipp till delningsbara, brandade videor utan allt fram och tillbaka.
Du sätter upp ett n8n-flöde som tar bort bakgrunden från en förgrundsvideo, komponerar den på en statisk brandad bild, och laddar sedan upp den färdiga videon till Google Drive med en länk du kan dela direkt.
Så fungerar den här automatiseringen
Här är hela flödet du kommer att sätta upp:
n8n Workflow Template: Videobgremover + Google drive: profilvideor snabbt
flowchart LR
subgraph sg0["Manual 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/webhook.dark.svg' width='40' height='40' /></div><br/>Webhook Trigger"]
n1@{ icon: "mdi:play-circle", form: "rounded", label: "Manual Trigger", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Extract Webhook Data", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Sample URLs (Edit Here)", 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/merge.svg' width='40' height='40' /></div><br/>Merge Triggers"]
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/>1. Create Job (Upload Foregr.."]
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/>2. Start Image Composition"]
n7["<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/>3. Check Job Status"]
n8@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Is Complete?", 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/>4. Download Video"]
n10@{ icon: "mdi:cog", form: "rounded", label: "5. Upload to Google Drive", pos: "b", h: 48 }
n11@{ icon: "mdi:swap-vertical", form: "rounded", label: "Build Success Response", pos: "b", h: 48 }
n12@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Has Failed?", pos: "b", h: 48 }
n13@{ icon: "mdi:cog", form: "rounded", label: "Wait 20s", pos: "b", h: 48 }
n14@{ icon: "mdi:swap-vertical", form: "rounded", label: "Build Error Response", pos: "b", h: 48 }
n15@{ icon: "mdi:swap-horizontal", form: "rounded", label: "From Webhook?", pos: "b", h: 48 }
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/webhook.dark.svg' width='40' height='40' /></div><br/>Respond to Webhook"]
n17@{ icon: "mdi:swap-vertical", form: "rounded", label: "Manual Test Complete", pos: "b", h: 48 }
n13 --> n7
n12 --> n14
n12 --> n13
n8 --> n9
n8 --> n12
n15 --> n16
n15 --> n17
n1 --> n3
n4 --> n5
n0 --> n2
n9 --> n10
n7 --> n8
n14 --> n15
n2 --> n4
n11 --> n15
n3 --> n4
n10 --> n11
n6 --> n7
n5 --> n6
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 n1 trigger
class n8,n12,n15 decision
class n0,n5,n6,n7,n9,n16 api
classDef customIcon fill:none,stroke:none
class n0,n4,n5,n6,n7,n9,n16 customIcon
Varför det här spelar roll: brandade videoredigeringar tar för lång tid
Manuell videostädning är lurig, för det ser inte svårt ut. Tills du gör det fem gånger i veckan. Du tar bort bakgrund i ett verktyg, exporterar, öppnar en annan editor för att lägga motivet på en brandad bild, justerar storlek, exporterar igen, laddar upp någonstans och skickar en länk. Lägg sedan till “kan du göra en andra version med en annan bakgrund?” och “vår logga behöver vara större.” Jobbet är inte kreativt; det är repetitivt och stjäl fokus från det som faktiskt driver resultat.
Friktionen byggs på. Här är var det oftast faller isär.
- Förgrundsklipp blir inkonsekventa eftersom varje editor/exportinställning skiljer sig lite.
- Det är lätt att slösa ungefär en timme per video genom att hoppa mellan verktyg, uppladdningar och länkdelning.
- Revideringar staplas när “on brand” bara finns i någons huvud, inte i en repeterbar process.
- Team kan inte skala output eftersom flödet är beroende av en specifik person som gör samma steg varje gång.
Det du bygger: auto-brandade videor uppladdade till Drive
Det här flödet tar två publika URL:er som input: en förgrundsvideo (din person, produkt eller avatar) och en bakgrundsbild (din brandade ram, gradient, kontorsmiljö, produktbakgrund). n8n skickar förgrundsvideon till VideoBGRemover via HTTP Request för att ta bort bakgrunden automatiskt. När jobbet är skapat startar flödet en compositing-begäran som centrerar motivet på den valda bilden och bevarar bildförhållandet så att resultatet inte ser utdraget eller “fel” ut. Sedan kontrollerar det jobbstatus i en loop med en kort väntan, hämtar den färdiga videon när den är klar och laddar upp slutklippet till Google Drive. Du avslutar med en korrekt formaterad Drive-fil och en delningsbar länk som är enkel att släppa in i Slack, mejl, en kundportal eller en innehållskalender.
Flödet kan starta från en webhook (så att ditt team eller ett annat verktyg kan trigga det), eller från en manuell körning för test. Det slår ihop inputs, kör VideoBGRemover-bearbetningen, väntar tills det är klart och pushar sedan den färdiga tillgången till Google Drive med ett strukturerat lyckat (eller fel) svar.
Det du bygger
| Det som automatiseras | Det du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du skapar 5 korta klipp i veckan för annonser eller sociala medier, och att varje klipp behöver bakgrundsborttagning, en brandad komposition, export och uppladdning till Drive. Manuellt blir det ofta runt en timme per klipp när du räknar in revideringar och filhantering, så du lägger ungefär 5 timmar i veckan på “paketering”. Med det här flödet kan du trigga en körning på en minut eller två genom att klistra in två URL:er och sedan vänta medan bearbetningen körs (oftast några minuter per minut video). Den manuella tiden sjunker till cirka 10 minuter per klipp, och din Drive-länk är klar när renderingen är färdig.
Innan du börjar
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- VideoBGRemover för bakgrundsborttagning och compositing-API
- Google Drive för att lagra output och dela länkar
- VideoBGRemover API-nyckel (hämta den från videobgremover.com/api-management)
Kunskapsnivå: Nybörjare. Du klistrar in URL:er, kopplar Drive och lägger till en API-nyckelvariabel.
Vill du att någon bygger det här åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
En webhook eller manuell körning ger inputs. För automatisering anropar ett annat verktyg (eller ett enkelt formulär) n8n-webhooken med din URL till förgrundsvideo och din URL till bakgrundsbild. För test kör du manuellt med noden för inbyggda exempellänkar.
Flödet strukturerar och kombinerar datan. n8n parsar webhook-payloaden (eller exempelvärden), och slår sedan ihop dem till en konsekvent uppsättning fält så att varje efterföljande anrop vet exakt var den ska leta.
VideoBGRemover bearbetar klippet och bygger kompositionen. Först skapar n8n ett bearbetningsjobb via HTTP Request. Därefter startar det bildkompositionen så att motivet centreras på din statiska bakgrundsbild och bildförhållandet förblir intakt.
n8n väntar tills det är klart och laddar sedan upp till Google Drive. En kort vänteloop kontrollerar status tills jobbet är klart (eller misslyckas), hämtar sedan den färdiga videon och laddar upp den till Drive. Outputen innehåller ett lyckat svar med fildetaljer, eller ett felmeddelande du kan agera på.
Du kan enkelt justera inputs (till exempel vilken brandad bakgrund som används) för att passa olika kampanjer. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: konfigurera webhook-triggern
Konfigurera inkommande webhook så att externa system kan skicka URL:er för video och bakgrundsbild.
- Lägg till och öppna Incoming Webhook Start.
- Ställ in HTTP Method på
POST. - Ställ in Path på
compose-video-image. - Ställ in Response Mode på
Response Nodeså att Return Webhook Result kan svara.
Steg 2: förbered indata-källor (webhook vs manuellt)
Normalisera indata från antingen webhook-payloaden eller manuella testdata och slå ihop dem till ett och samma flöde.
- I Parse Webhook Payload ställer ni in foreground_video_url till
{{ $json.body?.foreground_video_url ?? $json.foreground_video_url ?? 'https://videos.videobgremover.com/public-videos/assets/ai-actor.mp4' }}. - Ställ in background_image_url till
{{ $json.body?.background_image_url ?? $json.background_image_url ?? 'https://drive.google.com/uc?id=[YOUR_ID]' }}. - Ställ in source till
webhooki Parse Webhook Payload. - I Manual Sample Links ställer ni in foreground_video_url till
https://videos.videobgremover.com/public-videos/assets/ai-actor.mp4och background_image_url tillhttps://drive.google.com/uc?id=[YOUR_ID], och ställer sedan in source tillmanual. - I Combine Inputs ställer ni in Mode till
appendför att slå ihop webhook- och manuella flöden.
Steg 3: skapa och starta videobearbetningsjobbet
Skapa ett jobb för bakgrundsborttagning och starta bildkompositionen med de sammanslagna indata.
- I Create Processing Job ställer ni in URL till
https://api.videobgremover.com/api/v1/jobsoch Method tillPOST. - Ställ in JSON Body till
{ "video_url": "{{ $json.foreground_video_url }}" }. - Ställ in Header Parameters så att de inkluderar X-API-Key med värdet
{{ $vars.VIDEOBGREMOVER_KEY }}och Content-Type tillapplication/json. - I Launch Image Composite ställer ni in URL till
https://api.videobgremover.com/api/v1/jobs/{{ $json.id }}/start. - Ställ in JSON Body till den angivna kompositions-payloaden, inklusive
{{ $('Combine Inputs').item.json.background_image_url }}för background_url, och säkerställ att export_format ärh264med export_presetmedium. - Bekräfta att Header Parameters i Launch Image Composite inkluderar X-API-Key som
{{ $vars.VIDEOBGREMOVER_KEY }}.
$vars.VIDEOBGREMOVER_KEY. Säkerställ att denna miljövariabel är satt i er n8n-instans, annars kommer både Create Processing Job och Launch Image Composite att misslyckas.Steg 4: polla status och routa lyckat/misslyckat
Kontrollera jobbstatus, loopa tills det är klart och routa till spåret för lyckat resultat eller fel.
- I Check Job Progress ställer ni in URL till
https://api.videobgremover.com/api/v1/jobs/{{ $('Create Processing Job').item.json.id }}/statusoch behåller Method somGET. - Säkerställ att Check Job Progress inkluderar X-API-Key med värdet
{{ $vars.VIDEOBGREMOVER_KEY }}i Header Parameters. - I Completion Status Check bekräftar ni att villkoret jämför
{{ $json.status }}medcompleted. - I Failure Status Check bekräftar ni att villkoret jämför
{{ $json.status }}medfailed. - I Delay 20 Seconds ställer ni in Unit till
secondsoch Amount till20för att fortsätta polla när status varken är completed eller failed.
Steg 5: ladda upp resultatet och sätt ihop utdata
Ladda ner den renderade videon, ladda upp den till Google Drive och bygg payloaden för lyckat resultat eller fel för slutsvaret.
- I Fetch Result Video ställer ni in URL till
{{ $json.processed_video_url }}och säkerställer att svarsformatet är en fil. - I Upload to Drive ställer ni in Operation till
uploadoch Binary Property Name tilldata. - Ställ in Name i Upload to Drive till
composed_video_{{ $('Create Processing Job').item.json.id }}_{{ new Date().getTime() }}.mp4och behåll Drive somMy Driveoch Folder somrootom ni inte föredrar en annan plats. - I Assemble Success Output behåller ni konstruktionen av objektet final_result så att det inkluderar Google Drive-ID, URL och den bearbetade video-URL:en.
- I Assemble Error Output behåller ni konstruktionen av objektet final_result så att det inkluderar status, feldetaljer och källa.
Steg 6: returnera resultat för webhook- eller manuella körningar
Routa utdata tillbaka till webhook-anroparen eller returnera ett manuellt testresultat beroende på indatakälla.
- I Webhook Source Check bekräftar ni att villkoret kontrollerar att
{{ $json.final_result?.source ?? $json.source }}är lika medwebhook. - I Return Webhook Result ställer ni in Response Body till
{{ $json.final_result ?? $json }}och Response Code till200. - I Manual Output Ready ställer ni in final_result till
{{ $json.final_result ?? $json }}för enkel inspektion vid manuella körningar.
Steg 7: testa och aktivera ert workflow
Validera både manuella körningar och webhook-styrda körningar innan ni aktiverar användning i produktion.
- Klicka på Execute Workflow och trigga Manual Run Launcher för att testa med Manual Sample Links.
- Bekräfta att workflowet når Upload to Drive och att Assemble Success Output inkluderar en
google_drive_urlochdownload_url. - Skicka en POST-begäran till
/webhook/compose-video-imagemed JSON-fältenforeground_video_urlochbackground_image_urlför att testa webhook-spåret. - Verifiera att Return Webhook Result svarar med
success: truenär det är klart, eller felobjektet från Assemble Error Output vid fel. - När testerna passerar växlar ni workflowet till Active för att börja hantera produktionsförfrågningar.
Felsökningstips
- VideoBGRemover-inloggningsuppgifter kan gå ut eller klistras in fel. Om anrop börjar misslyckas, kontrollera att din
VIDEOBGREMOVER_KEY-variabel i n8n Inställningar → Variabler matchar det som står på din VideoBGRemover-sida för API-hantering. - Om du använder Wait-noder eller extern rendering varierar bearbetningstiderna. Öka väntetiden om efterföljande noder misslyckas på tomma svar.
- Uppladdningar till Google Drive kan misslyckas om det anslutna kontot saknar åtkomst till målmappen. Öppna noden “Upload to Drive”, kontrollera mappvalet igen och auktorisera anslutningen på nytt om den skapades under en annan Google Workspace.
Snabba svar
Cirka 7 minuter om du redan har dina konton redo.
Nej. Du kopplar mest konton, lägger till en API-nyckel och klistrar in ett par exempel-URL:er för att testa.
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 VideoBGRemover-API:et, som ligger på cirka 0,50–2,00 USD per minut bearbetad 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ärd och hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det vill du sannolikt. De flesta team byter bakgrundsbildens URL för att matcha en kampanj, ett event eller ett kundvarumärke, och behåller resten identiskt. Du kan också ändra hur inputs kommer in genom att använda webhook-sökvägen i produktion och noden “Manual Sample Links” för snabb testning. Om du vill att output ska hamna i en specifik Drive-mapp per kund, justera noden “Upload to Drive” och skicka ett mapp-ID i webhook-payloaden.
Oftast är det ett API-nyckelproblem. Generera en ny nyckel i VideoBGRemover och uppdatera sedan variabeln VIDEOBGREMOVER_KEY i n8n. Kontrollera också att dina input-URL:er är publikt åtkomliga; privata Drive-länkar och utgående signerade URL:er är vanliga orsaker. Om du bearbetar många videor back-to-back kan du också slå i rate limits eller hamna i längre bearbetningsköer.
Om du self-hostar n8n finns ingen körningsgräns (det beror främst på din server och VideoBGRemovers bearbetningstid). På n8n Cloud beror din gräns på planens månatliga körningar, och det här flödet använder vanligtvis en handfull körningar per video eftersom det kontrollerar jobbstatus i en loop. I praktiken kör team detta utan problem för dagligt innehåll och kampanjtoppar, och skalar sedan genom att glesa ut jobben eller uppgradera planen.
Ofta, ja, eftersom det här inte är ett enkelt “skicka fil från A till B”. Du skapar ett bearbetningsjobb, startar en komposition, väntar, kontrollerar status, hämtar resultatet, och du behöver dessutom tydlig förgrening för lyckat vs. misslyckat. n8n hanterar den typen av logik utan att kännas begränsat, och self-hosting kan vara avgörande om du kör många renderingar. Zapier och Make kan fungera, men flöden med polling i flera steg tenderar att bli dyra eller pilliga. Om du är osäker, prata med en automationsexpert så får du en rak rekommendation.
När detta är live slutar brandade leveranser att vara en flaskhals. Du matar in två URL:er, och flödet gör det repetitiva jobbet så att du kan fokusera på budskapet, inte på maskningen.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.