💥 Générer des vidéos virales IA avec NanoBanana et VEO3, les partager sur les réseaux sociaux avec Blotato - Vidéo

Avancé

Ceci est unMiscellaneous, Multimodal AIworkflow d'automatisation du domainecontenant 47 nœuds.Utilise principalement des nœuds comme Set, Code, Wait, Merge, Telegram. Générez des vidéos virales IA avec NanoBanana et VEO3, et partagez-les sur les réseaux sociaux via Blotato

Prérequis
  • Token Bot Telegram
  • Informations d'identification Google Drive API
  • Peut nécessiter les informations d'identification d'authentification de l'API cible
  • Informations d'identification Google Sheets API
  • Clé API OpenAI
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "id": "z8nPpsFFe7kDBQUm",
  "meta": {
    "instanceId": "a2b23892dd6989fda7c1209b381f5850373a7d2b85609624d7c2b7a092671d44",
    "templateCredsSetupCompleted": true
  },
  "name": "💥 Generate AI viral videos with NanoBanana & VEO3, shared on socials via Blotato - vide",
  "tags": [],
  "nodes": [
    {
      "id": "101bdee1-4de4-4b5e-9170-4d490d4e8128",
      "name": "Note adhésive 3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        -304
      ],
      "parameters": {
        "color": 4,
        "width": 1344,
        "height": 832,
        "content": "# 📑 STEP 5 — Auto-Post to All Platforms\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "db2db976-7988-4939-a931-b6b2b98570aa",
      "name": "Téléverser la vidéo sur BLOTATO",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        1024,
        320
      ],
      "parameters": {
        "mediaUrl": "={{ $('Download Video from VEO3').item.json.data.response.resultUrls[0] }}",
        "resource": "media"
      },
      "credentials": {
        "blotatoApi": {
          "id": "NtMnRSKAAN5u9lyc",
          "name": "Blotato account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "6866a654-e6a7-4543-b98a-8288f9d04b47",
      "name": "Youtube",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        1648,
        112
      ],
      "parameters": {
        "options": {},
        "platform": "youtube",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "8047",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/8047",
          "cachedResultName": "DR FIRASS (Dr. Firas)"
        },
        "postContentText": "={{ $('Save Caption Video to Google Sheets').item.json['CAPTION VIDEO'] }}",
        "postContentMediaUrls": "={{ $json.url }}",
        "postCreateYoutubeOptionTitle": "={{ $('Save Caption Video to Google Sheets').item.json['TITRE VIDEO'] }}",
        "postCreateYoutubeOptionPrivacyStatus": "private",
        "postCreateYoutubeOptionShouldNotifySubscribers": false
      },
      "credentials": {
        "blotatoApi": {
          "id": "NtMnRSKAAN5u9lyc",
          "name": "Blotato account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "a1b51932-2e2c-4e32-a37a-7ce94620cdd9",
      "name": "Tiktok",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        1280,
        -64
      ],
      "parameters": {
        "options": {},
        "platform": "tiktok",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "9332",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/9332",
          "cachedResultName": "docteur.firas"
        },
        "postContentText": "={{ $('Save Caption Video to Google Sheets').item.json['CAPTION VIDEO'] }}",
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "credentials": {
        "blotatoApi": {
          "id": "NtMnRSKAAN5u9lyc",
          "name": "Blotato account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "2c6cb6a6-e4b2-470d-8afb-b2c03b72e97b",
      "name": "Fusionner",
      "type": "n8n-nodes-base.merge",
      "position": [
        1936,
        16
      ],
      "parameters": {
        "mode": "chooseBranch",
        "numberInputs": 9
      },
      "typeVersion": 3.2
    },
    {
      "id": "bee496d6-fc2d-4f1c-812f-9d6be08154a7",
      "name": "Mettre à jour le statut en \"TERMINÉ\"",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2112,
        128
      ],
      "parameters": {
        "columns": {
          "value": {
            "STATUS": "Published",
            "IMAGE NAME": "={{ $('Telegram Trigger: Receive Video Idea').item.json.message.photo[2].file_unique_id }}"
          },
          "schema": [
            {
              "id": "IMAGE NAME",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "IMAGE NAME",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "IMAGE URL",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "IMAGE URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "IMAGE DESCRIPTION",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "IMAGE DESCRIPTION",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "CAPTION",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "CAPTION",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "URL VIDEO FINAL",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "URL VIDEO FINAL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "TITRE VIDEO",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "TITRE VIDEO",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "CAPTION VIDEO",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "CAPTION VIDEO",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "STATUS",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "STATUS",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "IMAGE NAME"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "51us92xkOlrvArhV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "5f7344d8-a277-457b-a33f-c48e2ced1e49",
      "name": "Linkedin",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        1472,
        -64
      ],
      "parameters": {
        "options": {},
        "platform": "linkedin",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "1446",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/1446",
          "cachedResultName": "Samuel Amalric"
        },
        "postContentText": "={{ $('Save Caption Video to Google Sheets').item.json['CAPTION VIDEO'] }}",
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "credentials": {
        "blotatoApi": {
          "id": "NtMnRSKAAN5u9lyc",
          "name": "Blotato account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "31bc2347-2457-4fad-8436-09282df89609",
      "name": "Facebook",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        1648,
        -64
      ],
      "parameters": {
        "options": {},
        "platform": "facebook",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "1759",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/1759",
          "cachedResultName": "Firass Ben"
        },
        "facebookPageId": {
          "__rl": true,
          "mode": "list",
          "value": "101603614680195",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/1759/subaccounts/101603614680195",
          "cachedResultName": "Dr. Firas"
        },
        "postContentText": "={{ $('Save Caption Video to Google Sheets').item.json['CAPTION VIDEO'] }}",
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "credentials": {
        "blotatoApi": {
          "id": "NtMnRSKAAN5u9lyc",
          "name": "Blotato account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "06e29e46-c3ce-4c9e-825d-39df924a607d",
      "name": "Instagram",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        1280,
        112
      ],
      "parameters": {
        "options": {},
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "11892",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/11892",
          "cachedResultName": "doc.firass"
        },
        "postContentText": "={{ $('Save Caption Video to Google Sheets').item.json['CAPTION VIDEO'] }}",
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "credentials": {
        "blotatoApi": {
          "id": "NtMnRSKAAN5u9lyc",
          "name": "Blotato account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "3f7560c8-3e4a-4d62-bf62-e8d543df8026",
      "name": "Threads",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        1280,
        320
      ],
      "parameters": {
        "options": {},
        "platform": "threads",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "2280",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/2280",
          "cachedResultName": "doc.firass"
        },
        "postContentText": "={{ $('Save Caption Video to Google Sheets').item.json['CAPTION VIDEO'] }}",
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "credentials": {
        "blotatoApi": {
          "id": "NtMnRSKAAN5u9lyc",
          "name": "Blotato account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "3e4b6251-7c56-40ca-8fb6-4b77c910a2e6",
      "name": "Bluesky",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        1472,
        320
      ],
      "parameters": {
        "options": {},
        "platform": "bluesky",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "6012",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/6012",
          "cachedResultName": "formationinternet.bsky.social"
        },
        "postContentText": "={{ $('Save Caption Video to Google Sheets').item.json['CAPTION VIDEO'] }}",
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "credentials": {
        "blotatoApi": {
          "id": "NtMnRSKAAN5u9lyc",
          "name": "Blotato account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "61f5f513-b7ec-40ca-a4a1-1b897f092a04",
      "name": "Pinterest",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        1648,
        320
      ],
      "parameters": {
        "options": {},
        "platform": "pinterest",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "363",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/363",
          "cachedResultName": "formationinternet2022"
        },
        "postContentText": "={{ $('Save Caption Video to Google Sheets').item.json['CAPTION VIDEO'] }}",
        "pinterestBoardId": {
          "__rl": true,
          "mode": "id",
          "value": "1146658823815436667"
        },
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "credentials": {
        "blotatoApi": {
          "id": "NtMnRSKAAN5u9lyc",
          "name": "Blotato account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "4fb185bf-f237-4b71-8557-178f15f0caec",
      "name": "Twitter (X)",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        1472,
        112
      ],
      "parameters": {
        "options": {},
        "platform": "twitter",
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "1289",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/1289",
          "cachedResultName": "Docteur_Firas"
        },
        "postContentText": "={{ $('Save Caption Video to Google Sheets').item.json['CAPTION VIDEO'] }}",
        "postContentMediaUrls": "={{ $json.url }}"
      },
      "credentials": {
        "blotatoApi": {
          "id": "NtMnRSKAAN5u9lyc",
          "name": "Blotato account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "cb9939c6-1c5c-448b-ab3a-a66d90767cf2",
      "name": "OpenAI Modèle de chat",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        480,
        32
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "6h3DfVhNPw9I25nO",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "2c244851-7835-4f4a-8fe9-10a26acf6365",
      "name": "Réfléchir",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        624,
        32
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "0695e935-93ac-48da-a893-1615ce22a6e7",
      "name": "Analyseur de sortie structurée",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        768,
        32
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"title\": \"string\",\n  \"final_prompt\": \"string\"\n}\n"
      },
      "typeVersion": 1.3
    },
    {
      "id": "ff995af1-503e-4356-8e67-6392b4629496",
      "name": "Envoyer l'URL vidéo via Telegram",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1008,
        -176
      ],
      "webhookId": "ea6e5974-1930-4b67-a51b-16249a9ed8bd",
      "parameters": {
        "text": "=Url VIDEO : {{ $('Download Video from VEO3').item.json.data.response.resultUrls[0] }}",
        "chatId": "={{ $('Telegram Trigger: Receive Video Idea').item.json.message.chat.id }}",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "bMkCsqYCSUBaiU60",
          "name": "Telegram account 12 - nanobanana"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "257eedc1-30c1-4e40-913b-24ceb018df28",
      "name": "Envoyer l'aperçu final de la vidéo",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1024,
        64
      ],
      "webhookId": "443fd41d-a051-45bf-ad68-173197dba26b",
      "parameters": {
        "file": "={{ $('Save Caption Video to Google Sheets').item.json['URL VIDEO FINAL'] }}",
        "chatId": "={{ $json.result.chat.id }}",
        "operation": "sendVideo",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "bMkCsqYCSUBaiU60",
          "name": "Telegram account 12 - nanobanana"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "11f4ee14-912b-4a77-8696-7d36f7fc8a21",
      "name": "Telegram Déclencheur : Recevoir une idée de vidéo",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        -208,
        -752
      ],
      "webhookId": "26dbe6f5-5197-4b2b-9e32-8060f2119686",
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "bMkCsqYCSUBaiU60",
          "name": "Telegram account 12 - nanobanana"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "45e0b8ee-b830-48bc-8a9a-a426a7afcd43",
      "name": "Définir l'invite principale",
      "type": "n8n-nodes-base.set",
      "position": [
        240,
        -192
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "cc2e0500-57b1-4615-82cb-1c950e5f2ec4",
              "name": "json_master",
              "type": "string",
              "value": "={\n  \"description\": \"Brief narrative description of the scene, focusing on key visual storytelling and product transformation.\",\n  \"style\": \"cinematic | photorealistic | stylized | gritty | elegant\",\n  \"camera\": {\n    \"type\": \"fixed | dolly | Steadicam | crane combo\",\n    \"movement\": \"describe any camera moves like slow push-in, pan, orbit\",\n    \"lens\": \"optional lens type or focal length for cinematic effect\"\n  },\n  \"lighting\": {\n    \"type\": \"natural | dramatic | high-contrast\",\n    \"sources\": \"key lighting sources (sunset, halogen, ambient glow...)\",\n    \"FX\": \"optional VFX elements like fog, reflections, flares\"\n  },\n  \"environment\": {\n    \"location\": \"describe location or room (kitchen, desert, basketball court...)\",\n    \"set_pieces\": [\n      \"list of key background or prop elements\",\n      \"e.g. hardwood floors, chain-link fence, velvet surface\"\n    ],\n    \"mood\": \"describe the ambient atmosphere (moody, clean, epic...)\"\n  },\n  \"elements\": [\n    \"main physical items involved (product box, accessories, vehicles...)\",\n    \"include brand visibility (logos, packaging, texture...)\"\n  ],\n  \"subject\": {\n    \"character\": {\n      \"description\": \"optional – physical description, outfit\",\n      \"pose\": \"optional – position or gesture\",\n      \"lip_sync_line\": \"optional – spoken line if there’s a voiceover\"\n    },\n    \"product\": {\n      \"brand\": \"Brand name\",\n      \"model\": \"Product model or name\",\n      \"action\": \"description of product transformation or assembly\"\n    }\n  },\n  \"motion\": {\n    \"type\": \"e.g. transformation, explosion, vortex\",\n    \"details\": \"step-by-step visual flow of how elements move or evolve\"\n  },\n  \"VFX\": {\n    \"transformation\": \"optional – describe style (neon trails, motion blur...)\",\n    \"impact\": \"optional – e.g. shockwave, glow, distortion\",\n    \"particles\": \"optional – embers, sparks, thread strands...\",\n    \"environment\": \"optional – VFX affecting the scene (ripples, wind...)\"\n  },\n  \"audio\": {\n    \"music\": \"optional – cinematic score, trap beat, ambient tone\",\n    \"sfx\": [\n      \"list of sound effects (zip, pop, woosh...)\"\n    ],\n    \"ambience\": \"optional – background soundscape (traffic, wind...)\",\n    \"voiceover\": {\n      \"delivery\": \"tone and style (confident, whisper, deep...)\",\n      \"line\": \"text spoken if applicable\"\n    }\n  },\n  \"ending\": \"Final shot description – what is seen or felt at the end (freeze frame, logo pulse, glow...)\",\n  \"text\": \"none | overlay | tagline | logo pulse at end only\",\n  \"format\": \"16:9 | 4k | vertical\",\n  \"keywords\": [\n    \"brand\",\n    \"scene style\",\n    \"motion type\",\n    \"camera style\",\n    \"sound mood\",\n    \"target theme\"\n  ]\n}\n"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "a27e8e28-cb43-4b3f-a96e-e986a25209fb",
      "name": "Agent IA : Générer un script vidéo",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        560,
        -192
      ],
      "parameters": {
        "text": "=Create a UGC-style video prompt using both the reference image and the user description.  \n\n**Inputs**  \n- User description (optional):  \n  `{{ $('Telegram Trigger: Receive Video Idea').item.json.message.caption }}`  \n- Reference image analysis (stay strictly faithful to what’s visible):  \n  `{{ $('Google Sheets: Update Image Description').item.json['IMAGE DESCRIPTION'] }}`  \n\n**Rules**  \n- Keep the style casual, authentic, and realistic. Avoid studio-like or cinematic language.  \n- Default model: `veo3_fast` (unless otherwise specified).  \n- Output only **one JSON object** with the key: `video_prompt`.  \n",
        "options": {
          "systemMessage": "=system_prompt:\n  ## SYSTEM PROMPT: Structured Video Ad Prompt Generator\n  A - Ask:\n    Generate a structured video ad prompt for cinematic generation, strictly based on the master schema provided in: {{ $json.json_master }}.\n    The final result must be a JSON object with exactly two top-level keys: `title` and `final_prompt`.\n\n  G - Guidance:\n    role: Creative Director\n    output_count: 1\n    character_limit: None\n    constraints:\n      - The output must be valid JSON.\n      - The `title` field should contain a short, descriptive and unique title (max 15 words).\n      - The `final_prompt` field must contain a **single-line JSON string** that follows the exact structure of {{ $json.json_master }} with all fields preserved.\n      - Do not include any explanations, markdown, or extra text — only the JSON object.\n      - Escape all inner quotes in the `final_prompt` string so it is valid as a stringified JSON inside another JSON.\n    tool_usage:\n      - Ensure consistent alignment across all fields (camera, lighting, motion, etc.).\n      - Maintain full structure even for optional fields (use \"none\", \"\", or [] as needed).\n\n  N - Notation:\n    format: JSON\n    expected_output:\n      {\n        \"title\": \"A unique short title for the scene\",\n        \"final_prompt\": \"{...stringified JSON of the full prompt...}\"\n      }\n\n"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2
    },
    {
      "id": "16902ea9-197e-4cac-936e-83c1fc226854",
      "name": "Générer la vidéo avec VEO3",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -160,
        320
      ],
      "parameters": {
        "url": "https://api.kie.ai/api/v1/veo/generate",
        "body": "={\n  \"prompt\": {{ $json.prompt }},\n  \"model\": \"{{ $('Google Sheets: Read Video Parameters (CONFIG)').item.json.model }}\",\n  \"aspectRatio\": \"{{ $json.aspectRatio }}\",\n  \"imageUrls\": [\n    \"{{ $('Download Edited Image').item.json.images[0].url }}\"\n  ]\n}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "raw",
        "authentication": "genericCredentialType",
        "rawContentType": "application/json",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "ho8ZjaYj1SY0icGT",
          "name": "Kie AI"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "a7fffb23-dba4-4d1e-a42e-191a1414ec60",
      "name": "Attendre le rendu VEO3",
      "type": "n8n-nodes-base.wait",
      "position": [
        48,
        320
      ],
      "webhookId": "f6d814f3-4eb8-4629-a920-134cfa4ea03b",
      "parameters": {
        "amount": 20
      },
      "typeVersion": 1.1
    },
    {
      "id": "67889216-2c0f-4ed8-ae54-8e7e7fdbac90",
      "name": "Télécharger la vidéo depuis VEO3",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        256,
        320
      ],
      "parameters": {
        "url": "https://api.kie.ai/api/v1/veo/record-info",
        "options": {},
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "taskId",
              "value": "={{ $('Generate Video with VEO3').item.json.data.taskId }}"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "ho8ZjaYj1SY0icGT",
          "name": "Kie AI"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "f6dda272-6129-4c04-b4c2-1e6bf5d156d8",
      "name": "Réécrire la légende avec GPT-4o",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        416,
        320
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o",
          "cachedResultName": "GPT-4O"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "=You are rewriting a TikTok video script, caption, and overlay —\nnot inventing a new one. You must follow this format and obey\nthese rules strictly.\n---\n### CONTEXT:\nHere is the content idea to use:{{ $('Telegram Trigger: Receive Video Idea').item.json.message.caption }}\n\nand the Title is : {{ $('AI Agent: Generate Video Script').item.json.output.title }}\n\n\nWrite the caption text using the topic.\n\n---\n- MUST be under 200 characters (yes \"Characters\" not wordcount)\nthis is an absolute MUST, no more than 200 characters!!! \n\n### FINAL OUTPUT FORMAT (no markdown formatting):\n\nDO NOT return any explanations. Only return the Caption Text\n"
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "6h3DfVhNPw9I25nO",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "8b4c6b55-a0d7-4a19-b85c-1927ccb5eaa2",
      "name": "Enregistrer la légende vidéo dans Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        720,
        320
      ],
      "parameters": {
        "columns": {
          "value": {
            "STATUS": "CREATE",
            "IMAGE NAME": "={{ $('Telegram Trigger: Receive Video Idea').item.json.message.photo[2].file_unique_id }}",
            "TITRE VIDEO": "={{ $('AI Agent: Generate Video Script').item.json.output.title }}",
            "CAPTION VIDEO": "={{ $json.message.content }}",
            "URL VIDEO FINAL": "={{ $('Download Video from VEO3').item.json.data.response.resultUrls[0] }}"
          },
          "schema": [
            {
              "id": "IMAGE NAME",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "IMAGE NAME",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "IMAGE URL",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "IMAGE URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "IMAGE DESCRIPTION",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "IMAGE DESCRIPTION",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "CAPTION",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "CAPTION",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "URL VIDEO FINAL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "URL VIDEO FINAL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "TITRE VIDEO",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "TITRE VIDEO",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "CAPTION VIDEO",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "CAPTION VIDEO",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "STATUS",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "STATUS",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "IMAGE NAME"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "51us92xkOlrvArhV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "30c415e0-58e0-48b9-b7e9-11dc5d979ac8",
      "name": "Formater l'invite",
      "type": "n8n-nodes-base.code",
      "position": [
        -160,
        16
      ],
      "parameters": {
        "jsCode": "const structuredPrompt = $input.first().json.output.final_prompt;\nreturn {\n  json: {\n    prompt: JSON.stringify(structuredPrompt), // this escapes it correctly!\n    model: \"veo3_fast\",\n    aspectRatio: \"16:9\"\n  }\n};\n"
      },
      "typeVersion": 2
    },
    {
      "id": "61ce4a03-4104-4beb-bb16-0b2d2dde142d",
      "name": "Note adhésive 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -272,
        -304
      ],
      "parameters": {
        "width": 1180,
        "height": 460,
        "content": "# 📑 STEP 3 — Generate Video Ad Script"
      },
      "typeVersion": 1
    },
    {
      "id": "9f91c353-3ad6-498c-ba14-907bb91e208c",
      "name": "Note adhésive 4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -272,
        208
      ],
      "parameters": {
        "width": 1180,
        "height": 320,
        "content": "# 📑 STEP 4 — Generate Video with VEO3"
      },
      "typeVersion": 1
    },
    {
      "id": "3051b833-571a-4f0c-993a-ca8ffd03e476",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -272,
        -944
      ],
      "parameters": {
        "width": 1184,
        "height": 592,
        "content": "# 📑 STEP 1 — Collect Idea & Image"
      },
      "typeVersion": 1
    },
    {
      "id": "785aa7c8-8921-4b6b-8db3-8d55e2a42564",
      "name": "Note adhésive 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        -944
      ],
      "parameters": {
        "width": 1328,
        "height": 592,
        "content": "# 📑 STEP 2 — Create Image with NanoBanana\n"
      },
      "typeVersion": 1
    },
    {
      "id": "fa25f6bf-d05b-4b8d-8a8a-b8684c601510",
      "name": "Telegram : Obtenir le fichier image",
      "type": "n8n-nodes-base.telegram",
      "position": [
        224,
        -880
      ],
      "webhookId": "06ceb31d-dcd9-4a9a-bbbe-a7bf7ae0ad4a",
      "parameters": {
        "fileId": "={{ $json.message.photo[2].file_id }}",
        "resource": "file",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "bMkCsqYCSUBaiU60",
          "name": "Telegram account 12 - nanobanana"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "7a362123-c86c-45f9-b80c-a5660f92da46",
      "name": "Google Drive : Téléverser l'image",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        240,
        -688
      ],
      "parameters": {
        "name": "={{ $('Telegram Trigger: Receive Video Idea').item.json.message.photo[2].file_unique_id }}",
        "driveId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "gzeHMd64HAz6HBIe",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "a9614733-44e3-4580-95f8-a955d9136be4",
      "name": "Google Sheets : Enregistrer l'image et la légende",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        240,
        -512
      ],
      "parameters": {
        "columns": {
          "value": {
            "STATUS": "EN COURS",
            "CAPTION": "={{ $('Telegram Trigger: Receive Video Idea').item.json.message.caption }}",
            "IMAGE URL": "={{ $json.webContentLink }}",
            "IMAGE NAME": "={{ $('Telegram Trigger: Receive Video Idea').item.json.message.photo[2].file_unique_id }}"
          },
          "schema": [
            {
              "id": "IMAGE NAME",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "IMAGE NAME",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "IMAGE URL",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "IMAGE URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "IMAGE DESCRIPTION",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "IMAGE DESCRIPTION",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "CAPTION",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "CAPTION",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "STATUS",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "STATUS",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "IMAGE NAME"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "51us92xkOlrvArhV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "a8e85901-2451-4037-ba0c-aa2b229c9d0f",
      "name": "Définir : Jeton du bot (Espace réservé)",
      "type": "n8n-nodes-base.set",
      "position": [
        480,
        -752
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "af62651a-3fc8-419d-908b-6514f6f4bcb3",
              "name": "YOUR_BOT_TOKEN",
              "type": "string",
              "value": ""
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "ae9da8d7-f2c4-4ada-897c-651176cbfdb6",
      "name": "Telegram API : Obtenir l'URL du fichier",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        672,
        -752
      ],
      "parameters": {
        "url": "=https://api.telegram.org/bot{{ $json.YOUR_BOT_TOKEN }}/getFile?file_id={{ $('Telegram Trigger: Receive Video Idea').item.json.message.photo[3].file_id }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "6527e03e-6417-45a5-95a8-2ef84b872df0",
      "name": "OpenAI Vision : Analyser l'image de référence",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1088,
        -752
      ],
      "parameters": {
        "text": "=You are an image analysis assistant.\n\nYour task is to analyze the given image and output results **only in YAML format**. Do not add explanations, comments, or extra text outside YAML.\n\nRules:\n\n- If the image depicts a **product**, return:\n    \n    ```yaml\n    brand_name: (brand if visible or inferable)\n    color_scheme:\n      - hex: (hex code of each prominent color)\n        name: (descriptive name of the color)\n    font_style: (serif/sans-serif, bold/thin, etc.)\n    visual_description: (1–2 sentences summarizing what is seen, ignoring the background)\n    \n    ```\n    \n- If the image depicts a **character**, return:\n    \n    ```yaml\n    character_name: (name if visible or inferable, else \"unknown\")\n    color_scheme:\n      - hex: (hex code of each prominent color on the character)\n        name: (descriptive name of the color)\n    outfit_style: (clothing style, accessories, or notable features)\n    visual_description: (1–2 sentences summarizing what the character looks like, ignoring the background)\n    \n    ```\n    \n- If the image depicts **both**, return **both sections** in YAML.\n\nOnly output valid YAML. No explanations.",
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "chatgpt-4o-latest",
          "cachedResultName": "CHATGPT-4O-LATEST"
        },
        "options": {},
        "resource": "image",
        "imageUrls": "=https://api.telegram.org/file/bot{{ $('Set: Bot Token (Placeholder)').item.json.YOUR_BOT_TOKEN }}/{{ $json.result.file_path }}",
        "operation": "analyze"
      },
      "credentials": {
        "openAiApi": {
          "id": "6h3DfVhNPw9I25nO",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "6d78c44a-9073-4a2c-9a17-102c870b2162",
      "name": "Google Sheets : Mettre à jour la description de l'image",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1328,
        -752
      ],
      "parameters": {
        "columns": {
          "value": {
            "IMAGE NAME": "={{ $('Telegram Trigger: Receive Video Idea').item.json.message.photo[2].file_unique_id }}",
            "IMAGE DESCRIPTION": "={{ $json.content }}"
          },
          "schema": [
            {
              "id": "IMAGE NAME",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "IMAGE NAME",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "IMAGE URL",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "IMAGE URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "IMAGE DESCRIPTION",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "IMAGE DESCRIPTION",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "CAPTION",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "CAPTION",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "STATUS",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "STATUS",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "IMAGE NAME"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "51us92xkOlrvArhV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "efd41bb8-ecef-49ea-9051-ead169d6766b",
      "name": "LLM : Analyseur de sortie structurée",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1712,
        -512
      ],
      "parameters": {
        "jsonSchemaExample": "{\n\t\"image_prompt\": \"string\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "96a49fe4-d013-42c8-9ae8-11eb713e132f",
      "name": "LLM : Chat OpenAI",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1504,
        -512
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "6h3DfVhNPw9I25nO",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "f6599d80-4301-4dd1-bc38-1c39e57e21cb",
      "name": "Générer l'invite d'image",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1552,
        -752
      ],
      "parameters": {
        "text": "=Your task is to create an image prompt following the system guidelines.  \nEnsure that the reference image is represented as **accurately as possible**, including all text elements.  \n\nUse the following inputs:  \n\n- **User’s description:**  \n{{ $json.CAPTION }}\n\n- **Reference image description:**  \n{{ $json['IMAGE DESCRIPTION'] }}\n",
        "options": {
          "systemMessage": "=ROLE: UGC Image Prompt Builder  \n\nGOAL:  \nGenerate one concise, natural, and realistic image prompt (≤120 words) from a given product or reference image. The prompt must simulate authentic UGC (user-generated content) photography.  \n\nRULES:  \n- Always output **one JSON object only** with the key:  \n  - `image_prompt`: (string with full description)  \n- Do **not** add commentary, metadata, or extra keys. JSON only.  \n\nSTYLE GUIDELINES:  \n- Tone: casual, unstaged, lifelike, handheld snapshot.  \n- Camera cues: include at least 2–3 (e.g., phone snapshot, handheld framing, off-center composition, natural indoor light, soft shadows, slight motion blur, auto exposure, unpolished look, mild grain).  \n- Realism: embrace imperfections (wrinkles, stray hairs, skin texture, clutter, smudges).  \n- Packaging/Text: preserve exactly as visible. Never invent claims, numbers, or badges.  \n- Diversity: if people appear but are unspecified, vary gender/ethnicity naturally; default age range = 21–38.  \n- Setting: default to real-world everyday spaces (home, street, store, gym, office).  \n\nSAFETY:  \n- No copyrighted character names.  \n- No dialogue or scripts. Only describe scenes.  \n\nOUTPUT CONTRACT:  \n- JSON only, no prose outside.  \n- Max 120 words in `image_prompt`.  \n- Must cover: subject, action, mood, setting, style/camera, colors, and text accuracy.  \n\nCHECKLIST BEFORE OUTPUT:  \n- Natural handheld tone?  \n- At least 2 camera cues included?  \n- Product text preserved exactly?  \n- Only JSON returned?  \n\n---  \n\n### Example  \n\nGood Example :  \n```json\n{ \"image_prompt\": \"a young adult casually holding a skincare tube near a bathroom mirror; action: dabs small amount on the back of the hand; mood: easy morning; setting: small apartment bathroom with towel on rack and toothbrush cup; style/camera: phone snapshot, handheld framing, off-center composition, natural window light, slight motion blur, mild grain; colors: soft whites and mint label; text accuracy: keep every word on the tube exactly as visible, no added claims\" }\n"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "80274aa5-bdf0-49bf-9980-0624d99d68ef",
      "name": "NanoBanana : Créer une image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1888,
        -752
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/nano-banana/edit",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n\t\"prompt\": \"{{ $json.output.image_prompt.replace(/\\\"/g, '\\\\\\\"').replace(/\\n/g, '\\\\n') }}\",\n\"image_urls\": [\"{{ $('Google Drive: Upload Image').item.json.webContentLink }}\"]\n\n}\n\n",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "kNULkYDcOZG3X0be",
          "name": "Fal.ai"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "e132487d-da8c-4850-9d3f-9e057e9bde64",
      "name": "Attendre l'édition de l'image",
      "type": "n8n-nodes-base.wait",
      "position": [
        2096,
        -752
      ],
      "webhookId": "df52d997-45c4-431f-bdf6-89dd25027b5b",
      "parameters": {
        "amount": 20
      },
      "typeVersion": 1.1
    },
    {
      "id": "2c7ffce1-8ace-418d-9738-c659f4554980",
      "name": "Télécharger l'image éditée",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2096,
        -528
      ],
      "parameters": {
        "url": "={{ $json.response_url }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "kNULkYDcOZG3X0be",
          "name": "Fal.ai"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "ec725aa0-fd30-4d98-b984-0228873db428",
      "name": "Google Sheets : Lire les paramètres vidéo (CONFIG)",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        32,
        -192
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "51us92xkOlrvArhV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "abafa8c6-55a0-488c-970e-d2a969ad7959",
      "name": "Telegram : Envoyer une notification",
      "type": "n8n-nodes-base.telegram",
      "position": [
        2112,
        336
      ],
      "webhookId": "2f4a4bc1-99de-4e93-8523-dd8c6499b893",
      "parameters": {
        "text": "Published",
        "chatId": "={{ $('Telegram Trigger: Receive Video Idea').item.json.message.chat.id }}",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "bMkCsqYCSUBaiU60",
          "name": "Telegram account 12 - nanobanana"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "77030cb3-3246-41d5-bcbc-74f82bdd501b",
      "name": "Note adhésive 5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -992,
        -944
      ],
      "parameters": {
        "color": 6,
        "width": 700,
        "height": 1476,
        "content": "# 🎬 Generate AI viral videos with NanoBanana & VEO3, shared on socials via Blotato (By Dr. Firas)\n\n\n# 🎥 Full Tutorial :\n[![AI Voice Agent Preview](https://www.dr-firas.com/nanobanana.png)](https://youtu.be/nlwpbXQqNQ4)\n\n---\n\n# 📘 Documentation  \nAccess detailed setup instructions, API config, platform connection guides, and workflow customization tips:\n\n📎 [Open the full documentation on Notion](https://automatisation.notion.site/NonoBanan-2643d6550fd98041aef5dcbe8ab0f7a1?source=copy_link)\n\n---\n\n# ⚙️ Requirements\n\n1. ✅ **Create a [Blotato](https://blotato.com/?ref=firas) account** (Pro plan required for API access)  \n2. 🔑 **Generate your Blotato API Key** via: `Settings > API > Generate API Key`  \n3. 📦 **Enable “Verified Community Nodes”** in the n8n admin settings  \n4. 🧩 **Install the Blotato** verified community node in n8n  \n5. 🛠 **Create a Blotato API credential** inside your n8n credentials tab  \n6. 📄 **Duplicate this [Google Sheet template](https://docs.google.com/spreadsheets/d/1FutmZHblwnk36fp59fnePjONzuJBdndqZOCuRoGWSmY/edit?usp=sharing)**  \n7. ☁️ **Make sure your Google Drive folder is PUBLIC** (anyone with the link can access)  \n8. 📌 **Complete the 3 brown sticky note steps** inside the workflow editor\n\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "8577d027-1dbc-4c0d-97db-1cf6c6613ae6",
  "connections": {
    "2c6cb6a6-e4b2-470d-8afb-b2c03b72e97b": {
      "main": [
        [
          {
            "node": "bee496d6-fc2d-4f1c-812f-9d6be08154a7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2c244851-7835-4f4a-8fe9-10a26acf6365": {
      "ai_tool": [
        [
          {
            "node": "a27e8e28-cb43-4b3f-a96e-e986a25209fb",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "a1b51932-2e2c-4e32-a37a-7ce94620cdd9": {
      "main": [
        [
          {
            "node": "2c6cb6a6-e4b2-470d-8afb-b2c03b72e97b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3e4b6251-7c56-40ca-8fb6-4b77c910a2e6": {
      "main": [
        [
          {
            "node": "2c6cb6a6-e4b2-470d-8afb-b2c03b72e97b",
            "type": "main",
            "index": 7
          }
        ]
      ]
    },
    "3f7560c8-3e4a-4d62-bf62-e8d543df8026": {
      "main": [
        [
          {
            "node": "2c6cb6a6-e4b2-470d-8afb-b2c03b72e97b",
            "type": "main",
            "index": 6
          }
        ]
      ]
    },
    "6866a654-e6a7-4543-b98a-8288f9d04b47": {
      "main": [
        [
          {
            "node": "2c6cb6a6-e4b2-470d-8afb-b2c03b72e97b",
            "type": "main",
            "index": 5
          }
        ]
      ]
    },
    "31bc2347-2457-4fad-8436-09282df89609": {
      "main": [
        [
          {
            "node": "2c6cb6a6-e4b2-470d-8afb-b2c03b72e97b",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "5f7344d8-a277-457b-a33f-c48e2ced1e49": {
      "main": [
        [
          {
            "node": "2c6cb6a6-e4b2-470d-8afb-b2c03b72e97b",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "06e29e46-c3ce-4c9e-825d-39df924a607d": {
      "main": [
        [
          {
            "node": "2c6cb6a6-e4b2-470d-8afb-b2c03b72e97b",
            "type": "main",
            "index": 3
          }
        ]
      ]
    },
    "61f5f513-b7ec-40ca-a4a1-1b897f092a04": {
      "main": [
        [
          {
            "node": "2c6cb6a6-e4b2-470d-8afb-b2c03b72e97b",
            "type": "main",
            "index": 8
          }
        ]
      ]
    },
    "4fb185bf-f237-4b71-8557-178f15f0caec": {
      "main": [
        [
          {
            "node": "2c6cb6a6-e4b2-470d-8afb-b2c03b72e97b",
            "type": "main",
            "index": 4
          }
        ]
      ]
    },
    "30c415e0-58e0-48b9-b7e9-11dc5d979ac8": {
      "main": [
        [
          {
            "node": "16902ea9-197e-4cac-936e-83c1fc226854",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "96a49fe4-d013-42c8-9ae8-11eb713e132f": {
      "ai_languageModel": [
        [
          {
            "node": "f6599d80-4301-4dd1-bc38-1c39e57e21cb",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "cb9939c6-1c5c-448b-ab3a-a66d90767cf2": {
      "ai_languageModel": [
        [
          {
            "node": "a27e8e28-cb43-4b3f-a96e-e986a25209fb",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "45e0b8ee-b830-48bc-8a9a-a426a7afcd43": {
      "main": [
        [
          {
            "node": "a27e8e28-cb43-4b3f-a96e-e986a25209fb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e132487d-da8c-4850-9d3f-9e057e9bde64": {
      "main": [
        [
          {
            "node": "2c7ffce1-8ace-418d-9738-c659f4554980",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2c7ffce1-8ace-418d-9738-c659f4554980": {
      "main": [
        [
          {
            "node": "ec725aa0-fd30-4d98-b984-0228873db428",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f6599d80-4301-4dd1-bc38-1c39e57e21cb": {
      "main": [
        [
          {
            "node": "80274aa5-bdf0-49bf-9980-0624d99d68ef",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bee496d6-fc2d-4f1c-812f-9d6be08154a7": {
      "main": [
        [
          {
            "node": "abafa8c6-55a0-488c-970e-d2a969ad7959",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "db2db976-7988-4939-a931-b6b2b98570aa": {
      "main": [
        [
          {
            "node": "a1b51932-2e2c-4e32-a37a-7ce94620cdd9",
            "type": "main",
            "index": 0
          },
          {
            "node": "5f7344d8-a277-457b-a33f-c48e2ced1e49",
            "type": "main",
            "index": 0
          },
          {
            "node": "31bc2347-2457-4fad-8436-09282df89609",
            "type": "main",
            "index": 0
          },
          {
            "node": "06e29e46-c3ce-4c9e-825d-39df924a607d",
            "type": "main",
            "index": 0
          },
          {
            "node": "4fb185bf-f237-4b71-8557-178f15f0caec",
            "type": "main",
            "index": 0
          },
          {
            "node": "6866a654-e6a7-4543-b98a-8288f9d04b47",
            "type": "main",
            "index": 0
          },
          {
            "node": "3f7560c8-3e4a-4d62-bf62-e8d543df8026",
            "type": "main",
            "index": 0
          },
          {
            "node": "3e4b6251-7c56-40ca-8fb6-4b77c910a2e6",
            "type": "main",
            "index": 0
          },
          {
            "node": "61f5f513-b7ec-40ca-a4a1-1b897f092a04",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a7fffb23-dba4-4d1e-a42e-191a1414ec60": {
      "main": [
        [
          {
            "node": "67889216-2c0f-4ed8-ae54-8e7e7fdbac90",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "67889216-2c0f-4ed8-ae54-8e7e7fdbac90": {
      "main": [
        [
          {
            "node": "f6dda272-6129-4c04-b4c2-1e6bf5d156d8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "16902ea9-197e-4cac-936e-83c1fc226854": {
      "main": [
        [
          {
            "node": "a7fffb23-dba4-4d1e-a42e-191a1414ec60",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "80274aa5-bdf0-49bf-9980-0624d99d68ef": {
      "main": [
        [
          {
            "node": "e132487d-da8c-4850-9d3f-9e057e9bde64",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "257eedc1-30c1-4e40-913b-24ceb018df28": {
      "main": [
        [
          {
            "node": "db2db976-7988-4939-a931-b6b2b98570aa",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0695e935-93ac-48da-a893-1615ce22a6e7": {
      "ai_outputParser": [
        [
          {
            "node": "a27e8e28-cb43-4b3f-a96e-e986a25209fb",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "fa25f6bf-d05b-4b8d-8a8a-b8684c601510": {
      "main": [
        [
          {
            "node": "7a362123-c86c-45f9-b80c-a5660f92da46",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7a362123-c86c-45f9-b80c-a5660f92da46": {
      "main": [
        [
          {
            "node": "a9614733-44e3-4580-95f8-a955d9136be4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ae9da8d7-f2c4-4ada-897c-651176cbfdb6": {
      "main": [
        [
          {
            "node": "6527e03e-6417-45a5-95a8-2ef84b872df0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f6dda272-6129-4c04-b4c2-1e6bf5d156d8": {
      "main": [
        [
          {
            "node": "8b4c6b55-a0d7-4a19-b85c-1927ccb5eaa2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ff995af1-503e-4356-8e67-6392b4629496": {
      "main": [
        [
          {
            "node": "257eedc1-30c1-4e40-913b-24ceb018df28",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a8e85901-2451-4037-ba0c-aa2b229c9d0f": {
      "main": [
        [
          {
            "node": "ae9da8d7-f2c4-4ada-897c-651176cbfdb6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "efd41bb8-ecef-49ea-9051-ead169d6766b": {
      "ai_outputParser": [
        [
          {
            "node": "f6599d80-4301-4dd1-bc38-1c39e57e21cb",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "a27e8e28-cb43-4b3f-a96e-e986a25209fb": {
      "main": [
        [
          {
            "node": "30c415e0-58e0-48b9-b7e9-11dc5d979ac8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a9614733-44e3-4580-95f8-a955d9136be4": {
      "main": [
        [
          {
            "node": "a8e85901-2451-4037-ba0c-aa2b229c9d0f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8b4c6b55-a0d7-4a19-b85c-1927ccb5eaa2": {
      "main": [
        [
          {
            "node": "ff995af1-503e-4356-8e67-6392b4629496",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "11f4ee14-912b-4a77-8696-7d36f7fc8a21": {
      "main": [
        [
          {
            "node": "a8e85901-2451-4037-ba0c-aa2b229c9d0f",
            "type": "main",
            "index": 0
          },
          {
            "node": "fa25f6bf-d05b-4b8d-8a8a-b8684c601510",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6527e03e-6417-45a5-95a8-2ef84b872df0": {
      "main": [
        [
          {
            "node": "6d78c44a-9073-4a2c-9a17-102c870b2162",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6d78c44a-9073-4a2c-9a17-102c870b2162": {
      "main": [
        [
          {
            "node": "f6599d80-4301-4dd1-bc38-1c39e57e21cb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ec725aa0-fd30-4d98-b984-0228873db428": {
      "main": [
        [
          {
            "node": "45e0b8ee-b830-48bc-8a9a-a426a7afcd43",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Avancé - Divers, IA Multimodale

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Workflows recommandés

💥 Automatisation des publicités vidéo avec NanoBanana, Seedream 4, ChatGPT Image et Veo 3 - VIDE
Utiliser l'IA (NanoBanana, Seedream, GPT-4o, Veo 3) pour automatiser et publier des campagnes publicitaires vidéo
Set
Code
Wait
+
Set
Code
Wait
63 NœudsDr. Firas
Création de contenu
💥 Créer des publicités virales avec NanoBanana et Seedance, les publier sur les médias sociaux via upload-post VIDE II
Créer des publicités multimédias virales avec l'IA : NanoBanana, Seedance et Suno pour les médias sociaux
If
Set
Code
+
If
Set
Code
45 NœudsDr. Firas
Divers
💥 HeyGen II - Clone-moi - De l'idée à la publication : Automatisation de vidéos GPT-5 pour YouTube, TikTok et Instagram - Vidéo
Automatiser la création de vidéos à partir d'entrées vocales avec HeyGen, GPT-5 et la publication sociale
If
Set
Wait
+
If
Set
Wait
41 NœudsDr. Firas
Création de contenu
💥 HeyGen - De l'idée à la publication : Automatisation de vidéo GPT-5 pour YouTube, TikTok et Instagram - Vidéo
Générer et publier des vidéos d'avatar IA avec GPT-5 sur les plateformes de médias sociaux
If
Set
Wait
+
If
Set
Wait
41 NœudsDr. Firas
Création de contenu
💥 Générer des vidéos virales IA avec VEO 3 et les télécharger sur TikTok
Générez des vidéos virales IA avec VEO 3 et téléchargez-les sur TikTok
Set
Code
Wait
+
Set
Code
Wait
24 NœudsDr. Firas
Création de contenu
💥 Générer automatiquement des vidéos de médias sociaux avec GPT-5 et les publier via Blotato - Vidéo
Génération automatique de vidéos pour les médias sociaux avec GPT-5 et publication via Blotato
Set
Merge
Telegram
+
Set
Merge
Telegram
31 NœudsDr. Firas
Réseaux sociaux
Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds47
Catégorie2
Types de nœuds16
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Auteur
Dr. Firas

Dr. Firas

@drfiras

Automation expert and certified trainer. I create hands-on courses to master automation with n8n. Contact me to access my exclusive training and start building powerful workflows today. 🚀

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34