Du vet redan att den värsta delen med YouTube inte är filmandet. Det är spiralen efter att du fått en idé: söka på YouTube, öppna 20 flikar, “studera” konkurrenter och ändå gissa vilken titel och thumbnail som faktiskt vinner.
Den här YouTube Apify-automationen träffar innehållsskapare först, men marknadsteam och kanalansvariga känner av den lika mycket. Du går från en rå idé till fem titelförslag och ett thumbnail-utkast, baserat på vad som redan presterar i din nisch.
Nedan får du exakt arbetsflödeslogik, vad du behöver, vilka resultat du kan förvänta dig och hur du anpassar det om din process startar från ett formulär, ett kalkylark eller en kundbrief.
Så fungerar automationen
Här är hela arbetsflödet du kommer att sätta upp:
n8n Workflow Template: YouTube + Apify: vinnande titlar och thumbnails
flowchart LR
subgraph sg0["Manual Start Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Manual Start Trigger", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Input Content Idea", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "Generate Keyword Phrases", pos: "b", h: 48 }
n3@{ icon: "mdi:brain", form: "rounded", label: "Mistral Chat Engine", pos: "b", h: 48 }
n4@{ icon: "mdi:robot", form: "rounded", label: "Keyword Output Parser", pos: "b", h: 48 }
n5@{ icon: "mdi:cog", form: "rounded", label: "Initial Pause", 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/>YouTube Query Scrape"]
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/>Check Run Status"]
n8@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Status Decision", pos: "b", h: 48 }
n9@{ icon: "mdi:cog", form: "rounded", label: "Retry Delay", pos: "b", h: 48 }
n10["<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/>Retrieve Dataset Items"]
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/code.svg' width='40' height='40' /></div><br/>Compute CTR Score"]
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/merge.svg' width='40' height='40' /></div><br/>Combine Video Metrics"]
n13@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter High CTR Videos", pos: "b", h: 48 }
n14["<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/>Aggregate Title List"]
n15@{ icon: "mdi:robot", form: "rounded", label: "Derive Title Patterns", pos: "b", h: 48 }
n16@{ icon: "mdi:brain", form: "rounded", label: "Mistral Title Analyst", pos: "b", h: 48 }
n17@{ icon: "mdi:cog", form: "rounded", label: "Delay for Titles", pos: "b", h: 48 }
n18@{ icon: "mdi:robot", form: "rounded", label: "Compose Title Options", pos: "b", h: 48 }
n19@{ icon: "mdi:brain", form: "rounded", label: "Mistral Title Writer", pos: "b", h: 48 }
n20@{ icon: "mdi:robot", form: "rounded", label: "Title Output Parser", pos: "b", h: 48 }
n21@{ icon: "mdi:swap-vertical", form: "rounded", label: "Iterate Videos", pos: "b", h: 48 }
n22@{ icon: "mdi:robot", form: "rounded", label: "Thumbnail Insight Review", pos: "b", h: 48 }
n23@{ icon: "mdi:cog", form: "rounded", label: "Analysis Delay", pos: "b", h: 48 }
n24["<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/>Aggregate Thumbnail Notes"]
n25@{ icon: "mdi:robot", form: "rounded", label: "Craft Image Prompt", pos: "b", h: 48 }
n26@{ icon: "mdi:brain", form: "rounded", label: "Mistral Visual Analyst", pos: "b", h: 48 }
n27@{ icon: "mdi:cog", form: "rounded", label: "Image Queue Delay", pos: "b", h: 48 }
n28["<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/>Render Thumbnail Image"]
n29@{ icon: "mdi:cog", form: "rounded", label: "Encode Image Base64", pos: "b", h: 48 }
n30["<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/>Join Titles and Image"]
n31["<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/html.dark.svg' width='40' height='40' /></div><br/>Build HTML Output"]
n8 --> n10
n8 --> n9
n17 --> n18
n30 --> n31
n5 --> n6
n9 --> n7
n23 --> n21
n27 --> n28
n12 --> n13
n10 --> n11
n10 --> n12
n1 --> n2
n22 --> n23
n11 --> n12
n25 --> n27
n18 --> n30
n28 --> n29
n2 --> n5
n21 --> n24
n21 --> n22
n7 --> n8
n29 --> n30
n6 --> n7
n14 --> n15
n24 --> n25
n3 -.-> n2
n4 -.-> n2
n16 -.-> n15
n19 -.-> n18
n26 -.-> n25
n20 -.-> n18
n13 --> n21
n13 --> n14
n15 --> n17
n0 --> n1
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 n0 trigger
class n2,n4,n15,n18,n20,n22,n25 ai
class n3,n16,n19,n26 aiModel
class n8,n13 decision
class n6,n7,n10,n28 api
class n11,n14,n24 code
classDef customIcon fill:none,stroke:none
class n6,n7,n10,n11,n12,n14,n24,n28,n30,n31 customIcon
Varför det här spelar roll: gissningar kring YouTube-kreativitet slukar timmar
Det mesta av YouTube-“research” känns produktivt, men det är ofta bara friktion med ett snyggare namn. Du söker på ett ämne, skummar thumbnails, kopierar några titelvinklar och börjar sedan tvivla på allt eftersom du bara såg en liten del av det som fungerar. Sen kommer det stökiga: du försöker göra spridda observationer till en repeterbar formel, och det fastnar aldrig riktigt. Under tiden halkar uppladdningsschemat, och du bränner din bästa kreativa energi på beslut du inte borde behöva ta varje gång.
Friktionen byggs på. Här är var det brukar fallera i praktiken:
- Manuell konkurrentresearch kan äta upp cirka 1–2 timmar per video när du räknar in sökning, klickande och anteckningar.
- Du väljer titlar utifrån magkänsla, inte mönster, så din “slutgiltiga” titel ändras fem gånger under redigeringen.
- Thumbnail-riktningen är ofta oklar fram till sista minuten, vilket leder till stressad design och svaga koncept.
- Inget är standardiserat, så att lämna över detta till en VA eller en teammedlem blir viskningsleken.
Det du bygger: databaserade titlar plus ett thumbnail-utkast
Det här arbetsflödet gör en videoidé i vanlig svenska till en mini-brief du faktiskt kan lita på. Du matar in en idé (till exempel “Koka ägg perfekt”), och arbetsflödet använder en LLM för att generera några smarta nyckelordsfraser kopplade till idén. Sedan skrapar Apify YouTubes sökresultat för de frågorna, väntar tills datasetet är klart och hämtar tillbaka videodatan till n8n. Därifrån räknar det ut ett ungefärligt CTR-score, filtrerar fram de starkaste resultaten och använder vinnarna för att hitta mönster i riktiga titlar och riktiga thumbnails. Till sist genererar det fem titelförslag som matchar det som fungerar, tar fram en thumbnail-prompt, renderar ett utkast till thumbnail-bild och returnerar allt i en korrekt formaterad HTML-sida.
Arbetsflödet startar med din råa idé i n8n. Apify gör grovjobbet med att skrapa YouTube-sökningar, och sedan analyserar AI vad som överpresterar och skriver förslag du kan använda direkt. Slutresultatet är en sida du kan klistra in i ditt manussdokument, skicka till en designer eller spara i Google Sheets eller Airtable.
Det du bygger
| Vad som automatiseras | Vad du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du publicerar 3 videor i veckan. Om du lägger cirka 90 minuter per video på att söka på YouTube, anteckna och brainstorma titel/thumbnail, blir det ungefär 4–5 timmar i veckan. Med det här arbetsflödet lägger du in idén (en minut), låter Apify skrapa och LLM:erna analysera (ofta cirka 15–25 minuters väntan), och sedan väljer du bland fem titlar och en thumbnail-riktning som är redo att använda. De flesta team får tillbaka runt 3 timmar per vecka, och besluten känns mer självklara.
Innan du börjar
- n8n-instans (testa n8n Cloud gratis)
- Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
- Apify för att skrapa YouTube-sökdataset.
- OpenAI eller OpenRouter (LLM) för att generera nyckelord, mönster och titlar.
- Hugging Face (FLUX.1) API-nyckel (hämta den i kontoinställningarna på Hugging Face).
Kunskapsnivå: Medel. Du kopplar API-uppgifter och justerar några noder, men du behöver inte bygga en hel app.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
Du skickar in en rå innehållsidé. I standardversionen skriver du in den i fältet “Input Content Idea” och kör arbetsflödet manuellt. I praktiken kan det komma från ett formulär, en Airtable-post eller en rad i Google Sheets.
AI utvecklar idén till sökfraser. En LLM-kedja genererar ett litet urval nyckelordsfrågor, och sedan skickar arbetsflödet dem till Apify för att skrapa YouTubes sökresultat. Det blir en väntan, eftersom Apify behöver tid för att bygga klart datasetet.
Prestandasignaler för videor poängsätts och filtreras. När datasetet hämtats kör ett kodsteg en ungefärlig CTR-beräkning baserat på tillgängliga mätvärden, slår ihop datan och filtrerar ner till videor med högre prestation. Det är här “sluta gissa”-delen händer.
Titlar och thumbnails genereras från mönster. Arbetsflödet analyserar de bästa titlarna för att ta fram regler, och producerar sedan fem alternativ som följer de reglerna. Det granskar också thumbnails från den filtrerade mängden, skriver en bildprompt, renderar ett thumbnail-utkast via HTTP och paketerar allt i en enda HTML-sida som output.
Du kan enkelt ändra triggern så att den startar från Google Sheets eller Airtable beroende på dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: Konfigurera den manuella triggern
Det här arbetsflödet startas manuellt så att ni kan testa hela flödet innan ni aktiverar schemalagd eller händelsestyrd körning.
- Lägg till noden Manual Start Trigger som er startpunkt.
- Koppla Manual Start Trigger till Input Content Idea.
- I Input Content Idea ställer ni in Mode till
rawoch JSON Output till{ "query": "create viral title and thumbnail in n8n" }.
Steg 2: Sätt upp nyckelordsutvinning med Mistral
Dessa noder genererar nyckelordsfraser som används som input till YouTube-scrapen.
- Öppna Generate Keyword Phrases och ställ in Text till
=You are a YouTube content strategist. The input of the request is the following content idea : {{ $json.query }}. - Säkerställ att Generate Keyword Phrases har Has Output Parser aktiverat.
- Öppna Mistral Chat Engine och ställ in Model till
mistral-large-latest. - Inloggningsuppgifter krävs: Anslut era
mistralCloudApi-uppgifter i Mistral Chat Engine. - I Keyword Output Parser ställer ni in JSON Schema Example till
{ "Keyword1": "string", "Keyword2": "string", "Keyword3": "string" }. - Observera att Keyword Output Parser är en undernod till Generate Keyword Phrases—inloggningsuppgifter ska anges i Mistral Chat Engine, inte i parsern.
Steg 3: Konfigurera YouTube-scrape och kör statusloop
Den här delen skickar nyckelordsfraserna till Apify, väntar och pollar tills körningen är klar.
- I Initial Pause behåller ni standardinställningarna för att låta scrape-jobbet hamna i kö.
- Öppna YouTube Query Scrape och ställ in URL till
https://api.apify.com/v2/acts/streamers~youtube-scraper/runs?token=[CONFIGURE_YOUR_TOKEN]. - Ställ in Method till
POSToch JSON Body till={"dateFilter":"year","lengthFilter":"between420","maxResults":10,"searchQueries":["{{ $json.output.Keyword1 }}","{{ $json.output.Keyword2 }}","{{ $json.output.Keyword3 }}"],"sortingOrder":"relevance"}. - Öppna Check Run Status och ställ in URL till
https://api.apify.com/v2/acts/streamers~youtube-scraper/runs/last?token=[CONFIGURE_YOUR_TOKEN]. - I Status Decision bekräftar ni att villkoret kontrollerar att Left Value
={{ $json.data.status }}är lika medSUCCEEDED. - Använd Retry Delay för att pausa innan ni kontrollerar körstatus igen.
[CONFIGURE_YOUR_TOKEN] i YouTube Query Scrape och Check Run Status med en giltig Apify-token, annars misslyckas scrapen.Steg 4: Hämta data, beräkna CTR och filtrera högpresterare
Arbetsflödet hämtar datasetobjekt, beräknar ett CTR-liknande score, slår ihop mätvärden och filtrerar sedan fram högpresterande resultat.
- I Retrieve Dataset Items ställer ni in URL till
https://api.apify.com/v2/acts/streamers~youtube-scraper/runs/last/dataset/items?token=[CONFIGURE_YOUR_TOKEN]. - Retrieve Dataset Items skickar output parallellt till både Compute CTR Score och Combine Video Metrics.
- I Compute CTR Score behåller ni Mode inställt på
runOnceForEachItemoch lämnar JavaScript-logiken oförändrad. - I Combine Video Metrics ställer ni in Mode till
combineoch Combine By tillcombineByPosition. - I Filter High CTR Videos verifierar ni att villkoret använder Left Value
={{ $json.ctrPercent }}med Operationgtoch Right Value0.1. - Filter High CTR Videos skickar output parallellt till både Iterate Videos och Aggregate Title List.
0.1 i Filter High CTR Videos för att finjustera känsligheten.Steg 5: Generera titel-mönster och titelförslag
Den här grenen analyserar högpresterande titlar och tar fram nya alternativ.
- I Aggregate Title List behåller ni JavaScript-koden som mappar titlar till arrayen
titles. - Öppna Derive Title Patterns och ställ in Text till
=You are an expert in YouTube video title optimization. Here is your input : {{ $json.titles.join('\n') }}. - Inloggningsuppgifter krävs: Anslut era
mistralCloudApi-uppgifter i Mistral Title Analyst (används av Derive Title Patterns). - Använd Delay for Titles som en kort buffert innan ni genererar nya alternativ.
- I Compose Title Options ställer ni in Text till
=You are an expert in YouTube video title optimization.och behåller Has Output Parser aktiverat. - Inloggningsuppgifter krävs: Anslut era
mistralCloudApi-uppgifter i Mistral Title Writer (används av Compose Title Options). - I Title Output Parser ställer ni in JSON Schema Example till
{ "title1": "string", "title2": "string", "title3": "string", "title4": "string", "title5": "string" }. - Observera att Title Output Parser är en undernod till Compose Title Options—inloggningsuppgifter ska anges i Mistral Title Writer, inte i parsern.
Steg 6: Analysera thumbnails och skapa en bildprompt
Den här grenen använder högpresterande thumbnails för att generera en visuell prompt för bildrendering.
- I Iterate Videos behåller ni standardbeteendet för batch för att loopa igenom filtrerade objekt.
- Öppna Thumbnail Insight Review och verifiera att Image URLs är inställt på
={{ $json.thumbnailUrl }}. - Inloggningsuppgifter krävs: Anslut era
openAiApi-uppgifter i Thumbnail Insight Review. - Använd Analysis Delay som en buffert före aggregering.
- I Aggregate Thumbnail Notes behåller ni JavaScript-koden som samlar in
choices[0].message.content. - Öppna Craft Image Prompt och behåll Text som
You are an expert visual prompt engineer.. - Inloggningsuppgifter krävs: Anslut era
mistralCloudApi-uppgifter i Mistral Visual Analyst (används av Craft Image Prompt).
Steg 7: Rendera och koda thumbnail-bilden
Arbetsflödet använder en Hugging Face inference-endpoint för att generera en bild och konverterar den sedan till Base64.
- Använd Image Queue Delay för att pausa innan rendering.
- I Render Thumbnail Image ställer ni in URL till
https://api-inference.huggingface.co/models/black-forest-labs/FLUX.1-dev. - Ställ in Method till
POSToch JSON Body till={"inputs":"{{ $json.text }}","parameters":{"height":720,"width":1280,"num_inference_steps":30,"guidance_scale":8.0}}. - Säkerställ att headern Authorization är inställd på
Bearer [CONFIGURE_YOUR_TOKEN]. - I Encode Image Base64 ställer ni in Operation till
binaryToProperyoch Encoding tillbase64.
Steg 8: Slå ihop titlar och bild och bygg HTML-output
Slutresultatet kombinerar genererade titlar med Base64-bilden och bygger en HTML-förhandsvisning.
- Koppla Compose Title Options till Join Titles and Image och koppla även Encode Image Base64 till Join Titles and Image.
- Verifiera att Join Titles and Image slår ihop titel-output med bildens binära ström.
- I Build HTML Output behåller ni fältet HTML som det är angivet, inklusive
{{ $('Encode Image Base64').first().json.data }}och de fem titelplatshållarna. - Bekräfta att Join Titles and Image skickar output till Build HTML Output.
Steg 9: Testa och aktivera ert arbetsflöde
Kör ett fullständigt test och verifiera att outputen blir korrekt innan ni aktiverar för användning i produktion.
- Klicka på Execute Workflow i Manual Start Trigger för att köra hela pipelinen.
- Bekräfta lyckade svar i YouTube Query Scrape, Retrieve Dataset Items och Render Thumbnail Image.
- Verifiera att Build HTML Output returnerar en HTML-sida med en inbäddad Base64-bild och fem titlar.
- När ni har verifierat, slå på arbetsflödet Active för att aktivera användning i produktion.
Felsökningstips
- Apify-uppgifter kan löpa ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera först din Apify-token och åtkomst till actor-körningar i Apify-konsolen.
- Om du använder Wait-noder eller extern rendering varierar process-tiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Prompter för OpenAI/OpenRouter och Hugging Face börjar generiska. Lägg in din tonalitet och regler för thumbnail-stil tidigt, annars kommer du fortsätta att omarbeta resultaten.
Snabba svar
Cirka 30 minuter om dina API-nycklar är klara.
Nej. Du kopplar konton och finjusterar några inställningar i befintliga noder.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna in Apify-användning plus LLM-kostnader (ofta några cent per körning) och avgifter för bildgenerering om du renderar thumbnails.
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änsat antal körningar men kräver grundläggande serverhantering.
Ja, och det är en av de bästa anledningarna att använda n8n. Du kan ersätta det manuella steget “Input Content Idea” med Google Sheets eller Airtable och sedan behålla resten av logiken likadan. Vanliga ändringar är att öka antalet nyckelordsfraser i kedjan “Generate Keyword Phrases”, skrapa fler resultat per fråga i Apify-requestens body eller lagra output i Google Sheets i stället för att bygga HTML-sidan.
Oftast är det en ogiltig eller utgången Apify API-token. Uppdatera uppgiften i n8n och bekräfta sedan att actor-körningen är tillåten för din Apify-plan och workspace. Om det misslyckas efter att ha startat kan din polling av körstatus gå för snabbt, så öka väntan innan “Check Run Status”. Rate limiting kan också dyka upp när du skrapar många frågor samtidigt.
På en typisk n8n Cloud-plan kan du köra tusentals körningar per månad, och om du self-hostar finns ingen fast körningsgräns (det beror på din server). I praktiken är det Apify och din LLM-leverantör som blir begränsningarna, inte n8n. Om du kör detta några gånger per dag för ett litet team brukar det fungera fint. Om du försöker generera kreativt material för 50 idéer på en gång vill du batcha och ha längre väntetider så att dataset-hämtning och bildrendering inte krockar.
Ofta, ja, eftersom det här flödet har förgreningar, polling (vänta + kontrollera status), kodbaserad poängsättning och AI-generering i flera steg. n8n hanterar den typen av “logiktung” automation utan att förvandla den till en hög av dyra premiumsteg. Zapier eller Make kan fortfarande fungera om du förenklar, till exempel genom att hoppa över CTR-poängsättning eller thumbnail-rendering. Så fort du vill ha filtreringsregler, mönsteranalys och en paketerad output är n8n oftast det lugnare valet. Vill du ha hjälp att välja den enklaste stacken för ditt team, prata med en automationsexpert.
När detta väl är på plats slutar du “researcha” från noll och börjar fatta beslut med tydliga bevis. Sätt upp det en gång och återanvänd det varje gång du får en ny idé.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.