N
n8n Store
Workflow Market
YouTube Thumbnail Generator with OpenAI & Apify

YouTube Thumbnail Generator with OpenAI & Apify

by rbreen0 views

説明

Categories

🤖 AI & Machine Learning

Nodes Used

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
Price無料
Views0
最終更新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
          }
        ]
      ]
    }
  }
}

相关工作流