
YouTube Thumbnail Generator with OpenAI & Apify
描述
分类
🤖 AI & Machine Learning
使用的节点
n8n-nodes-base.setn8n-nodes-base.editImagen8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.formTriggern8n-nodes-base.httpRequestn8n-nodes-base.httpRequest
价格免费
浏览量0
最后更新11/28/2025
workflow.json
{
"meta": {
"instanceId": "efb474b59b0341d7791932605bd9ff04a6c7ed9941fdd53dc4a2e4b99a6f9439",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "41c3bd43-1ed6-4434-a9d7-0eb8acd3e063",
"name": "Assign parameters",
"type": "n8n-nodes-base.set",
"position": [
-1240,
60
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "b836ba12-262a-4fed-a31d-9e2f6514137a",
"name": "startUrls",
"type": "array",
"value": "=[\n \"{{ $json['Youtube URL'] }}\" \n ]"
},
{
"id": "c96b80ed-077b-4eaa-a371-77127ef5ee4b",
"name": "",
"type": "string",
"value": ""
}
]
}
},
"typeVersion": 3.4
},
{
"id": "1107a130-42e7-4234-95d7-c72fa327e17c",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1460,
-280
],
"parameters": {
"color": 6,
"width": 380,
"height": 660,
"content": "### 🔧 Step-by-Step Setup\n\n#### 1️⃣ Form & Parameter Assignment\n- **Node**: `Form Trigger`\n- **How it works**: Collects the YouTube URL via a form embedded in your n8n instance.\n- **API Required**: None\n- **Additional Node**: `Set`\n - Converts the single input URL into the format Apify expects: an array of `{ url }` objects."
},
"typeVersion": 1
},
{
"id": "19f794fc-7a7e-4c04-b413-ddcc16a58d3a",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1060,
-280
],
"parameters": {
"width": 420,
"height": 660,
"content": "#### 2️⃣ Apify Actors for Data Extraction\n- **Node**: `HTTP Request (Query Metadata)`\n - **URL**: `https://api.apify.com/v2/acts/streamers~youtube-scraper/run-sync-get-dataset-items`\n - **Payload**: JSON with `startUrls` array and filtering options like `maxResults`, `isHD`, etc.\n- **Node**: `HTTP Request (Query Transcript)`\n - **URL**: `https://api.apify.com/v2/acts/topaz_sharingan~Youtube-Transcript-Scraper/run-sync-get-dataset-items`\n - **Payload**: `startUrls` array\n- **API Required**: Apify API Token (via HTTP Query Auth)\n- **Notes**: You must have an Apify account and actor credits to use these actors."
},
"typeVersion": 1
},
{
"id": "b32862a1-954b-4ba0-a249-1b8ad5cc1365",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-620,
-280
],
"parameters": {
"color": 3,
"width": 560,
"height": 660,
"content": "#### 3️⃣ OpenAI GPT-4o & DALL·E Generation\n- **Node**: `OpenAI (Prompt Creator)`\n - Uses the transcript and title to generate a DALL·E-compatible visual prompt.\n- **Node**: `OpenAI (Image Generator)`\n - Resource: `image`\n - Model: DALL·E (default with GPT-4o key)\n- **API Required**: OpenAI API Key\n- **Prompt Strategy**:\n```markdown\nCreate a minimalist YouTube thumbnail in an illustration style. The background should be a very simple, uncluttered setting with soft, ambient lighting that subtly reflects the essence of the transcript. The overall mood should be professional and non-cluttered, ensuring that the text overlay stands out without distraction. Do not include any text.\n```"
},
"typeVersion": 1
},
{
"id": "c9c56605-3c8a-4f89-bc21-f124ac8a835e",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-40,
-280
],
"parameters": {
"height": 660,
"content": "#### 4️⃣ Resize for YouTube Format\n- **Node**: `Edit Image`\n- **Purpose**: Resize final image to 1280x720 with `ignoreAspectRatio` set to true.\n- **No API required** — this runs entirely in n8n.\n\n---"
},
"typeVersion": 1
},
{
"id": "7cd80358-da9e-45a1-865b-d4897b7fd08f",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1460,
-460
],
"parameters": {
"color": 4,
"width": 1660,
"content": "### 👤 Need more help? \n**Robert Breen** \nAutomation Consultant | AI Workflow Designer | n8n Expert \n📧 [[email protected]](mailto:[email protected]) \n🔗 [LinkedIn](https://www.linkedin.com/in/robert-breen-29429625/)"
},
"typeVersion": 1
},
{
"id": "03071d6f-19c8-4322-81df-86976686304b",
"name": "Get URL",
"type": "n8n-nodes-base.formTrigger",
"position": [
-1400,
220
],
"webhookId": "8d5b8cc7-33d0-40c5-a02e-91bf32816e0f",
"parameters": {
"options": {},
"formTitle": "Get URL",
"formFields": {
"values": [
{
"fieldLabel": "Youtube URL",
"placeholder": "https://www.youtube.com/watch?v=lW5xEm7iSXk",
"requiredField": true
}
]
},
"formDescription": "get URL"
},
"typeVersion": 2.2
},
{
"id": "41fb5123-61fa-4221-ab83-7aa62f6186f2",
"name": "Query Metadata",
"type": "n8n-nodes-base.httpRequest",
"position": [
-1000,
180
],
"parameters": {
"url": "=https://api.apify.com/v2/acts/streamers~youtube-scraper/run-sync-get-dataset-items\n",
"method": "POST",
"options": {},
"jsonBody": "={\n \"downloadSubtitles\": false,\n \"hasCC\": false,\n \"hasLocation\": false,\n \"hasSubtitles\": false,\n \"is360\": false,\n \"is3D\": false,\n \"is4K\": false,\n \"isBought\": false,\n \"isHD\": false,\n \"isHDR\": false,\n \"isLive\": false,\n \"isVR180\": false,\n \"maxResultStreams\": 0,\n \"maxResults\": 1,\n \"maxResultsShorts\": 0,\n \"preferAutoGeneratedSubtitles\": false,\n \"saveSubsToKVS\": false,\n \"startUrls\": [\n {\n \"url\": \"{{ $('Get URL').item.json['Youtube URL'] }}\" ,\n \"method\": \"GET\"\n }\n ]\n} ",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpQueryAuth"
},
"credentials": {
"httpQueryAuth": {
"id": "yLUXsSPePLOGnHmf",
"name": "Query Auth account"
}
},
"typeVersion": 4.2
},
{
"id": "efbce0a6-7735-4afb-abce-60d0d3fc6d7a",
"name": "Query Transcript",
"type": "n8n-nodes-base.httpRequest",
"position": [
-800,
100
],
"parameters": {
"url": "=https://api.apify.com/v2/acts/topaz_sharingan~Youtube-Transcript-Scraper/run-sync-get-dataset-items",
"method": "POST",
"options": {},
"sendBody": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "startUrls",
"value": "={{ $('Assign parameters').item.json.startUrls }}"
}
]
},
"genericAuthType": "httpQueryAuth"
},
"credentials": {
"httpQueryAuth": {
"id": "yLUXsSPePLOGnHmf",
"name": "Query Auth account"
}
},
"typeVersion": 4.2
},
{
"id": "9c564d2d-dcdd-4f2e-bd72-5edf38a0e0e4",
"name": "Image Prompt Generator",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
-580,
240
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o",
"cachedResultName": "GPT-4O"
},
"options": {},
"messages": {
"values": [
{
"content": "=Analyze the transcript and video title below and generate a single, detailed prompt for DALL-E to create a YouTube thumbnail image. The prompt must include:\n\nCreate a minimalist YouTube thumbnail in an illustration style. The background should be a very simple, uncluttered setting with soft, ambient lighting that subtly reflects the essence of the transcript. The overall mood should be professional and non-cluttered, ensuring that the text overlay stands out without distraction. Do not include any text.\n\nTranscript: {{ $json.max_transcript }}\nVideo Title: {{ $json.videoTitle }}"
}
]
},
"jsonOutput": true
},
"credentials": {
"openAiApi": {
"id": "ghJTvay8CvwXDsXz",
"name": "OpenAi account"
}
},
"typeVersion": 1.8
},
{
"id": "5eacaebd-8705-48cf-88c1-44704cbb737b",
"name": "Create Image",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
-240,
220
],
"parameters": {
"prompt": "={{ $json.message.content.prompt }}",
"options": {
"size": "1792x1024",
"returnImageUrls": false
},
"resource": "image"
},
"credentials": {
"openAiApi": {
"id": "ghJTvay8CvwXDsXz",
"name": "OpenAi account"
}
},
"typeVersion": 1.8
},
{
"id": "3172d569-b188-45dd-879f-c1ea5c0e7d8c",
"name": "Resize Image",
"type": "n8n-nodes-base.editImage",
"position": [
20,
200
],
"parameters": {
"width": 1280,
"height": 720,
"options": {
"format": "jpeg",
"fileName": "={{ $('Query Transcript').item.json.videoTitle }}"
},
"operation": "resize",
"resizeOption": "ignoreAspectRatio"
},
"typeVersion": 1
}
],
"pinData": {
"Query Metadata": [
{
"id": "lW5xEm7iSXk",
"url": "https://www.youtube.com/watch?v=lW5xEm7iSXk",
"date": "2025-08-01T10:01:29.000Z",
"text": "Instead of juggling complex subworkflows across multiple tabs, you can now build layered agent systems on a single canvas - making them easier to create, visualize, and debug. All thanks to the new AI Agent Tool node, out on n8n version 1.103.0.\n\n@theflowgrammer walks through this new feature 👇\n\n00:00 - Intro\n00:10 - Context: standard AI Agent with subworkflows\n00:46 - Introducing the AI Agent Tool node\n02:29 - Benefits of this approach\n04:47 - Wrap up\n\nFollow Max on LinkedIn: / maxtkacz \n\n🔗 Links and Resources:\nhttps://n8n.io to sign up for n8n cloud\nhttps://docs.n8n.io for documentation (incl self-hosting n8n)\nhttps://community.n8n.io/ for help whilst building",
"type": "video",
"input": "https://www.youtube.com/watch?v=lW5xEm7iSXk",
"likes": 842,
"title": "n8n Just Made Multi Agent AI Way Easier: New AI Agent Tool",
"formats": [],
"duration": "00:05:24",
"hashtags": [],
"location": "BERLIN",
"channelId": "UCiHVTkJtWSdc9N3h0nUGWLg",
"subtitles": null,
"viewCount": 44629,
"channelUrl": "https://www.youtube.com/@n8n-io",
"channelName": "n8n",
"isMonetized": null,
"thumbnailUrl": "https://i.ytimg.com/vi/lW5xEm7iSXk/maxresdefault.jpg",
"commentsCount": 55,
"isMembersOnly": false,
"channelUsername": "n8n-io",
"descriptionLinks": [
{
"url": "https://www.youtube.com/@theflowgrammer",
"text": "@theflowgrammer"
},
{
"url": "https://www.youtube.com/watch?v=lW5xEm7iSXk",
"text": "00:00"
},
{
"url": "https://www.youtube.com/watch?v=lW5xEm7iSXk&t=10s",
"text": "00:10"
},
{
"url": "https://www.youtube.com/watch?v=lW5xEm7iSXk&t=46s",
"text": "00:46"
},
{
"url": "https://www.youtube.com/watch?v=lW5xEm7iSXk&t=149s",
"text": "02:29"
},
{
"url": "https://www.youtube.com/watch?v=lW5xEm7iSXk&t=287s",
"text": "04:47"
},
{
"url": "https://www.linkedin.com/in/maxtkacz/",
"text": " / maxtkacz "
},
{
"url": "https://n8n.io/",
"text": "https://n8n.io"
},
{
"url": "https://docs.n8n.io/",
"text": "https://docs.n8n.io"
},
{
"url": "https://community.n8n.io/",
"text": "https://community.n8n.io/"
}
],
"commentsTurnedOff": false,
"numberOfSubscribers": 121000
}
]
},
"connections": {
"Get URL": {
"main": [
[
{
"node": "Assign parameters",
"type": "main",
"index": 0
}
]
]
},
"Create Image": {
"main": [
[
{
"node": "Resize Image",
"type": "main",
"index": 0
}
]
]
},
"Resize Image": {
"main": [
[]
]
},
"Query Metadata": {
"main": [
[
{
"node": "Query Transcript",
"type": "main",
"index": 0
}
]
]
},
"Query Transcript": {
"main": [
[
{
"node": "Image Prompt Generator",
"type": "main",
"index": 0
}
]
]
},
"Assign parameters": {
"main": [
[
{
"node": "Query Metadata",
"type": "main",
"index": 0
}
]
]
},
"Image Prompt Generator": {
"main": [
[
{
"node": "Create Image",
"type": "main",
"index": 0
}
]
]
}
}
}