Du publicerar äntligen en video, och sedan börjar det riktiga jobbet. Att skumma igenom en timme material bara för att hitta 6 riktigt bra klippögonblick är tröttsamt – och ärligt talat är det där bra innehåll ofta dör.
Content marketers känner detta när de behöver veckovisa shorts. YouTube-skapare känner det när konsekvens är viktigt. Och byråredigerare fastnar i ”timestamp-arkeologi” i stället för att leverera. Den här automatiseringen för YouTube-klippstämplar ger dig en strukturerad shortlist med de mest intensiva ögonblicken, redo att klippa.
Du får se hur workflowet tar ett YouTube-video-ID, hämtar intensitetsmarkörer, filtrerar fram de bästa ögonblicken och loggar resultaten till Google Sheets så att du kan gå direkt till redigering.
Så fungerar automatiseringen
Hela n8n-workflowet, från trigger till slutligt utdata:
n8n Workflow Template: YouTube till Google Sheets: bästa klipptidskoder
flowchart LR
subgraph sg0["Flow 1"]
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/>External API Call"]
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Unpack Markers", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Validate Intensity Data", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Handle Missing Intensity", pos: "b", h: 48 }
n4@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter High Intensity", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Remove Nearby Moments", pos: "b", h: 48 }
n6@{ icon: "mdi:swap-vertical", form: "rounded", label: "Assign Input Fields", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "Collect Moments", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format Moment Text", 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/webhook.dark.svg' width='40' height='40' /></div><br/>Incoming Webhook Trigger"]
n10@{ icon: "mdi:swap-vertical", form: "rounded", label: "Convert Millis to Secs", pos: "b", h: 48 }
n11@{ icon: "mdi:swap-vertical", form: "rounded", label: "Assemble Response", 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/webhook.dark.svg' width='40' height='40' /></div><br/>Return Empty Result"]
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/webhook.dark.svg' width='40' height='40' /></div><br/>Send Moments Response"]
n9 --> n6
n7 --> n11
n1 --> n4
n0 --> n2
n6 --> n0
n4 --> n10
n11 --> n13
n2 --> n1
n2 --> n3
n10 --> n5
n8 --> n7
n3 --> n12
n5 --> n8
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 n2,n4,n5 decision
class n0,n9,n12,n13 api
classDef customIcon fill:none,stroke:none
class n0,n9,n12,n13 customIcon
Problemet: att hitta klippvärda ögonblick tar en evighet
De flesta team har inga problem med att publicera en lång YouTube-video. De har problem med att återanvända den. Du vill åt ”åh, där är ögonblicket”-delarna: de stora reaktionerna, punchlines, dramatiska vändningar, toppar i energi. Men om du inte redan tog anteckningar under inspelningen slutar det med att du tittar om ditt eget innehåll i 1,5x, pausar, spolar tillbaka och slänger in röriga tidsstämplar i en anteckningsapp. Sedan måste du fortfarande skicka dem till någon annan, förklara kontext och hoppas att redigeraren väljer rätt sektioner.
Inget av detta är svårt. Det är bara obarmhärtigt. Här är var det brukar fallera.
- Att titta igenom en 30–60 minuters video för att ”hitta guldkornen” kan lätt ta runt 2 timmar när du räknar in pauser och anteckningar.
- Tidsstämplar fångas i slumpmässiga format, vilket gör att redigerare lägger tid på att konvertera ”12:3” till något användbart.
- Du hittar ett grymt ögonblick och glömmer sedan varför det var viktigt när du väl lämnar över.
- När du saknar en repeterbar process blir återanvändning valfritt – och valfritt skalar aldrig.
Lösningen: hitta engagerande tidsstämplar och logga dem i Sheets
Det här n8n-workflowet gör ”hitta de bästa klippögonblicken” till en enkel input-output-process. Du skickar ett YouTube-video-ID till en webhook-URL (det fungerar som en liten API-endpoint som du kan anropa från en webbläsare eller ett annat verktyg). Workflowet hämtar ”intensitets”-markörer från en extern tjänst och kontrollerar sedan om datan faktiskt finns för videon. Om den gör det packar det upp markerlistan, filtrerar fram högintensiva ögonblick, tar bort tidsstämplar som ligger för nära varandra och konverterar tidsvärdena till sekunder så att de är enkla att använda i redigeringsverktyg. Till sist formaterar det shortlisten och returnerar ögonblicken i ett strukturerat svar som du kan logga till Google Sheets för din klippkö.
Workflowet startar när du anropar webhooken med ?ytID=YOUR_VIDEO_ID. Därifrån hämtar det markördata, snävar in till de bästa kandidaterna och formaterar en kompakt lista med klipptidsstämplar. Om en video saknar intensitetsmarkörer svarar det med ett tomt resultat i stället för att krascha.
Det du får: automatisering vs. resultat
| Det här workflowet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du publicerar 3 långformatvideor i veckan och vill ha 5 shorts från varje. Manuell jakt på de där 15 ögonblicken innebär ofta att du tittar om stora delar av varje video, vilket kan bli runt 6 timmar skumning och anteckningar per vecka. Med det här workflowet klistrar du in YouTube-ID:t i webhook-URL:en, väntar en minut eller två på bearbetning och granskar sedan en shortlist i Google Sheets. Du väljer fortfarande vinnarna, men du slutar leta efter dem.
Det du behöver
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- YouTube-video-ID för att identifiera vilken video som ska analyseras
- Google Sheets för att lagra och dela shortlisten
- OpenAI API-nyckel (hämta den från din OpenAI-kontopanel)
Svårighetsgrad: Nybörjare. Du klistrar in en webhook-URL, kopplar Google Sheets och testar med ett riktigt YouTube-ID.
Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).
Så fungerar det
Webhook-anrop med ett video-ID. Du anropar workflowets produktions-webhook-URL och skickar med en parameter som ?ytID=IZsQqarWXtYy. Den enda inputen talar om för workflowet vad som ska analyseras.
Uppslag av intensitetsmarkörer. n8n skickar en HTTP-förfrågan till en extern tjänst som exponerar markördata för vissa videor. Workflowet kontrollerar direkt om svaret innehåller intensitetsdata, eftersom vissa videor helt enkelt inte har det.
Filtrering till ögonblick som är värda att klippa. Markörernas tidsstämplar delas upp till enskilda items, filtreras på hög intensitet, konverteras från millisekunder till sekunder och sedan tas ”närliggande” ögonblick bort så att du inte får fem tidsstämplar i samma 20-sekunderssektion.
Strukturerat utdata för Sheets och överlämning. De valda ögonblicken aggregeras till en prydlig lista, formateras som läsbar text och returneras som webhook-svaret (eller ett tomt svar om markörer inte fanns). Därifrån är det enkelt att skriva rader i Google Sheets för din content-kö.
Du kan enkelt justera tröskeln för ”hög intensitet” så att den blir striktare eller mer generös beroende på din redigeringsstil. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: konfigurera webhook-triggern
Det här arbetsflödet börjar med en webhook som tar emot ett YouTube-ID i query string och skickar vidare begäran in i bearbetningskedjan.
- Lägg till en Incoming Webhook Trigger-nod.
- Ställ in Path till
youtube-engaging-moments-extractor. - Ställ in Response Mode till
responseNodeså att svar hanteras av responder-noder. - Koppla Incoming Webhook Trigger till Assign Input Fields.
?ytID=VIDEO_ID eftersom efterföljande noder använder $json.query.ytID.Steg 2: anslut det externa API-anropet
Normalisera indata och anropa sedan YouTube replay-API:t med video-ID:t som extraherats från webhooken.
- I Assign Input Fields skapar ni ett fält med namnet youtubeVideoID med värdet
{{$json.query.ytID}}. - Koppla Assign Input Fields till External API Call.
- I External API Call ställer ni in URL till
=https://yt.lemnoslife.com/videos?part=mostReplayed&id={{ $json.youtubeVideoID }}. - Koppla External API Call till Validate Intensity Data.
ytID saknas i webhookens query blir API-URL:en ogiltig och arbetsflödet returnerar ett tomt resultat.Steg 3: validera och packa upp intensitetsmarkörer
Kontrollera om data för replay-intensitet finns och dela sedan upp markör-arrayen i enskilda objekt för filtrering.
- I Validate Intensity Data konfigurerar ni villkoret så att det kontrollerar om
{{$json.items[0].mostReplayed}}exists. - Säkerställ att Validate Intensity Data skickar vidare till Unpack Markers på true-grenen och till Handle Missing Intensity på false-grenen.
- I Unpack Markers ställer ni in Field to Split Out till
items[0].mostReplayed.markers. - Koppla Unpack Markers till Filter High Intensity.
Steg 4: filtrera, normalisera och formatera ögonblick
Filtrera segment med hög intensitet, normalisera tidsstämplar, ta bort närliggande dubbletter och formatera länkar som är läsbara för människor.
- I Filter High Intensity ställer ni in villkoret till
{{$json.intensityScoreNormalized}}greater than0.6. - Koppla Filter High Intensity till Convert Millis to Secs.
- I Convert Millis to Secs lägger ni till startSec som
{{$json.startMillis / 1000}}, ställer in Include tillexceptoch ställer in Exclude Fields tillstartMillis. - I Remove Nearby Moments behåller ni objekt där
{{$input.all()[ $itemIndex + 1].json.startSec }}är större än{{$input.all()[ $itemIndex ].json.startSec + 20 }}. - I Format Moment Text ställer ni in humanReadableMessage till
=Engaging moment #{{ $itemIndex +1 }}: https://youtu.be/{{ $('Assign Input Fields').first().json.youtubeVideoID }}?t={{ $json.startSec.round() - 3 }}. - I Format Moment Text ställer ni in startSec till
{{$json.startSec.round()}}och directYTURL till=https://youtu.be/{{ $('Assign Input Fields').first().json.youtubeVideoID }}?t={{ $json.startSec.round() - 3 }}. - Koppla Format Moment Text till Collect Moments.
Steg 5: sammanställ och svara med resultat
Aggregera ögonblicken till en enda payload och returnera svaret till den som anropade webhooken.
- I Collect Moments ställer ni in Aggregate till
aggregateAllItemDataoch Destination Field Name tillengagingMoments. - Koppla Collect Moments till Assemble Response.
- I Assemble Response ställer ni in youtubeID till
{{$('Incoming Webhook Trigger').item.json.query.ytID}}och aktiverar Include Other Fields. - Koppla Assemble Response till Send Moments Response för att returnera den aggregerade payloaden.
- På sökvägen för saknad data kopplar ni Handle Missing Intensity till Return Empty Result och behåller Response Body som
={ "engagingMoments": null, "youtubeID": "{{ $('Incoming Webhook Trigger').item.json.query.ytID }}" }.
responseNode.Steg 6: testa och aktivera ert arbetsflöde
Kör ett live-test för att bekräfta att ni antingen får engagerande ögonblick eller ett rent tomt svar, och aktivera sedan för produktion.
- Klicka på Test Workflow och skicka en förfrågan till webhook-URL:en med
?ytID=VIDEO_ID. - Bekräfta att en lyckad körning returnerar antingen en
engagingMoments-array från Send Moments Response eller ett null-resultat från Return Empty Result. - Granska utdatafälten
humanReadableMessage,startSecochdirectYTURLi response-payloaden. - Växla arbetsflödet till Active för att aktivera webhook-endpointen för produktion.
Vanliga fallgropar
- Google Sheets-autentisering kan löpa ut eller kräva specifika behörigheter. Om saker slutar fungera, kolla först fliken Credentials i n8n och delningsinställningarna för målarket.
- Om du använder Wait-noder eller extern rendering varierar bearbetningstiderna. Öka väntetiden om noder längre fram fallerar på tomma svar.
- OpenAI-uppgifter kan fallera utan tydliga fel om fakturering är pausad eller nyckeln har roterats. Om AI Agent-utdata plötsligt ser tomt ut, verifiera din OpenAI API-nyckel och dina användningsgränser.
Vanliga frågor
Cirka 30 minuter om du redan har åtkomst till arket du vill skriva till.
Nej. Du kopierar en webhook-URL och kopplar Google Sheets. Resten handlar bara om att testa med ett riktigt video-ID.
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 med kostnader för OpenAI API, vilket oftast bara blir några cent vid lätt användning.
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änsade körningar men kräver grundläggande serverhantering.
Ja, och det är en vanlig justering. Behåll webhook-triggern och filtreringslogiken, och ersätt sedan ”respond”-utdata med ett Slack- eller Telegram-skick så att teamet får ett meddelande när nya ögonblick upptäcks. Många team justerar även logiken i ”Filter High Intensity” så att färre, starkare ögonblick släpps igenom. Vill du fortfarande ha en historik kan du göra båda: avisering + skriva en rad till Google Sheets.
Det här workflowet använder inte det officiella YouTube API:t, så ”YouTube-auth” är vanligtvis inte problemet. De flesta fel beror på att den externa markörtjänsten inte returnerar någon data för videon, att endpointen är tillfälligt otillgänglig eller att webhooken anropas utan parametern ytID. Kolla även n8n:s exekveringslogg för HTTP Request-noden för att se det råa svaret. Om det är tomt kommer workflowet korrekt att falla tillbaka till ett tomt resultat.
På n8n Cloud beror det på din månatliga exekveringsgräns. Om du hostar själv finns ingen fast gräns, men just det här workflowet är också beroende av en inofficiell extern tjänst, så det passar inte särskilt bra för produktion med väldigt hög volym.
Ofta, ja. n8n är helt enkelt mer bekvämt när du behöver grenad logik (som ”returnera ett tomt resultat om det saknas intensitetsdata”), filtrering i flera steg och egen formatering i ett och samma workflow. Egen hosting spelar också roll, eftersom det låter dig köra många exekveringar utan prissättning per task. Zapier och Make kan fortfarande fungera, men du brukar hamna med fler separata scenarion, fler betalda steg och mindre kontroll över edge cases. Om du väljer mellan plattformar, prata med en automationsexpert så mappar vi det mot din volym och ditt workflow.
Det här är den typen av workflow du sätter upp en gång och sedan får nytta av varje vecka, utan att tänka på det. Ditt kalkylark fylls med klippkandidater, 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.