病毒式标题/缩略图生成
高级
这是一个AI, Marketing领域的自动化工作流,包含 41 个节点。主要使用 If, Set, Code, Html, Wait 等节点,结合人工智能技术实现智能自动化。 自动化病毒式YouTube标题和缩略图创建(FLUX.1 + Apify)
前置要求
- •可能需要目标 API 的认证凭证
- •OpenAI API Key
使用的节点 (41)
工作流预览
可视化展示节点连接关系,支持缩放和平移
无法加载工作流预览
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "",
"meta": {
"instanceId": "",
"templateCredsSetupCompleted": true
},
"name": "Viral Title/Thumbnail Generation",
"tags": [],
"nodes": [
{
"id": "",
"name": "当点击\"测试工作流\"时",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-680,
20
],
"parameters": {},
"typeVersion": 1
},
{
"id": "",
"name": "等待",
"type": "n8n-nodes-base.wait",
"position": [
2940,
-240
],
"webhookId": "",
"parameters": {},
"typeVersion": 1.1
},
{
"id": "",
"name": "等待1",
"type": "n8n-nodes-base.wait",
"position": [
120,
20
],
"webhookId": "",
"parameters": {},
"typeVersion": 1.1
},
{
"id": "",
"name": "结构化输出解析器",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
-40,
220
],
"parameters": {
"jsonSchemaExample": "{\n\t\"Keyword1\": \"string\",\n\t\"Keyword2\": \"string\",\n \"Keyword3\": \"string\"\n}"
},
"typeVersion": 1.2
},
{
"id": "",
"name": "Create Keywords",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
-240,
20
],
"parameters": {
"text": "=You are a YouTube content strategist. The input of the request is the following content idea : {{ $json.query }}",
"messages": {
"messageValues": [
{
"type": "HumanMessagePromptTemplate",
"message": "=Given a content idea, extract **three keyword phrases** (1–5 words each) that are: \n- Highly relevant for a YouTube search \n- Based on what people would realistically search for \n- Focused on *actions*, *techniques*, or *tools* not just literal parts of the content idea \n- Avoid abstract or vague terms that would not return good search results \n\nExample: \nContent Idea: \"Turn a Zoom call into a viral TikTok\" \nOutput: \n1. \"zoom to tiktok edit\" \n2. \"short form video from meetings\" \n\nReturn ONLY the three keyword phrases, no explanation."
}
]
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.5
},
{
"id": "",
"name": "YTB Search Scrape",
"type": "n8n-nodes-base.httpRequest",
"position": [
340,
20
],
"parameters": {
"url": "https://api.apify.com/v2/acts/streamers~youtube-scraper/runs?token=[YOUR_API_TOKEN]",
"method": "POST",
"options": {},
"jsonBody": "={\n \"dateFilter\": \"year\",\n \"lengthFilter\": \"between420\",\n \"maxResults\": 10,\n \"searchQueries\": [\n \"{{ $json.output.Keyword1 }}\",\n \"{{ $json.output.Keyword2 }}\",\n \"{{ $json.output.Keyword3 }}\"\n ],\n \"sortingOrder\": \"relevance\"\n} ",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "",
"name": "Get DataSet",
"type": "n8n-nodes-base.httpRequest",
"position": [
1320,
0
],
"parameters": {
"url": "https://api.apify.com/v2/acts/streamers~youtube-scraper/runs/last/dataset/items?token=[YOUR_API_TOKEN]",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "",
"name": "Mistral Cloud Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatMistralCloud",
"position": [
-240,
220
],
"parameters": {
"model": "mistral-large-latest",
"options": {}
},
"credentials": {
"mistralCloudApi": {
"id": "",
"name": "Mistral Cloud account"
}
},
"typeVersion": 1
},
{
"id": "",
"name": "如果",
"type": "n8n-nodes-base.if",
"position": [
900,
20
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.data.status }}",
"rightValue": "SUCCEEDED"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "",
"name": "Check IF Finished",
"type": "n8n-nodes-base.httpRequest",
"position": [
680,
20
],
"parameters": {
"url": "https://api.apify.com/v2/acts/streamers~youtube-scraper/runs/last?token=[YOUR_API_TOKEN]",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "",
"name": "等待2",
"type": "n8n-nodes-base.wait",
"position": [
1060,
200
],
"webhookId": "",
"parameters": {},
"typeVersion": 1.1
},
{
"id": "",
"name": "Mistral 云聊天模型1",
"type": "@n8n/n8n-nodes-langchain.lmChatMistralCloud",
"position": [
2520,
0
],
"parameters": {
"model": "mistral-large-latest",
"options": {}
},
"credentials": {
"mistralCloudApi": {
"id": "",
"name": "Mistral Cloud account"
}
},
"typeVersion": 1
},
{
"id": "",
"name": "Calculate CTR",
"type": "n8n-nodes-base.code",
"position": [
1520,
200
],
"parameters": {
"mode": "runOnceForEachItem",
"jsCode": "const views = $json.viewCount;\nconst subscribers = $json.numberOfSubscribers;\nconst likes = $json.likes;\nconst comments = $json.commentsCount;\nconst publishedAt = $json.date;// ISO string, e.g. \"2024-05-01T12:00:00Z\"\n\n// Defensive check for missing values\nif (!views || !subscribers || !publishedAt) {\n return { error: \"Missing required data\" };\n}\n\n// Parse dates\nconst publishedDate = new Date(publishedAt);\nconst now = new Date();\n\n// Validate dates\nif (isNaN(publishedDate.getTime())) {\n return { error: \"Invalid publishedAt date\" };\n}\n\n// Calculate days since upload\nconst msPerDay = 1000 * 60 * 60 * 24;\nconst timeDiff = now.getTime() - publishedDate.getTime();\nconst daysSinceUpload = Math.floor(timeDiff / msPerDay);\n\n// Compute RPI\nconst rpi = (views / subscribers) * ((likes + comments) / views / 10);\n\n// Apply temporal decay factor\nconst decayFactor = Math.exp(-0.015 * daysSinceUpload);\nconst rpiAdjusted = rpi * decayFactor;\n\n// Calculate Pseudo CTR\nconst ctrScore = rpiAdjusted * 100;\n\nreturn {\n ctrPercent: parseFloat(ctrScore.toFixed(3)), // ← Your CTR-style %\n};\n"
},
"typeVersion": 2
},
{
"id": "",
"name": "合并数据",
"type": "n8n-nodes-base.merge",
"position": [
1700,
20
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3
},
{
"id": "",
"name": "Create Titles",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
3140,
-240
],
"parameters": {
"text": "=You are an expert in YouTube video title optimization.",
"messages": {
"messageValues": [
{
"type": "HumanMessagePromptTemplate",
"message": "={{ $json.text }}"
}
]
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.5
},
{
"id": "",
"name": "Mistral Cloud Chat Model2",
"type": "@n8n/n8n-nodes-langchain.lmChatMistralCloud",
"position": [
3060,
20
],
"parameters": {
"model": "mistral-large-latest",
"options": {}
},
"credentials": {
"mistralCloudApi": {
"id": "",
"name": "Mistral Cloud account"
}
},
"typeVersion": 1
},
{
"id": "",
"name": "结构化输出解析器1",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
3340,
20
],
"parameters": {
"jsonSchemaExample": "{\n \"title1\": \"string\",\n \"title2\": \"string\",\n \"title3\": \"string\",\n \"title4\": \"string\",\n \"title5\": \"string\"\n}"
},
"typeVersion": 1.2
},
{
"id": "",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-760,
-980
],
"parameters": {
"color": 7,
"width": 780,
"height": 320,
"content": "## 这是如何工作的?"
},
"typeVersion": 1
},
{
"id": "",
"name": "便签2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-760,
-640
],
"parameters": {
"color": 7,
"width": 780,
"height": 520,
"content": "## 设置"
},
"typeVersion": 1
},
{
"id": "",
"name": "内容创意",
"type": "n8n-nodes-base.set",
"position": [
-460,
20
],
"parameters": {
"mode": "raw",
"options": {},
"jsonOutput": "{\n \"query\": \"create viral title and thumbnail in n8n\"\n}"
},
"typeVersion": 3.4
},
{
"id": "",
"name": "Create List of Titles",
"type": "n8n-nodes-base.code",
"position": [
2380,
-240
],
"parameters": {
"jsCode": "const titles = items.map(item => item.json.title);\nreturn [{ json: { titles } }];"
},
"typeVersion": 2
},
{
"id": "",
"name": "HTML",
"type": "n8n-nodes-base.html",
"position": [
3800,
40
],
"parameters": {
"html": "<!DOCTYPE html>\n\n<html>\n<head>\n <meta charset=\"UTF-8\" />\n <title>My HTML document</title>\n</head>\n<body>\n <div class=\"container\">\n <h1>Thumbnail</h1>\n <img src=\"data:image/png;base64,{{ $('Convert to Base64').first().json.data }}\" />\n <h3>Titles</h3>\n <p>1. {{ $json.output.title1 }}<br>2. {{ $json.output.title2 }}<br>3. {{ $json.output.title3 }}<br>4. {{ $json.output.title4 }}<br>5. {{ $json.output.title5 }}</p>\n </div>\n</body>\n</html>\n\n<style>\n.container {\n background-color: #ffffff;\n text-align: center;\n padding: 16px;\n border-radius: 8px;\n}\n\nh1 {\n color: #ff6d5a;\n font-size: 24px;\n font-weight: bold;\n padding: 8px;\n}\n\nh2 {\n color: #909399;\n font-size: 18px;\n font-weight: bold;\n padding: 8px;\n}\n</style>\n\n<script>\nconsole.log(\"Hello World!\");\n</script>"
},
"typeVersion": 1.2
},
{
"id": "",
"name": "遍历项目",
"type": "n8n-nodes-base.splitInBatches",
"position": [
2260,
520
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "",
"name": "Analyze Image",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
2500,
540
],
"parameters": {
"text": "=You are an expert in YouTube thumbnail performance. Your job is to analyze why a thumbnail might be performing well and describe it precisely so a designer or AI can later recreate its essence.\n\nYou will receive:\n- The subject of the video : {{ $('Content Idea').first().json.query }}\n- The URL of the thumbnail image : {{ $json.thumbnailUrl }}\n\nYour goal:\n1. Analyze the thumbnail's visual elements (faces, text, colors, emotions, layout, contrast, focus, etc.)\n2. Identify what makes it visually compelling or attention-grabbing\n3. Relate your analysis back to the video’s subject\n4. Return a structured and precise description of the thumbnail that could be reused to generate a similar performing image.\n\nRespond only with the description. Do not add anything else.",
"modelId": {
"__rl": true,
"mode": "list",
"value": "meta-llama/llama-3.2-11b-vision-instruct:free",
"cachedResultName": "META-LLAMA/LLAMA-3.2-11B-VISION-INSTRUCT:FREE"
},
"options": {},
"resource": "image",
"simplify": false,
"imageUrls": "={{ $json.thumbnailUrl }}",
"operation": "analyze"
},
"credentials": {
"openAiApi": {
"id": "",
"name": "OpenAi account 2"
}
},
"typeVersion": 1.8
},
{
"id": "",
"name": "Wait3",
"type": "n8n-nodes-base.wait",
"position": [
2780,
720
],
"webhookId": "",
"parameters": {},
"typeVersion": 1.1
},
{
"id": "",
"name": "合并",
"type": "n8n-nodes-base.merge",
"position": [
3580,
40
],
"parameters": {},
"typeVersion": 3
},
{
"id": "",
"name": "Mistral Cloud Chat Model3",
"type": "@n8n/n8n-nodes-langchain.lmChatMistralCloud",
"position": [
2680,
460
],
"parameters": {
"model": "mistral-large-latest",
"options": {}
},
"credentials": {
"mistralCloudApi": {
"id": "",
"name": "Mistral Cloud account"
}
},
"typeVersion": 1
},
{
"id": "",
"name": "创建提示",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
2620,
280
],
"parameters": {
"text": "You are an expert visual prompt engineer.",
"messages": {
"messageValues": [
{
"type": "HumanMessagePromptTemplate",
"message": "=You are an expert visual prompt engineer.\n\nYou are given several thumbnail analysis texts, each describing what made a YouTube thumbnail visually engaging and effective. \n\nData for you : \n- The Content Idea : {{ $('Content Idea').first().json.query }}\n- The Analysis of performing Thumbnails for this idea : {{ $json.analysis}}\n\n\nYour job is to:\n1. **Summarize the most common and impactful visual elements** across all analyses.\n2. **Generate one precise image prompt** that captures the best-performing elements, ready to be used with an image generation model (like DALL·E, Midjourney, or Stable Diffusion).\nMandatory : \n- Maximum 400 characters (including spaces and punctuations) !\n- When generating the prompt text, make sure that any double quotes within the string are escaped using a backslash (\\\") so that the final output can be safely included in a JSON object.\n\n📥 Input: A list of thumbnail descriptions and visual analyses.\n🎯 Goal: One image prompt that includes clear guidance on:\n- Subject placement and expression\n- Colors and contrast\n- Text style or layout (if any)\n- Graphic or visual elements\n- Overall layout or composition\n- Mood or tone (e.g. excitement, curiosity, professionalism)\n\n⚠️ Don't describe what you’re doing. Just output the final image prompt.\n\n📌 Example output format:\nA high-contrast YouTube thumbnail with a confident man on the right side, bold yellow text on the left saying \"AI SECRETS\", a dark tech-themed background, and digital data stream effects in the back — cinematic lighting, 16:9 composition."
}
]
},
"promptType": "define"
},
"typeVersion": 1.5
},
{
"id": "",
"name": "Create List of Analysis",
"type": "n8n-nodes-base.code",
"position": [
2440,
280
],
"parameters": {
"jsCode": "const analysis = items.map(item => item.json.choices[0].message.content);\n\nreturn [\n {\n json: {\n analysis\n }\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "",
"name": "生成图片",
"type": "n8n-nodes-base.httpRequest",
"position": [
3120,
280
],
"parameters": {
"url": "https://api-inference.huggingface.co/models/black-forest-labs/FLUX.1-dev",
"method": "POST",
"options": {
"response": {
"response": {
"responseFormat": "file"
}
}
},
"jsonBody": "={\n \"inputs\":\"{{ $json.text }}\",\n \"parameters\": {\n \"height\": 720,\n \"width\": 1280,\n \"num_inference_steps\": 30,\n \"guidance_scale\": 8.0\n }\n}\n",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer [YOUR_API_TOKEN]"
},
{
"name": "Accept",
"value": "image/png"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "",
"name": "Convert to Base64",
"type": "n8n-nodes-base.extractFromFile",
"position": [
3320,
280
],
"parameters": {
"options": {
"encoding": "base64"
},
"operation": "binaryToPropery"
},
"typeVersion": 1
},
{
"id": "",
"name": "便签3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-760,
-100
],
"parameters": {
"color": 7,
"width": 460,
"height": 360,
"content": "## 1- 输入"
},
"typeVersion": 1
},
{
"id": "",
"name": "便签4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-280,
-100
],
"parameters": {
"color": 7,
"width": 820,
"height": 480,
"content": "## 2- 创建数据集"
},
"typeVersion": 1
},
{
"id": "",
"name": "便签5",
"type": "n8n-nodes-base.stickyNote",
"position": [
560,
-100
],
"parameters": {
"color": 7,
"width": 680,
"height": 520,
"content": "## 3 - 等待数据集完成"
},
"typeVersion": 1
},
{
"id": "",
"name": "便签6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1260,
-100
],
"parameters": {
"color": 7,
"width": 860,
"height": 460,
"content": "## 4- 筛选表现视频"
},
"typeVersion": 1
},
{
"id": "",
"name": "便签7",
"type": "n8n-nodes-base.stickyNote",
"position": [
2140,
-340
],
"parameters": {
"color": 7,
"width": 1340,
"height": 500,
"content": "## 5- 生成标题"
},
"typeVersion": 1
},
{
"id": "",
"name": "便签8",
"type": "n8n-nodes-base.stickyNote",
"position": [
2140,
180
],
"parameters": {
"color": 7,
"width": 1340,
"height": 760,
"content": "## 6- 生成缩略图"
},
"typeVersion": 1
},
{
"id": "",
"name": "便签9",
"type": "n8n-nodes-base.stickyNote",
"position": [
3500,
-100
],
"parameters": {
"color": 7,
"width": 520,
"height": 360,
"content": "## 7- 输出"
},
"typeVersion": 1
},
{
"id": "",
"name": "Keep Top Performing Videos",
"type": "n8n-nodes-base.filter",
"position": [
1900,
20
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "",
"operator": {
"type": "number",
"operation": "gt"
},
"leftValue": "={{ $json.ctrPercent }}",
"rightValue": 0.1
}
]
}
},
"typeVersion": 2.2
},
{
"id": "",
"name": "Analyze Pattern & Create Prompt",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
2600,
-240
],
"parameters": {
"text": "=You are an expert in YouTube video title optimization. Here is your input : \n{{ $json.titles.join('\\n') }}",
"messages": {
"messageValues": [
{
"type": "HumanMessagePromptTemplate",
"message": "=You will be given a list of YouTube video titles that ranked highly for a specific keyword or topic. For information the topic of the video is : {{ $('Content Idea').first().json.query }}\nYour task is to: \n1. Analyze the title list for patterns, such as: \n- Repeating structures or formats (e.g., “How to…”, “Top X…”, “This Changed Everything”) \n- Use of numbers, brackets, capital letters, emotional hooks, urgency, etc. \n- Word combinations or topic angles (e.g., “AI Automation for Creators” vs. “Build AI Tools with No Code”) \n2. Summarize what makes these titles effective (mandatory : be as precise as possible in 5-15 points). \n3. Based on your analysis, generate a prompt for another AI language model. This prompt will instruct the second model to generate new YouTube titles for the same keyword/topic, using the same high-performing structure, tone, and techniques. \n\n⚠️ Make sure the new prompt: \n- Clearly instructs the LLM to follow identified title patterns. - Tells it to generate clickable, short, high-performing YouTube titles. \n- Avoids common spammy phrasing or clickbait that doesn’t match the original tone. \n\n✅ Format your response like this:\nPATTERN SUMMARY:\n- Point 1\n- Point 2\n- Point 3\n\nPROMPT:\n\"Create 5 YouTube video titles about [TOPIC] using the following format:\n- [Insert pattern or tone summary]\n- Each title should be under 60 characters, engaging, and based on the provided structure.\"\n\n📥 Example Input (titles):\n- 5 AI Tools That Will Replace Your Job in 2025\n- The Best No-Code AI Tool You’re Not Using Yet\n- I Built an AI Business with $0 (Full Tutorial)\n- How to Automate Everything with AI Agents\n- This Free AI Tool Blew My Mind\n\n🧠 Expected Output:\nPATTERN SUMMARY:\n- Uses emotional triggers like fear or curiosity (“Replace Your Job”, “Blew My Mind”)\n- Often includes numbers or power words (“5 Tools”, “Best”, “Free”)\n- Many titles promise results or value (“Full Tutorial”, “Automate Everything”)\n\nPROMPT:\n\"Create 5 YouTube video titles about AI automation tools for solo creators using this format:\n- Include emotional or curiosity-based phrases\n- Use numbers or power words when relevant\n- Promise a clear value or benefit in the title\nEach title should be under 60 characters and match the tone of the top-ranking videos.\"\n"
}
]
},
"promptType": "define"
},
"typeVersion": 1.5
},
{
"id": "",
"name": "Wait4",
"type": "n8n-nodes-base.wait",
"position": [
2940,
280
],
"webhookId": "",
"parameters": {},
"typeVersion": 1.1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "",
"connections": {
"If": {
"main": [
[
{
"node": "Get DataSet",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait2",
"type": "main",
"index": 0
}
]
]
},
"Wait": {
"main": [
[
{
"node": "Create Titles",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "HTML",
"type": "main",
"index": 0
}
]
]
},
"Wait1": {
"main": [
[
{
"node": "YTB Search Scrape",
"type": "main",
"index": 0
}
]
]
},
"Wait2": {
"main": [
[
{
"node": "Check IF Finished",
"type": "main",
"index": 0
}
]
]
},
"Wait3": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Wait4": {
"main": [
[
{
"node": "Generate Image",
"type": "main",
"index": 0
}
]
]
},
"Merge Data": {
"main": [
[
{
"node": "Keep Top Performing Videos",
"type": "main",
"index": 0
}
]
]
},
"Get DataSet": {
"main": [
[
{
"node": "Calculate CTR",
"type": "main",
"index": 0
},
{
"node": "Merge Data",
"type": "main",
"index": 0
}
]
]
},
"Content Idea": {
"main": [
[
{
"node": "Create Keywords",
"type": "main",
"index": 0
}
]
]
},
"Analyze Image": {
"main": [
[
{
"node": "Wait3",
"type": "main",
"index": 0
}
]
]
},
"Calculate CTR": {
"main": [
[
{
"node": "Merge Data",
"type": "main",
"index": 1
}
]
]
},
"Create Prompt": {
"main": [
[
{
"node": "Wait4",
"type": "main",
"index": 0
}
]
]
},
"Create Titles": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Generate Image": {
"main": [
[
{
"node": "Convert to Base64",
"type": "main",
"index": 0
}
]
]
},
"Create Keywords": {
"main": [
[
{
"node": "Wait1",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[
{
"node": "Create List of Analysis",
"type": "main",
"index": 0
}
],
[
{
"node": "Analyze Image",
"type": "main",
"index": 0
}
]
]
},
"Check IF Finished": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"Convert to Base64": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"YTB Search Scrape": {
"main": [
[
{
"node": "Check IF Finished",
"type": "main",
"index": 0
}
]
]
},
"Create List of Titles": {
"main": [
[
{
"node": "Analyze Pattern & Create Prompt",
"type": "main",
"index": 0
}
]
]
},
"Create List of Analysis": {
"main": [
[
{
"node": "Create Prompt",
"type": "main",
"index": 0
}
]
]
},
"Mistral Cloud Chat Model": {
"ai_languageModel": [
[
{
"node": "Create Keywords",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Create Keywords",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Mistral Cloud Chat Model1": {
"ai_languageModel": [
[
{
"node": "Analyze Pattern & Create Prompt",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Mistral Cloud Chat Model2": {
"ai_languageModel": [
[
{
"node": "Create Titles",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Mistral Cloud Chat Model3": {
"ai_languageModel": [
[
{
"node": "Create Prompt",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Structured Output Parser1": {
"ai_outputParser": [
[
{
"node": "Create Titles",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Keep Top Performing Videos": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
},
{
"node": "Create List of Titles",
"type": "main",
"index": 0
}
]
]
},
"Analyze Pattern & Create Prompt": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"When clicking ‘Test workflow’": {
"main": [
[
{
"node": "Content Idea",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 人工智能, 营销
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
在可视化参考库中探索n8n节点
在可视化参考库中探索n8n节点
If
Ftp
Set
+93
113 节点I versus AI
其他
(Duc)深度研究市场模板
集成PerplexityAI研究和OpenAI内容的多层级WordPress博客生成器
If
Set
Xml
+28
132 节点Daniel Ng
人工智能
WordPress博客自动化专业版(SEO主题)v2
WordPress自动博客专业版 - SEO主题内容自动化机器
If
Set
Xml
+21
63 节点Daniel Ng
人工智能
WordPress博客自动化专业版(深度研究)v1
WordPress自动博客专业版 - 含深度研究的内容自动化机器
If
Set
Xml
+24
77 节点Daniel Ng
人工智能
[模板] AI宠物店 v8
🐶 AI宠物店助手 - 集成GPT-4o、Google日历和WhatsApp/Instagram/Facebook
If
N8n
Set
+38
244 节点Amanda Benks
销售
AI个性化多产品邮件营销
基于SMTP轮换的AI个性化多产品邮件营销(GPT-4o/o3-mini)
If
Code
Wait
+16
41 节点Badr
销售