YouTube SEO 자동화 1
고급
이것은Content Creation, Multimodal AI분야의자동화 워크플로우로, 19개의 노드를 포함합니다.주로 If, Set, Code, HttpRequest, GoogleSheets 등의 노드를 사용하며. GPT-4o와 Runway를 사용하여 비디오 스크립트에서 YouTube SEO 내용 및 썸네일 생성
사전 요구사항
- •대상 API의 인증 정보가 필요할 수 있음
- •Google Sheets API 인증 정보
- •OpenAI API Key
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "D0sZR93pIfNqpzPN",
"meta": {
"instanceId": "b575ae39acc98e53d75e50d1b5147e8b0922704c4aeb3230092d8e2a78247bc3",
"templateCredsSetupCompleted": true
},
"name": "Youtube SEO Automation 1",
"tags": [],
"nodes": [
{
"id": "f268ec0d-7715-41bd-9e1a-7cc9285c5ec9",
"name": "Google Sheets 트리거",
"type": "n8n-nodes-base.googleSheetsTrigger",
"position": [
-2976,
256
],
"parameters": {
"event": "rowAdded",
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1BMtXN3Wl_pqyHJQW9KfRaErjPmg5wrm9kfIYcnuUVAM/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1BMtXN3Wl_pqyHJQW9KfRaErjPmg5wrm9kfIYcnuUVAM",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1BMtXN3Wl_pqyHJQW9KfRaErjPmg5wrm9kfIYcnuUVAM/edit?usp=drivesdk",
"cachedResultName": "Youtube Automation"
}
},
"typeVersion": 1
},
{
"id": "c27724ad-9f25-4e49-b9fb-2ca2bfa3e778",
"name": "아무 작업 없음",
"type": "n8n-nodes-base.noOp",
"position": [
-2528,
416
],
"parameters": {},
"typeVersion": 1
},
{
"id": "f92a73f2-3901-4576-b1e8-9836672a5977",
"name": "영어 스크립트 사용 가능 여부 확인",
"type": "n8n-nodes-base.if",
"position": [
-2768,
256
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "9b712734-6cd3-43d3-911c-bca7ffa53263",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json['Roman Hindi Script'] }}",
"rightValue": ""
},
{
"id": "18425a22-c745-45af-a354-d4bf43a73103",
"operator": {
"type": "string",
"operation": "empty",
"singleValue": true
},
"leftValue": "={{ $json['English script'] }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "064a7b70-e5a9-4e9a-b7ac-50ad3e1a7840",
"name": "영어 스크립트 생성",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
-2560,
192
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o",
"cachedResultName": "GPT-4O"
},
"options": {},
"messages": {
"values": [
{
"content": "={{ $json['Roman Hindi Script'] }}\n\nConvert this hindi roman script in to english script."
}
]
}
},
"typeVersion": 1.8
},
{
"id": "12157d7c-4dae-4a06-be7b-23f39584d3c5",
"name": "영어 스크립트 필드 생성",
"type": "n8n-nodes-base.set",
"position": [
-2208,
192
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "9b4b3282-e472-4729-b52f-2ec7178063f3",
"name": "message.content",
"type": "string",
"value": "={{ $json.message.content }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "bfc19dfc-5a3d-4235-a630-d12126afc3a7",
"name": "GSheet에 영어 스크립트 추가",
"type": "n8n-nodes-base.googleSheets",
"position": [
-2000,
192
],
"parameters": {
"columns": {
"value": {
"Number": "={{ $('Google Sheets Trigger').item.json.Number }}",
"English script": "={{ $('Generating English Script').item.json.message.content }}",
"Roman Hindi Script": "={{ $('Google Sheets Trigger').item.json['Roman Hindi Script'] }}"
},
"schema": [
{
"id": "Number",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Roman Hindi Script",
"type": "string",
"display": true,
"required": false,
"displayName": "Roman Hindi Script",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "English script",
"type": "string",
"display": true,
"required": false,
"displayName": "English script",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Youtube Title",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Youtube Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Youtube Tags",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Youtube Tags",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Youtube Keywords",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Youtube Keywords",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Youtube Description",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Youtube Description",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Youtube Thumbnail Brief",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Youtube Thumbnail Brief",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Youtube Thumbnail Tagline",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Youtube Thumbnail Tagline",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Youtube Generated Thumbnail",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Youtube Generated Thumbnail",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Number"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1BMtXN3Wl_pqyHJQW9KfRaErjPmg5wrm9kfIYcnuUVAM/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1BMtXN3Wl_pqyHJQW9KfRaErjPmg5wrm9kfIYcnuUVAM",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1BMtXN3Wl_pqyHJQW9KfRaErjPmg5wrm9kfIYcnuUVAM/edit?usp=drivesdk",
"cachedResultName": "Youtube Automation"
}
},
"typeVersion": 4.6
},
{
"id": "3342ff7b-5622-4aaf-8f8a-781285e027d9",
"name": "Youtube 태그, 키워드 등 생성",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
-1792,
192
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "chatgpt-4o-latest",
"cachedResultName": "CHATGPT-4O-LATEST"
},
"options": {},
"messages": {
"values": [
{
"content": "={{ $json['English script'] }}\n\nUse the provided English script and generate:\nGenerate the following:\n\n1️⃣ 10 Best Engaging YouTube Titles (≤ 70 characters each)\n\n2️⃣ Best Engaging YouTube Tags (comma-separated, up to 20)\n\n3️⃣ Best Engaging YouTube Keywords (comma-separated, up to 20)\n\n4️⃣ SEO-Friendly YouTube Video Description (optimized for 2025 algorithm, includes keywords, tags, hook, timestamps, engagement call-to-action, hashtags, and Google Search Keywords section)\n\n5️⃣ Thumbnail AI Prompt (realistic, describes main idea, bold clickable text, color scheme, visual elements, emotion, layout, realistic photography style, 1280×720, 16:9, suitable for MidJourney/DALL·E/Runware)\n\n6️⃣ Thumbnail Tagline (single catchy 3–5 word tagline)"
}
]
}
},
"credentials": {
"openAiApi": {
"id": "hTbhwONPbaFtA1LQ",
"name": "OpenAi account"
}
},
"typeVersion": 1.8
},
{
"id": "a601a771-5858-43cf-aa6e-3c36e2a6033f",
"name": "다른 주제 분리를 위한 JS 코드",
"type": "n8n-nodes-base.code",
"position": [
-1328,
192
],
"parameters": {
"jsCode": "const raw = $input.first().json.message.content;\n\n// Helper function to extract section between markers\nfunction extractSection(regex, input) {\n const match = input.match(regex);\n return match ? match[1].trim() : \"\";\n}\n\n// 1️⃣ Titles\nlet titlesRaw = extractSection(/1️⃣.*?\\n([\\s\\S]*?)2️⃣/, raw);\nlet titles = titlesRaw\n .split(/\\n|-/)\n .map(t => t.replace(/^\\d+\\.?\\s*/, \"\").trim())\n .filter(t => t.length > 0);\n\n// 2️⃣ Tags\nlet tags = extractSection(/2️⃣.*?\\n([\\s\\S]*?)3️⃣/, raw).replace(/\\n/g, \"\").trim();\n\n// 3️⃣ Keywords\nlet keywords = extractSection(/3️⃣.*?\\n([\\s\\S]*?)4️⃣/, raw).replace(/\\n/g, \"\").trim();\n\n// 4️⃣ SEO Description\nlet description = extractSection(/4️⃣.*?\\n([\\s\\S]*?)5️⃣/, raw).trim();\n\n// 5️⃣ Thumbnail AI Prompt\nlet thumbnailPrompt = extractSection(/5️⃣.*?\\n([\\s\\S]*?)6️⃣/, raw).trim();\n\n// 6️⃣ Thumbnail Tagline\nlet tagline = extractSection(/6️⃣.*?\\n([\\s\\S]*)$/, raw).replace(/[\"\\n]/g, \"\").trim();\n\nreturn [\n {\n json: {\n \"YouTube Titles\": titles,\n \"YouTube Tags\": tags,\n \"YouTube Keywords\": keywords,\n \"SEO Description\": description,\n \"Thumbnail AI Prompt\": thumbnailPrompt,\n \"Thumbnail Tagline\": tagline\n }\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "e6ae98e2-2599-4006-ac63-40f43198812e",
"name": "태그, 설명 등으로 GSheet 행 업데이트",
"type": "n8n-nodes-base.googleSheets",
"position": [
-1168,
192
],
"parameters": {
"columns": {
"value": {
"Number": "={{ $('Google Sheets Trigger').item.json.Number }}",
"Youtube Tags": "={{ $json['YouTube Tags'] }}",
"Youtube Title": "={{ $json['YouTube Titles'] }}",
"Youtube Keywords": "={{ $json['YouTube Keywords'] }}",
"Youtube Description": "={{ $json['SEO Description'] }}",
"Youtube Thumbnail Brief": "={{ $json['Thumbnail AI Prompt'] }}",
"Youtube Thumbnail Tagline": "={{ $json['Thumbnail Tagline'] }}"
},
"schema": [
{
"id": "Number",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Roman Hindi Script",
"type": "string",
"display": true,
"required": false,
"displayName": "Roman Hindi Script",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "English script",
"type": "string",
"display": true,
"required": false,
"displayName": "English script",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Youtube Title",
"type": "string",
"display": true,
"required": false,
"displayName": "Youtube Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Youtube Tags",
"type": "string",
"display": true,
"required": false,
"displayName": "Youtube Tags",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Youtube Keywords",
"type": "string",
"display": true,
"required": false,
"displayName": "Youtube Keywords",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Youtube Description",
"type": "string",
"display": true,
"required": false,
"displayName": "Youtube Description",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Youtube Thumbnail Brief",
"type": "string",
"display": true,
"required": false,
"displayName": "Youtube Thumbnail Brief",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Youtube Thumbnail Tagline",
"type": "string",
"display": true,
"required": false,
"displayName": "Youtube Thumbnail Tagline",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Youtube Generated Thumbnail",
"type": "string",
"display": true,
"required": false,
"displayName": "Youtube Generated Thumbnail",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Number"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1BMtXN3Wl_pqyHJQW9KfRaErjPmg5wrm9kfIYcnuUVAM/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1BMtXN3Wl_pqyHJQW9KfRaErjPmg5wrm9kfIYcnuUVAM",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1BMtXN3Wl_pqyHJQW9KfRaErjPmg5wrm9kfIYcnuUVAM/edit?usp=drivesdk",
"cachedResultName": "Youtube Automation"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "S5JvudyeIyaJADDa",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "f0a5ba4b-4dba-4acc-bc80-1e66f6181e32",
"name": "동적 프롬프트 생성을 위한 Python 코드",
"type": "n8n-nodes-base.code",
"position": [
-704,
320
],
"parameters": {
"language": "python",
"pythonCode": "import uuid\n\nthumbnail_brief = items[0][\"json\"].get(\"Youtube Thumbnail Brief\", \"\")\ntagline = items[0][\"json\"].get(\"Youtube Thumbnail Tagline\", \"\")\n\n# Final prompt for Runware AI\nprompt = (\n \"Generate a professional YouTube thumbnail.\\n\\n\"\n f\"Thumbnail Context:\\n{thumbnail_brief}\\n\\n\"\n f\"Main Tagline: '{tagline}'\\n\\n\"\n \"Thumbnail requirements:\\n\"\n \"- Bold, central tagline text\\n\"\n \"- Cinematic lighting, vibrant colors\\n\"\n \"- Highly clickable YouTube style\\n\"\n \"- 1280x720 resolution\"\n)\n\npayload = {\n \"taskType\": \"imageInference\",\n \"taskUUID\": str(uuid.uuid4()),\n \"positivePrompt\": prompt,\n \"width\": 1280,\n \"height\": 720,\n \"model\": \"bytedance:3@1\",\n \"numberResults\": 1,\n \"outputFileName\": \"thumbnail.png\"\n}\n\nreturn {\"data\": [payload]}\n"
},
"typeVersion": 2
},
{
"id": "4478f8d0-f766-42e9-9d8b-f9183539ab23",
"name": "썸네일 이미지 생성을 위한 Runware API 호출 요청",
"type": "n8n-nodes-base.httpRequest",
"position": [
-416,
-16
],
"parameters": {
"url": "https://api.runware.ai/v1/image",
"method": "POST",
"options": {},
"jsonBody": "={{ $json.data }}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "3e233517-bbca-420e-a081-6ce8ca14a77a",
"name": "썸네일 이미지로 GSheet 업데이트",
"type": "n8n-nodes-base.googleSheets",
"position": [
-240,
-16
],
"parameters": {
"columns": {
"value": {
"Number": "={{ $('Google Sheets Trigger').item.json.Number }}",
"Youtube Generated Thumbnail": "={{ $json.data[0].imageURL }}"
},
"schema": [
{
"id": "Number",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Roman Hindi Script",
"type": "string",
"display": true,
"required": false,
"displayName": "Roman Hindi Script",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "English script",
"type": "string",
"display": true,
"required": false,
"displayName": "English script",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Youtube Title",
"type": "string",
"display": true,
"required": false,
"displayName": "Youtube Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Youtube Tags",
"type": "string",
"display": true,
"required": false,
"displayName": "Youtube Tags",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Youtube Keywords",
"type": "string",
"display": true,
"required": false,
"displayName": "Youtube Keywords",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Youtube Description",
"type": "string",
"display": true,
"required": false,
"displayName": "Youtube Description",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Youtube Thumbnail Brief",
"type": "string",
"display": true,
"required": false,
"displayName": "Youtube Thumbnail Brief",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Youtube Thumbnail Tagline",
"type": "string",
"display": true,
"required": false,
"displayName": "Youtube Thumbnail Tagline",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Youtube Generated Thumbnail",
"type": "string",
"display": true,
"required": false,
"displayName": "Youtube Generated Thumbnail",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Number"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1BMtXN3Wl_pqyHJQW9KfRaErjPmg5wrm9kfIYcnuUVAM/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1BMtXN3Wl_pqyHJQW9KfRaErjPmg5wrm9kfIYcnuUVAM",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1BMtXN3Wl_pqyHJQW9KfRaErjPmg5wrm9kfIYcnuUVAM/edit?usp=drivesdk",
"cachedResultName": "Youtube Automation"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "S5JvudyeIyaJADDa",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "fc5309f3-e498-4dd4-9e17-e89438661df0",
"name": "스티커 메모",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3072,
448
],
"parameters": {
"height": 224,
"content": "## Step-by-Step Tutorial YouTube Video \n\n## [Follow Video- Click here](https://youtu.be/R426d84slWY?si=Ecozf55ypxg6PnQz)"
},
"typeVersion": 1
},
{
"id": "4ebd0064-f716-4fc0-9c87-d5d4a3590b0f",
"name": "스티커 메모1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1840,
-544
],
"parameters": {
"width": 352,
"height": 672,
"content": "## Prompt for Generating YouTue Tags, Description so on..\n\n{{ $json['English script'] }}\n\nUse the provided English script and generate:\nGenerate the following:\n\n1️⃣ 10 Best Engaging YouTube Titles (≤ 70 characters each)\n\n2️⃣ Best Engaging YouTube Tags (comma-separated, up to 20)\n\n3️⃣ Best Engaging YouTube Keywords (comma-separated, up to 20)\n\n4️⃣ SEO-Friendly YouTube Video Description (optimized for 2025 algorithm, includes keywords, tags, hook, timestamps, engagement call-to-action, hashtags, and Google Search Keywords section)\n\n5️⃣ Thumbnail AI Prompt (realistic, describes main idea, bold clickable text, color scheme, visual elements, emotion, layout, realistic photography style, 1280×720, 16:9, suitable for MidJourney/DALL·E/Runware)\n\n6️⃣ Thumbnail Tagline (single catchy 3–5 word tagline)"
},
"typeVersion": 1
},
{
"id": "287cad96-b7b8-4f90-a2f9-eab7672a1b9d",
"name": "스티커 메모2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1408,
-544
],
"parameters": {
"width": 448,
"height": 672,
"content": "## Javascript code for separating the data\n\nconst raw = $input.first().json.message.content;\n\n// Helper function to extract section between markers\nfunction extractSection(regex, input) {\n const match = input.match(regex);\n return match ? match[1].trim() : \"\";\n}\n\n// 1️⃣ Titles\nlet titlesRaw = extractSection(/1️⃣.*?\\n([\\s\\S]*?)2️⃣/, raw);\nlet titles = titlesRaw\n .split(/\\n|-/)\n .map(t => t.replace(/^\\d+\\.?\\s*/, \"\").trim())\n .filter(t => t.length > 0);\n\n// 2️⃣ Tags\nlet tags = extractSection(/2️⃣.*?\\n([\\s\\S]*?)3️⃣/, raw).replace(/\\n/g, \"\").trim();\n\n// 3️⃣ Keywords\nlet keywords = extractSection(/3️⃣.*?\\n([\\s\\S]*?)4️⃣/, raw).replace(/\\n/g, \"\").trim();\n\n// 4️⃣ SEO Description\nlet description = extractSection(/4️⃣.*?\\n([\\s\\S]*?)5️⃣/, raw).trim();\n\n// 5️⃣ Thumbnail AI Prompt\nlet thumbnailPrompt = extractSection(/5️⃣.*?\\n([\\s\\S]*?)6️⃣/, raw).trim();\n\n// 6️⃣ Thumbnail Tagline\nlet tagline = extractSection(/6️⃣.*?\\n([\\s\\S]*)$/, raw).replace(/[\"\\n]/g, \"\").trim();\n\nreturn [\n {\n json: {\n \"YouTube Titles\": titles,\n \"YouTube Tags\": tags,\n \"YouTube Keywords\": keywords,\n \"SEO Description\": description,\n \"Thumbnail AI Prompt\": thumbnailPrompt,\n \"Thumbnail Tagline\": tagline\n }\n }\n];\n"
},
"typeVersion": 1
},
{
"id": "8ac19d3d-486e-4772-8871-64e0246b4ca5",
"name": "스티커 메모3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-832,
528
],
"parameters": {
"width": 464,
"height": 672,
"content": "## Python code for generating dynamic prompt\n\nimport uuid\n\nthumbnail_brief = items[0][\"json\"].get(\"Youtube Thumbnail Brief\", \"\")\ntagline = items[0][\"json\"].get(\"Youtube Thumbnail Tagline\", \"\")\n\nprompt = (\n \"Generate a professional YouTube thumbnail.\\n\\n\"\n f\"Thumbnail Context:\\n{thumbnail_brief}\\n\\n\"\n f\"Main Tagline: '{tagline}'\\n\\n\"\n \"Thumbnail requirements:\\n\"\n \"- Bold, central tagline text\\n\"\n \"- Cinematic lighting, vibrant colors\\n\"\n \"- Highly clickable YouTube style\\n\"\n \"- 1280x720 resolution\"\n)\n\npayload = {\n \"taskType\": \"imageInference\",\n \"taskUUID\": str(uuid.uuid4()),\n \"positivePrompt\": prompt,\n \"width\": 1280,\n \"height\": 720,\n \"model\": \"bytedance:3@1\",\n \"numberResults\": 1,\n \"outputFileName\": \"thumbnail.png\"\n}\n\nreturn {\"data\": [payload]}"
},
"typeVersion": 1
},
{
"id": "a67690da-e029-4458-a2c4-ff72ff6b94ca",
"name": "스티커 메모4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2560,
80
],
"parameters": {
"height": 96,
"content": "## Add your OpenAI Keys\n"
},
"typeVersion": 1
},
{
"id": "caec88cf-9d1a-4f52-bc18-bc2b5281d976",
"name": "스티커 메모5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3008,
112
],
"parameters": {
"width": 176,
"height": 112,
"content": "## Connect with your Google Sheet\n"
},
"typeVersion": 1
},
{
"id": "5ac6a066-7d50-46b2-84ec-8529b9878cb5",
"name": "스티커 메모6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-400,
-192
],
"parameters": {
"height": 144,
"content": "## Add your RUNWARE API or any other 3rd party"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "eed95939-cf9f-4852-8ecb-997cf777c3c0",
"connections": {
"f268ec0d-7715-41bd-9e1a-7cc9285c5ec9": {
"main": [
[
{
"node": "f92a73f2-3901-4576-b1e8-9836672a5977",
"type": "main",
"index": 0
}
]
]
},
"064a7b70-e5a9-4e9a-b7ac-50ad3e1a7840": {
"main": [
[
{
"node": "12157d7c-4dae-4a06-be7b-23f39584d3c5",
"type": "main",
"index": 0
}
]
]
},
"bfc19dfc-5a3d-4235-a630-d12126afc3a7": {
"main": [
[
{
"node": "3342ff7b-5622-4aaf-8f8a-781285e027d9",
"type": "main",
"index": 0
}
]
]
},
"12157d7c-4dae-4a06-be7b-23f39584d3c5": {
"main": [
[
{
"node": "bfc19dfc-5a3d-4235-a630-d12126afc3a7",
"type": "main",
"index": 0
}
]
]
},
"f92a73f2-3901-4576-b1e8-9836672a5977": {
"main": [
[
{
"node": "064a7b70-e5a9-4e9a-b7ac-50ad3e1a7840",
"type": "main",
"index": 0
}
],
[
{
"node": "c27724ad-9f25-4e49-b9fb-2ca2bfa3e778",
"type": "main",
"index": 0
}
]
]
},
"a601a771-5858-43cf-aa6e-3c36e2a6033f": {
"main": [
[
{
"node": "e6ae98e2-2599-4006-ac63-40f43198812e",
"type": "main",
"index": 0
}
]
]
},
"f0a5ba4b-4dba-4acc-bc80-1e66f6181e32": {
"main": [
[
{
"node": "4478f8d0-f766-42e9-9d8b-f9183539ab23",
"type": "main",
"index": 0
}
]
]
},
"3342ff7b-5622-4aaf-8f8a-781285e027d9": {
"main": [
[
{
"node": "a601a771-5858-43cf-aa6e-3c36e2a6033f",
"type": "main",
"index": 0
}
]
]
},
"e6ae98e2-2599-4006-ac63-40f43198812e": {
"main": [
[
{
"node": "f0a5ba4b-4dba-4acc-bc80-1e66f6181e32",
"type": "main",
"index": 0
}
]
]
},
"4478f8d0-f766-42e9-9d8b-f9183539ab23": {
"main": [
[
{
"node": "3e233517-bbca-420e-a081-6ce8ca14a77a",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 콘텐츠 제작, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
Printify 자동화 - 제목 및 설명 업데이트 - AlexK1919
GPT-4o-mini를 사용하여 Printify용 SEO 제품 제목 및 설명 자동 생성
If
Set
Code
+
If
Set
Code
26 노드Amit Mehta
콘텐츠 제작
批量 SEO 콘텐츠 생성 및 AI 이미지 포함 Webflow 드래그 앤 드롭 생성 (템플릿)
GPT, Gemini 이미지, Webflow 드라フト를 사용하여 대량 SEO 콘텐츠 생성
If
Set
Code
+
If
Set
Code
54 노드Dahiana
콘텐츠 제작
1. 플레이리스트 상세 설정 로봇 복사본
Suno, GPT-4, Runway, Creatomate로 AI 생성 YouTube 음악 플레이리스트 생성
If
Set
Code
+
If
Set
Code
203 노드Joseph
콘텐츠 제작
LinkedIn 잠재 고객 정보 풍부화 및 AI 개인화 추격
LinkedIn 잠재 고객 정보 풍부화 및 개인화된 콜드 콜, Hunter.io, GPT-4 및 Sheets 통합
If
Set
Code
+
If
Set
Code
18 노드Amirul Hakimi
콘텐츠 제작
AI 기반 동영상 제작 및 Instagram, TikTok, YouTube 업로드
클라우드 드라이브 기반 AI 기반 비디오 제작 및 Instagram, TikTok, YouTube 업로드
If
Set
Code
+
If
Set
Code
53 노드DevCode Journey
콘텐츠 제작
소셜 미디어 마케팅 콘텐츠 생성
GPT-4, Google 스프레드시트 및 문서를 사용하여 플랫폼별 마케팅 콘텐츠 자동 생성
If
Set
Code
+
If
Set
Code
19 노드ConceptRecall
콘텐츠 제작