{
  "id": "D0sZR93pIfNqpzPN",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Youtube SEO Automation 1",
  "tags": [],
  "nodes": [
    {
      "id": "f268ec0d-7715-41bd-9e1a-7cc9285c5ec9",
      "name": "Google Sheets Trigger",
      "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": "No Operation, do nothing",
      "type": "n8n-nodes-base.noOp",
      "position": [
        -2528,
        416
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "f92a73f2-3901-4576-b1e8-9836672a5977",
      "name": "If English script is available or not",
      "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": "Generating English Script",
      "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": "Creating field  for english script",
      "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": "Adding English script to 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": "Generating Youtube Tags, Keywords and more.",
      "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\ufe0f\u20e3 10 Best Engaging YouTube Titles (\u2264 70 characters each)\n\n2\ufe0f\u20e3 Best Engaging YouTube Tags (comma-separated, up to 20)\n\n3\ufe0f\u20e3 Best Engaging YouTube Keywords (comma-separated, up to 20)\n\n4\ufe0f\u20e3 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\ufe0f\u20e3 Thumbnail AI Prompt (realistic, describes main idea, bold clickable text, color scheme, visual elements, emotion, layout, realistic photography style, 1280\u00d7720, 16:9, suitable for MidJourney/DALL\u00b7E/Runware)\n\n6\ufe0f\u20e3 Thumbnail Tagline (single catchy 3\u20135 word tagline)"
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "a601a771-5858-43cf-aa6e-3c36e2a6033f",
      "name": "JS Code for separating different topics",
      "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\ufe0f\u20e3 Titles\nlet titlesRaw = extractSection(/1\ufe0f\u20e3.*?\\n([\\s\\S]*?)2\ufe0f\u20e3/, raw);\nlet titles = titlesRaw\n  .split(/\\n|-/)\n  .map(t => t.replace(/^\\d+\\.?\\s*/, \"\").trim())\n  .filter(t => t.length > 0);\n\n// 2\ufe0f\u20e3 Tags\nlet tags = extractSection(/2\ufe0f\u20e3.*?\\n([\\s\\S]*?)3\ufe0f\u20e3/, raw).replace(/\\n/g, \"\").trim();\n\n// 3\ufe0f\u20e3 Keywords\nlet keywords = extractSection(/3\ufe0f\u20e3.*?\\n([\\s\\S]*?)4\ufe0f\u20e3/, raw).replace(/\\n/g, \"\").trim();\n\n// 4\ufe0f\u20e3 SEO Description\nlet description = extractSection(/4\ufe0f\u20e3.*?\\n([\\s\\S]*?)5\ufe0f\u20e3/, raw).trim();\n\n// 5\ufe0f\u20e3 Thumbnail AI Prompt\nlet thumbnailPrompt = extractSection(/5\ufe0f\u20e3.*?\\n([\\s\\S]*?)6\ufe0f\u20e3/, raw).trim();\n\n// 6\ufe0f\u20e3 Thumbnail Tagline\nlet tagline = extractSection(/6\ufe0f\u20e3.*?\\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": "Updating row in GSheet with Tags, Description so on",
      "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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "f0a5ba4b-4dba-4acc-bc80-1e66f6181e32",
      "name": "Python code for creating Dynamic Prompt",
      "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": "HTTP Request calling  Runware API for generating Thumbnail image",
      "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": "Updating Gsheet with Thumbnail Image",
      "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": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "fc5309f3-e498-4dd4-9e17-e89438661df0",
      "name": "Sticky Note",
      "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": "Sticky Note1",
      "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\ufe0f\u20e3 10 Best Engaging YouTube Titles (\u2264 70 characters each)\n\n2\ufe0f\u20e3 Best Engaging YouTube Tags (comma-separated, up to 20)\n\n3\ufe0f\u20e3 Best Engaging YouTube Keywords (comma-separated, up to 20)\n\n4\ufe0f\u20e3 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\ufe0f\u20e3 Thumbnail AI Prompt (realistic, describes main idea, bold clickable text, color scheme, visual elements, emotion, layout, realistic photography style, 1280\u00d7720, 16:9, suitable for MidJourney/DALL\u00b7E/Runware)\n\n6\ufe0f\u20e3 Thumbnail Tagline (single catchy 3\u20135 word tagline)"
      },
      "typeVersion": 1
    },
    {
      "id": "287cad96-b7b8-4f90-a2f9-eab7672a1b9d",
      "name": "Sticky Note2",
      "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\ufe0f\u20e3 Titles\nlet titlesRaw = extractSection(/1\ufe0f\u20e3.*?\\n([\\s\\S]*?)2\ufe0f\u20e3/, raw);\nlet titles = titlesRaw\n  .split(/\\n|-/)\n  .map(t => t.replace(/^\\d+\\.?\\s*/, \"\").trim())\n  .filter(t => t.length > 0);\n\n// 2\ufe0f\u20e3 Tags\nlet tags = extractSection(/2\ufe0f\u20e3.*?\\n([\\s\\S]*?)3\ufe0f\u20e3/, raw).replace(/\\n/g, \"\").trim();\n\n// 3\ufe0f\u20e3 Keywords\nlet keywords = extractSection(/3\ufe0f\u20e3.*?\\n([\\s\\S]*?)4\ufe0f\u20e3/, raw).replace(/\\n/g, \"\").trim();\n\n// 4\ufe0f\u20e3 SEO Description\nlet description = extractSection(/4\ufe0f\u20e3.*?\\n([\\s\\S]*?)5\ufe0f\u20e3/, raw).trim();\n\n// 5\ufe0f\u20e3 Thumbnail AI Prompt\nlet thumbnailPrompt = extractSection(/5\ufe0f\u20e3.*?\\n([\\s\\S]*?)6\ufe0f\u20e3/, raw).trim();\n\n// 6\ufe0f\u20e3 Thumbnail Tagline\nlet tagline = extractSection(/6\ufe0f\u20e3.*?\\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": "Sticky Note3",
      "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": "Sticky Note4",
      "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": "Sticky Note5",
      "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": "Sticky Note6",
      "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,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "eed95939-cf9f-4852-8ecb-997cf777c3c0",
  "connections": {
    "Google Sheets Trigger": {
      "main": [
        [
          {
            "node": "If English script is available or not",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generating English Script": {
      "main": [
        [
          {
            "node": "Creating field  for english script",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Adding English script to GSheet": {
      "main": [
        [
          {
            "node": "Generating Youtube Tags, Keywords and more.",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Creating field  for english script": {
      "main": [
        [
          {
            "node": "Adding English script to GSheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If English script is available or not": {
      "main": [
        [
          {
            "node": "Generating English Script",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "No Operation, do nothing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "JS Code for separating different topics": {
      "main": [
        [
          {
            "node": "Updating row in GSheet with Tags, Description so on",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Python code for creating Dynamic Prompt": {
      "main": [
        [
          {
            "node": "HTTP Request calling  Runware API for generating Thumbnail image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generating Youtube Tags, Keywords and more.": {
      "main": [
        [
          {
            "node": "JS Code for separating different topics",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Updating row in GSheet with Tags, Description so on": {
      "main": [
        [
          {
            "node": "Python code for creating Dynamic Prompt",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request calling  Runware API for generating Thumbnail image": {
      "main": [
        [
          {
            "node": "Updating Gsheet with Thumbnail Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}