Créer automatiquement des vidéos virales pour les médias sociaux avec FalAI Flux-Kling et GPT-4

Avancé

Ceci est unContent Creation, Multimodal AIworkflow d'automatisation du domainecontenant 39 nœuds.Utilise principalement des nœuds comme Code, Wait, Merge, GoogleDrive, HttpRequest. Automatiser la création de vidéos virales pour les médias sociaux avec FalAI Flux/Kling et GPT-4

Prérequis
  • 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
{
  "meta": {
    "instanceId": "3f9200fd36bb1bacb074812d319dd4fba325b9cd32ee87ee82b76f45271f5dfd",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "cec5f9ad-36f7-4058-8457-2b2522ae2440",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        6048,
        -1712
      ],
      "parameters": {
        "color": 4,
        "width": 528,
        "height": 80,
        "content": "## Create Voiceover and Upload Video to Drive\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "14df5024-e051-473f-97e4-bf64e717b3e6",
      "name": "Téléverser un fichier sur le drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        6224,
        -1008
      ],
      "parameters": {
        "name": "={{ $('Create New Idea1').first().json.message.content.name }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "root",
          "cachedResultName": "/ (Root folder)"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "ajRUnu2dQWuqnQYA",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "7566a56d-0417-4657-a252-95cc9bbce206",
      "name": "URL vers fichier",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        5952,
        -1008
      ],
      "parameters": {
        "url": "={{ $json.video_url }}",
        "options": {
          "response": {
            "response": {
              "responseFormat": "file"
            }
          }
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "e0befd74-9b5d-4c1b-91e6-dca10d907db5",
      "name": "Obtenir le prompt complet de voix off",
      "type": "n8n-nodes-base.code",
      "position": [
        5744,
        -1568
      ],
      "parameters": {
        "jsCode": "let combined;\n\ntry {\n  // 1) grab the segments array\n  const segments = $('Generate Timed Script').first().json.message.content.segments;\n  if (!Array.isArray(segments)) {\n    throw new Error(\"Expected an array at ('Gnerate Timed Script').first().json.message.content.segments[0]\");\n  }\n\n  // 2) extract each text and trim whitespace\n  const texts = segments.map(s => {\n    if (typeof s.text !== \"string\") {\n      throw new Error(\"Each segment must have a text string\");\n    }\n    return s.text.trim();\n  });\n\n  // 3) join into one paragraph (spaces between sentences)\n  combined = texts.join(\" \");\n}\ncatch (err) {\n  throw new Error(\"Failed to combine segment texts: \" + err.message);\n}\n\n// 4) return a single item carrying your full script\nreturn [\n  {\n    json: {\n      paragraph: combined\n    }\n  }\n];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "7a3eb5bd-d354-4b6f-85a2-d18193340c86",
      "name": "Attente1",
      "type": "n8n-nodes-base.wait",
      "position": [
        5040,
        -1392
      ],
      "webhookId": "db3b70cf-1e63-4273-8809-3ea7148d8cc1",
      "parameters": {
        "amount": 240
      },
      "typeVersion": 1.1
    },
    {
      "id": "eb52e5fb-1dbe-48e9-9994-007308743296",
      "name": "Attente11",
      "type": "n8n-nodes-base.wait",
      "position": [
        5040,
        -1168
      ],
      "webhookId": "db3b70cf-1e63-4273-8809-3ea7148d8cc1",
      "parameters": {
        "amount": 700
      },
      "typeVersion": 1.1
    },
    {
      "id": "4b96227e-489d-4624-bc34-430dd7e33501",
      "name": "Note adhésive10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3760,
        -960
      ],
      "parameters": {
        "color": 5,
        "width": 320,
        "height": 100,
        "content": "## Step 4: Merge Videos\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "56ac8431-b487-47a9-8155-e12eaa891de2",
      "name": "Lister les éléments1",
      "type": "n8n-nodes-base.code",
      "position": [
        4368,
        -960
      ],
      "parameters": {
        "jsCode": "return [\n  {\n    video_urls: items.map(item => item.json.video.url)\n  }\n];"
      },
      "typeVersion": 2
    },
    {
      "id": "23f4420e-67bb-4462-92d1-21a71dfe5fb7",
      "name": "Fusionner1",
      "type": "n8n-nodes-base.merge",
      "position": [
        4144,
        -960
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition"
      },
      "typeVersion": 3.1
    },
    {
      "id": "9fa34ca3-ac63-4900-9870-e76717c1d969",
      "name": "Note adhésive9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3968,
        -1168
      ],
      "parameters": {
        "width": 320,
        "height": 100,
        "content": "## Step 3: Generate videos\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8f0801aa-f458-47a6-a362-6ac329a11345",
      "name": "Obtenir la vidéo1",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        5504,
        -1168
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/kling-video/requests/{{ $json.request_id }}\n",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Key APIKEY"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "fb67f516-c2f9-4f4d-9405-f71081900cd3",
      "name": "Créer la vidéo1",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        4608,
        -1168
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/kling-video/v1.6/standard/image-to-video",
        "body": "={\n    \"prompt\": \"{{ $json.content }}\",\n    \"image_url\": \"{{ $('Get Images1').item.json.images[0].url }}\",\n    \"duration\": \"5\",\n    \"aspect_ratio\": \"9:16\",\n    \"negative_prompt\": \"bad quality\",\n    \"cfg_scale\": 0.5\n}",
        "method": "POST",
        "options": {
          "batching": {
            "batch": {
              "batchSize": 1,
              "batchInterval": 2000
            }
          }
        },
        "sendBody": true,
        "contentType": "raw",
        "sendHeaders": true,
        "rawContentType": "application/json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Key APIKEY"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "1ac22084-8049-408e-b38a-548c3c294939",
      "name": "Prompts vidéo1",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        4368,
        -1168
      ],
      "parameters": {
        "text": "=You are a prompt-generation AI trained to create short,\ncinematic, third-person video prompts.\n\nYou will analyze an uploaded image and create one clear,\nrealistic prompt describing a frozen moment.\n\nEach prompt must match the style of the context.\nOriginal photo-generation prompt for context:\n\"{{ $('Unbundle prompts1').item.json.prompt }}\"\nUse this only to understand the role, setting, or tone. Do\nnot copy or repeat it.\n\nRules\nNo \"I\" or \"POV\" phrasing.\nShort third-person sentences (under 300 characters).\nOnly one action.\n\nMention visible environmental textures (swirling dust storms,\nice crystals refracting light, layered rock strata, light\nshafts through thin atmospheres).\n\nNo emotional language, no cinematic words like \"camera\npans.\"\n\nOne frozen action per sentence, no chaining\n\nMatch cold, void, awe-inspiring documentary feeling.\n\nExample Outputs\n-A vibrant nebula glowing in shades of violet and gold against a backdrop of countless stars.\n\n-A spiral galaxy’s dusty arms curving gracefully through the cosmic expanse.\n\n-The crescent Moon rising over an alien planet’s lavender-hued horizon.\n\n-Auroral curtains dancing across the night sky of an icy polar world.\n\n-A binary star system entwined in a delicate orbital waltz amid drifting cosmic dust.\n\n-An asteroid silhouetted against a distant quasar, streaking silently through deep space.\n\nUse the uploaded image and matching description to generate\none short prompt in this\nstyle.",
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "chatgpt-4o-latest",
          "cachedResultName": "CHATGPT-4O-LATEST"
        },
        "options": {
          "detail": "high"
        },
        "resource": "image",
        "imageUrls": "={{ $json.images[0].url }}",
        "operation": "analyze"
      },
      "credentials": {
        "openAiApi": {
          "id": "836QDsJzdKW2lXHi",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "f1cc898b-6f85-4f38-9eaa-e9c4fcaf0270",
      "name": "Note adhésive8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4080,
        -1392
      ],
      "parameters": {
        "color": 3,
        "width": 320,
        "height": 100,
        "content": "## Step 2: Generate Images\n"
      },
      "typeVersion": 1
    },
    {
      "id": "ee58c36c-446a-4116-9a19-a4c241f6cf11",
      "name": "Obtenir les images1",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        5504,
        -1392
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/flux/requests/{{ $json.request_id }}",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Key APIKEY"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "8b819c5c-3939-4142-9000-f5e49f56c75a",
      "name": "Créer les images1",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        4608,
        -1392
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/flux/schnell",
        "body": "={\n  \"prompt\": \"{{ $json.prompt }}\",\n  \"image_size\": \"portrait_16_9\"\n}",
        "method": "POST",
        "options": {
          "batching": {
            "batch": {
              "batchSize": 1,
              "batchInterval": 2000
            }
          }
        },
        "sendBody": true,
        "contentType": "raw",
        "sendHeaders": true,
        "rawContentType": "application/json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Key APIKEY"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "b6fd4153-abf9-44c6-ba02-45702ccc3840",
      "name": "Note adhésive7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4208,
        -1568
      ],
      "parameters": {
        "color": 6,
        "width": 320,
        "height": 100,
        "content": "## Step 1: Generate prompts\n"
      },
      "typeVersion": 1
    },
    {
      "id": "dbf9c5dd-f7a3-4d85-8270-eaeacf778ac6",
      "name": "Séparer les prompts1",
      "type": "n8n-nodes-base.code",
      "position": [
        5504,
        -1568
      ],
      "parameters": {
        "jsCode": "// 1) Pull out the segments \nconst segments = items[0].json.message.content.scenes;\nif (!Array.isArray(segments)) {\n  throw new Error(\"Expected an array at items[0].json.message.content.segments\");\n}\n\n// 2) Map each segment to its own output item\nreturn segments.map(segment => {\n  if (typeof segment.prompt !== \"string\") {\n    throw new Error(\"Each segment must have a prompt string\");\n  }\n  return {\n    json: {\n      scene:   segment.scene,\n      start:   segment.start,\n      end:     segment.end,\n      prompt:  segment.prompt.trim()\n    }\n  };\n});\n"
      },
      "typeVersion": 2
    },
    {
      "id": "26d4b225-a478-4a7d-835b-b86c10d2cf1a",
      "name": "Créer une nouvelle idée1",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        5120,
        -1776
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1",
          "cachedResultName": "GPT-4.1"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "=You are a highly intelligent AI designed to generate 1 immersive, viral idea. Your output must be formatted as a JSON array (single line) and follow all the rules below exactly.\n\nRULES:\n\nOnly return 1 idea at a time.\n\nThe Idea must:\nBe under 13 words.\nDescribe a realistic setting involving black holes or spatial bodies.\nDescribe a general setting or phenomenon, not a specific event or action.\nFocus on real-life.\nNo fantasy elements (no alien-to-astronaut rescues, no magical events).\nThis idea will be used to create a voiceover about fun facts related to the idea.\n\nThe Title must be: short, punchy, and viral-friendly.\nInclude one relevant emoji.\nInclude exactly 8 hashtags in this order:\n\n#4 hashtags relevant to the idea\n#4 all-time most popular hashtags\n\n4 idea related hashtags \n4 all-time most popular hashtags\nAll hashtags must be lowercase.\n\nSet Status to \"for production\" (always).\n\nThe Environment must:\nBe under 20 words.\nMatch the action in the Idea exactly (same participants and setting).\nClearly describe:\nWhere it's happening \nMain background details (starfield glow, Earth’s curvature, nebula clouds, cosmic dust, etc.).\nparticipants (not necessary to be included) \nStyle of scene (cinematic realism, gritty documentary, aerial view, etc.).\n\nOUTPUT FORMAT (single-line JSON array):\n\n[\n{\n\"title\": \"Summarized viral idea title with emoji #4_relevant_hashtags #4_all_time_popular_hashtags,     \"idea\": \"Short description idea\",\n\"brief\": \"Brief vivid setting under 20 words matching the action\",\n\"status\": \"for production\",\n\"name\": \"2 word name for the idea in the format video_name\"\n}\n]"
            }
          ]
        },
        "jsonOutput": true
      },
      "credentials": {
        "openAiApi": {
          "id": "836QDsJzdKW2lXHi",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "10a7f701-feaf-4a96-87e1-0c21d3e7ac50",
      "name": "Génération des scènes1",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        5104,
        -1568
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1",
          "cachedResultName": "GPT-4.1"
        },
        "options": {
          "temperature": 0.7
        },
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "=You are a highly intelligent cinematic still-image prompt-generation AI.  "
            },
            {
              "content": "=Your task: For each of the 12 Scene text strings, write one frozen-moment image prompt.\n\nGLOBAL RULES\n1. **Length** ≤ 500 characters (count everything, including commas and “8 K”).  \n2. **Voice** Cinematic third-person, understated documentary tone.  \n3. **Detail** Highlight tactile textures, lighting, and scale.  \n4. **Relevance** Visually embody the *specific scientific or narrative idea* named in the Scene text:\n   • If a line mentions a substance or process, show it manifestly (e.g., carbon atoms compressed into a diamond-like lattice).  \n   • If a celestial body is named, include its full, explicit designation in the first clause (“Titan, Saturn’s moon”).  \n5. **Language bans** No movement verbs (“orbiting,” “swirling”), no camera jargon (“pan,” “dolly”), no fantasy elements.  \n6. **Framing**  \n   • One static, self-contained moment—no set-ups or transitions.  \n   • No extreme close-ups.  \n   • Scene 1 and Scene 12 (or Scene 2 if preferred) must be wide, zoomed-out tableaux that introduce and close the sequence.  \n7. **Abbreviations**  \n   • Do *not* shorten proper names (write “International Space Station,” not “ISS”, always write, \"Saturn's moon Titan\" not \"Titan\").  \n   • Technical tags “8 K, 16-bit HDR” stay exactly as written.  \n8. **Credible science** Keep visuals physically plausible; evocative realism beats strict textbook accuracy when they clash.  \n9.**Prompt format (flux/schnell):**\n“[Tech framework] — [Subject], [Style], [Composition], [Lighting], [Colour palette], [Mood], [Extra].”\n- **Tech framework** e.g. “Space-telescope capture on 30 cm f/2 refractor, simulated high resolution sensor, upscaled to 8 K, 16-bit HDR source”  \n- **Use** `num_steps=3` (or 4 for extra micro-detail). \n\nFor each 5-second segment below, make the scene prompt so it reflects the vibe of each scene:\n\nScene 1:{{ $json.message.content.segments[0].text }}\nScene 2:{{ $json.message.content.segments[1].text }}\nScene 3:{{ $json.message.content.segments[2].text }}\nScene 4: {{ $json.message.content.segments[3].text }}\nScene 5: {{ $json.message.content.segments[4].text }}\nScene 6: {{ $json.message.content.segments[5].text }}\nScene 7: {{ $json.message.content.segments[6].text }}\nScene 8: {{ $json.message.content.segments[7].text }}\nScene 9: {{ $json.message.content.segments[8].text }}\nScene 10: {{ $json.message.content.segments[9].text }}\nScene 11: {{ $json.message.content.segments[10].text }}\nScene 12: {{ $json.message.content.segments[11].text }}\n\nOutput as a JSON array of 12 objects called scenes"
            },
            {
              "role": "assistant",
              "content": "=[\n  {\n    \"scene\": 1,\n    \"start\": \"0:00\",\n    \"end\": \"0:05\",\n    \"prompt\": \"Simulated Cassini orbiter camera, NASA-grade photo-realism — high-altitude oblique view above Saturn’s ring plane, pale sunlight grazing endless black space, golden rings curving in broad arcs with the Cassini Division crisp, fine cosmic dust haze beyond, icy ring facets shimmering like crystalline prisms, awe-inspiring vastness, 16-bit HDR source\"\n  },\n  {\n    \"scene\": 2,\n    \"start\": \"0:05\",\n    \"end\": \"0:10\",\n    \"prompt\": \"Panoramic Cassini spacecraft capture, NASA-grade photo-realism — edge-to-edge view of Saturn’s rings, thousands of parallel ringlets stretching to the horizon, mosaic of platinum, chalk-white and muted gold reflections, tactile grooves and ridges for sculpted depth, serene monumental scale, 16-bit HDR source\"\n  },\n  {\n    \"scene\": 3,\n    \"start\": \"0:10\",\n    \"end\": \"0:15\",\n    \"prompt\": \"Close-range spacecraft capture, NASA-grade photo-realism — razor-sharp terminator where Saturn’s shadow meets sunlit rings, high-contrast boundary slicing across icy particles, glittering ice fragments and charcoal rock chips in stark relief, isolated crystals glowing like cold beacons, dramatic chiaroscuro effect, 16-bit HDR source\"\n  },\n  {\n    \"scene\": 4,\n    \"start\": \"0:15\",\n    \"end\": \"0:20\",\n    \"prompt\": \"Orbital macro capture, NASA-grade photo-realism — dense cluster of ring particles with house-sized ice boulders, muted sunlight diffusing through silvery haze, pock-marked frost-scored textures, long shadows draping the debris field, ancient dust softening chipped edges, finely detailed, 16-bit HDR source\"\n  },\n  {\n    \"scene\": 5,\n    \"start\": \"0:20\",\n    \"end\": \"0:25\",\n    \"prompt\": \"Narrow-angle spacecraft capture, NASA-grade photo-realism — extreme edge-on view of Saturn’s rings as a razor-fine band of brilliant light, ethereal vertical spokes casting fleeting shadows on softly blurred cloud tops, gentle pale yellow to beige gradient in the atmosphere, minimalist elegance, 16-bit HDR source\"\n  },\n  {\n    \"scene\": 6,\n    \"start\": \"0:25\",\n    \"end\": \"0:30\",\n    \"prompt\": \"Simulated occultation capture, NASA-grade photo-realism — backlit cross-section of a sparsely populated ring region, paper-thin veil of ice particles glowing like embers, translucent layer against absolute black, subtle smoky aurora effect, ghostly luminosity fading toward darkness, 16-bit HDR source\"\n  },\n  {\n    \"scene\": 7,\n    \"start\": \"0:30\",\n    \"end\": \"0:35\",\n    \"prompt\": \"High-orbit spacecraft capture, NASA-grade photo-realism — Saturn’s pale golden cloud bands in razor clarity, intricate ring shadows casting lace-like patterns on the upper atmosphere, pinpoint stars punctuating infinite dark, quiet cosmic grandeur, 16-bit HDR source\"\n  },\n  {\n    \"scene\": 8,\n    \"start\": \"0:35\",\n    \"end\": \"0:40\",\n    \"prompt\": \"Nadir spacecraft capture, NASA-grade photo-realism — overhead view revealing the Encke Division and wave-like ridges in icy bands, sharp-edged corrugations sculpted by shepherd moons, precise concentric order, scientific clarity, 16-bit HDR source\"\n  },\n  {\n    \"scene\": 9,\n    \"start\": \"0:40\",\n    \"end\": \"0:45\",\n    \"prompt\": \"Deep-space orbiter capture, NASA-grade photo-realism — Pandora and Prometheus near the F ring boundary, gravitationally sculpted edge where orderly ice meets frost-dusted moon surfaces, pocked craters and jagged ridges under grazing sunlight, 16-bit HDR source\"\n  },\n  {\n    \"scene\": 10,\n    \"start\": \"0:45\",\n    \"end\": \"0:50\",\n    \"prompt\": \"Panoramic outer-ring capture, NASA-grade photo-realism — diffuse fringe of Saturn’s rings with faint streaks and scattered ice motes soft-blurred into the surrounding void, lingering dust wisps above the plane, soft edges dissolving into emptiness, serene ethereal mood, 16-bit HDR source\"\n  },\n  {\n    \"scene\": 11,\n    \"start\": \"0:50\",\n    \"end\": \"0:55\",\n    \"prompt\": \"Side-by-side comparative capture, NASA-grade photo-realism — left sector gleaming with fresh white ice, right sector draped in subtle reddish graphite veil, vertical structures casting threadlike shadows, highlighting slow chemical and physical evolution, scientific tone, 16-bit HDR source\"\n  },\n  {\n    \"scene\": 12,\n    \"start\": \"0:55\",\n    \"end\": \"1:00\",\n    \"prompt\": \"Grand top-down spacecraft capture, NASA-grade photo-realism — fully illuminated rings fanning outward in perfect concentric order, intense white fire atop cloud decks, diffuse glow on upper atmosphere, stars and wispy nebulae framing cosmic scale, majestic and profound, 16-bit HDR source\"\n  }\n]\n"
            }
          ]
        },
        "jsonOutput": true
      },
      "credentials": {
        "openAiApi": {
          "id": "836QDsJzdKW2lXHi",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "ffbac481-add5-42a0-872c-316782beb11b",
      "name": "Organiser l'idée, légende, etc1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        4608,
        -1568
      ],
      "parameters": {
        "columns": {
          "value": {
            "id": "==ROW()-1",
            "idea": "={{ $json.message.content.idea }}",
            "caption": "={{ $json.message.content.title }}",
            "production": "for production",
            "environment_prompt": "={{ $json.message.content.brief }}"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "id",
              "defaultMatch": true,
              "canBeUsedToMatch": true
            },
            {
              "id": "idea",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "idea",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "caption",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "caption",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "production",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "production",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "environment_prompt",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "environment_prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "final_output",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "final_output",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1bDfwrU6m7UmR9b3pYKRh3tkM9Y-g4CAMo7Q_x1Pbx-k/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1bDfwrU6m7UmR9b3pYKRh3tkM9Y-g4CAMo7Q_x1Pbx-k",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1bDfwrU6m7UmR9b3pYKRh3tkM9Y-g4CAMo7Q_x1Pbx-k/edit?usp=drivesdk",
          "cachedResultName": "Sheet tt auto"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "XkYsv2o76QVVcrwB",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "136ca028-9b42-4f1b-8f38-e892ff66b36c",
      "name": "Note adhésive6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4640,
        -1776
      ],
      "parameters": {
        "color": 4,
        "height": 100,
        "content": "## Input\nStarting idea"
      },
      "typeVersion": 1
    },
    {
      "id": "788fbc81-cd89-4279-aba3-0f407139b5a1",
      "name": "Combiner audio et vidéo",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        5952,
        -1376
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/ffmpeg-api/compose",
        "body": "={\n  \"tracks\": [\n    {\n      \"id\": \"1\",\n      \"type\": \"video\",\n      \"keyframes\": [\n        {\n          \"url\": \"{{ $('Get Final video').item.json.video_url }}\",\n          \"timestamp\": 0,\n          \"duration\": 65\n        }\n      ]\n    },\n    {\n      \"id\": \"2\",\n      \"type\": \"audio\",\n      \"keyframes\": [\n        {\n          \"url\": \"{{ $json.audio.url }}\",\n          \"timestamp\": 0,\n          \"duration\": 65\n        }\n      ]\n    }\n  ]\n}",
        "method": "POST",
        "options": {
          "batching": {
            "batch": {
              "batchSize": 1,
              "batchInterval": 5000
            }
          }
        },
        "sendBody": true,
        "contentType": "raw",
        "sendHeaders": true,
        "rawContentType": "application/json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Key APIKEY"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "9d2de0c8-68c4-4565-bb1d-610cefa5e164",
      "name": "Obtenir audio et vidéo",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        6560,
        -1376
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/elevenlabs/\nrequests/{{ $json.request_id }}",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Key APIKEY"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "56bce7d8-5783-46de-a18c-6915724223a0",
      "name": "Attente10",
      "type": "n8n-nodes-base.wait",
      "position": [
        6272,
        -1376
      ],
      "webhookId": "db3b70cf-1e63-4273-8809-3ea7148d8cc1",
      "parameters": {
        "amount": 280
      },
      "typeVersion": 1.1
    },
    {
      "id": "dbf802be-231d-4a63-a3a6-1f00e79103b5",
      "name": "Obtenir la voix off",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        6560,
        -1568
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/elevenlabs/\nrequests/{{ $json.request_id }}",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Key APIKEY"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "0696cd4b-1d73-4ef2-a15e-f0208b9251ad",
      "name": "Créer la voix off",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        5952,
        -1568
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/elevenlabs/tts/turbo-v2.5",
        "body": "={\n\n\"text\": \"{{ $json.paragraph }}\",\n\n\"voice\": \"nPczCjzI2devNBz1zQrb\",\n\n\"stability\": 0.5,\n\n\"similarity_boost\": 0.75,\n\n\"speed\": 1\n\n}",
        "method": "POST",
        "options": {
          "batching": {
            "batch": {
              "batchSize": 1,
              "batchInterval": 5000
            }
          }
        },
        "sendBody": true,
        "contentType": "raw",
        "sendHeaders": true,
        "rawContentType": "application/json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Key APIKEY"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "8fd256af-b26d-4a5c-b6e0-1e199bedfdbf",
      "name": "Attente9",
      "type": "n8n-nodes-base.wait",
      "position": [
        6272,
        -1568
      ],
      "webhookId": "db3b70cf-1e63-4273-8809-3ea7148d8cc1",
      "parameters": {
        "amount": 280
      },
      "typeVersion": 1.1
    },
    {
      "id": "7ad22553-871b-47d6-a7fe-fe484849fde0",
      "name": "Vidéo finale (la plus longue)",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        5952,
        -1184
      ],
      "parameters": {
        "columns": {
          "value": {
            "idea": "={{ $('Organise idea, caption etc1').first().json.idea }}",
            "production": "done",
            "final_output": "={{ $json.video_url }}"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "id",
              "defaultMatch": true,
              "canBeUsedToMatch": true
            },
            {
              "id": "idea",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "idea",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "caption",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "caption",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "production",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "production",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "environment_prompt",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "environment_prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "final_output",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "final_output",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "idea"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1bDfwrU6m7UmR9b3pYKRh3tkM9Y-g4CAMo7Q_x1Pbx-k/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1bDfwrU6m7UmR9b3pYKRh3tkM9Y-g4CAMo7Q_x1Pbx-k",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1bDfwrU6m7UmR9b3pYKRh3tkM9Y-g4CAMo7Q_x1Pbx-k/edit?usp=drivesdk",
          "cachedResultName": "Sheet tt auto"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "XkYsv2o76QVVcrwB",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "893d73b8-8c75-41e6-81a7-636cf09b2c7f",
      "name": "Lors du clic sur 'Exécuter le workflow'",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        4928,
        -1776
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "4083ca2c-d18d-45ae-a00a-9f57b48e1792",
      "name": "Générer le script minuté",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        4784,
        -1568
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1",
          "cachedResultName": "GPT-4.1"
        },
        "options": {
          "temperature": 0.8
        },
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "=You are a highly intelligent Eleven Labs Voiceover Script AI"
            },
            {
              "content": "=Generate exactly twelve segments of documentary-style narration all of these segments must combine seemlessly, each 5 seconds long, as a JSON array. Each element must have keys: start (mm:ss), end (mm:ss), text (8–12 words). No line breaks or extras. \n\nYour goal should be to tell an interesting story based on true facts in a present tense outside perspective. Always start by introducing the thing thats being talked about and make sure it has an engaging hook. And sign off at the end with a call to action, similar to \"If you found this interesting, comment your thoughts below and follow for more.\"\n\nMatch the general idea: Title: {{$('Create New Idea1').first().json.message.content.title}} Idea: {{$('Create New Idea1').first().json.message.content.idea}}.\n\nSCRIPTS SHOULD BE IN 5 SECOND SEGMENTS\n\n"
            },
            {
              "role": "assistant",
              "content": "{\n{\n  \"segments\": [\n    {\n      \"start\": \"0:00\",\n      \"end\": \"0:05\",\n      \"text\": \"This is Europa, Jupiter's fourth-largest moon,\"\n    },\n    {\n      \"start\": \"0:05\",\n      \"end\": \"0:10\",\n      \"text\": \"and the only celestial object in our solar system that might contain alien lifeforms.\"\n    },\n    {\n      \"start\": \"0:10\",\n      \"end\": \"0:15\",\n      \"text\": \"Europa not only has a vast ocean that is five times deeper than the Earth's, even though it's smaller than our Moon,\"\n    },\n    {\n      \"start\": \"0:15\",\n      \"end\": \"0:20\",\n      \"text\": \"but also oxygen, nitrogen, carbon dioxide, and sulfur—gases necessary for life.\"\n    },\n    {\n      \"start\": \"0:20\",\n      \"end\": \"0:25\",\n      \"text\": \"Europa gets its heat from the Sun, and mostly through Jupiter's gravity,\"\n    },\n    {\n      \"start\": \"0:25\",\n      \"end\": \"0:30\",\n      \"text\": \"which stretches and squeezes Europa as it orbits the giant planet.\"\n    },\n    {\n      \"start\": \"0:30\",\n      \"end\": \"0:35\",\n      \"text\": \"This friction warms Europa’s interior, keeping its hidden ocean liquid—just like Earth’s tides.\"\n    },\n    {\n      \"start\": \"0:35\",\n      \"end\": \"0:40\",\n      \"text\": \"However, NASA is launching the Europa Clipper this year to probe beneath the 15-mile-thick ice crust,\"\n    },\n    {\n      \"start\": \"0:40\",\n      \"end\": \"0:45\",\n      \"text\": \"and possibly detect signs of marine life in that vast ocean.\"\n    },\n    {\n      \"start\": \"0:45\",\n      \"end\": \"0:50\",\n      \"text\": \"The more we learn about the cosmos, the more we realize we are not alone.\"\n    },\n    {\n      \"start\": \"0:50\",\n      \"end\": \"0:55\",\n      \"text\": \"The universe is alive—and we are part of its grand story.\"\n    },\n    {\n      \"start\": \"0:55\",\n      \"end\": \"1:00\",\n      \"text\": \"If you found this interesting, comment your thoughts below and follow for more.\"\n    }\n  ]\n}\n"
            }
          ]
        },
        "jsonOutput": true
      },
      "credentials": {
        "openAiApi": {
          "id": "836QDsJzdKW2lXHi",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "d9f1dda7-d315-4fc7-92fd-c5864be299be",
      "name": "Obtenir la vidéo finale",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        5504,
        -960
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/ffmpeg-api/requests/{{ $json.request_id }}",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Key APIKEY"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "b84cf97a-2c35-4954-ad90-97e93f318d77",
      "name": "Créer la vidéo finale",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        4608,
        -960
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/ffmpeg-api/compose",
        "body": "={\n  \"tracks\": [\n    {\n      \"id\": \"1\",\n      \"type\": \"video\",\n      \"keyframes\": [\n        {\n          \"url\": \"{{ $json.video_urls[0] }}\",\n          \"timestamp\": 0,\n          \"duration\": 5\n        },\n        {\n          \"url\": \"{{ $json.video_urls[1] }}\",\n          \"timestamp\": 5,\n          \"duration\": 5\n        },\n        {\n          \"url\": \"{{ $json.video_urls[2] }}\",\n          \"timestamp\": 10,\n          \"duration\": 5\n        },\n        {\n          \"url\": \"{{ $json.video_urls[3] }}\",\n          \"timestamp\": 15,\n          \"duration\": 5\n        },\n        {\n          \"url\": \"{{ $json.video_urls[4] }}\",\n          \"timestamp\": 20,\n          \"duration\": 5\n        },\n        {\n          \"url\": \"{{ $json.video_urls[5] }}\",\n          \"timestamp\": 25,\n          \"duration\": 5\n        },\n        {\n          \"url\": \"{{ $json.video_urls[6] }}\",\n          \"timestamp\": 30,\n          \"duration\": 5\n        },\n        {\n          \"url\": \"{{ $json.video_urls[7] }}\",\n          \"timestamp\": 35,\n          \"duration\": 5\n        },\n        {\n          \"url\": \"{{ $json.video_urls[8] }}\",\n          \"timestamp\": 40,\n          \"duration\": 5\n        },\n        {\n          \"url\": \"{{ $json.video_urls[9] }}\",\n          \"timestamp\": 45,\n          \"duration\": 5\n        },\n        {\n          \"url\": \"{{ $json.video_urls[10] }}\",\n          \"timestamp\": 50,\n          \"duration\": 5\n        },\n        {\n          \"url\": \"{{ $json.video_urls[11] }}\",\n          \"timestamp\": 55,\n          \"duration\": 5\n        }\n      ]\n    }\n  ]\n}",
        "method": "POST",
        "options": {
          "batching": {
            "batch": {
              "batchSize": 1,
              "batchInterval": 5000
            }
          }
        },
        "sendBody": true,
        "contentType": "raw",
        "sendHeaders": true,
        "rawContentType": "application/json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Key APIKEY"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "699268b3-8ad2-41fc-b923-eab121d8294a",
      "name": "Attente3",
      "type": "n8n-nodes-base.wait",
      "position": [
        5040,
        -960
      ],
      "webhookId": "db3b70cf-1e63-4273-8809-3ea7148d8cc1",
      "parameters": {
        "amount": 200
      },
      "typeVersion": 1.1
    },
    {
      "id": "6129b11e-b5de-42c4-bf37-5d944698b7fc",
      "name": "Aperçu du workflow",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5072,
        -2688
      ],
      "parameters": {
        "color": 4,
        "width": 600,
        "height": 450,
        "content": "## 🚀 AI Viral Video Factory - Overview\n\nThis workflow automates the creation of a 60-second, narrated, cinematic video from a single idea.\n\n**1. Ideation & Scripting (OpenAI)**\n* A viral concept, title, and hashtags are generated.\n* A detailed 12-scene script is written to match a 60-second runtime.\n* The full script is converted into a voiceover audio file.\n\n**2. Visual Generation Loop (Fal.ai & OpenAI)**\n* The workflow loops through each of the 12 scenes.\n* For each scene, it generates a photorealistic image using **Fal.ai Flux**.\n* **OpenAI Vision** analyzes the image to create a cinematic animation prompt.\n* The image is animated into a 5-second clip using **Fal.ai Kling**.\n\n**3. Assembly & Finalization (Fal.ai & Google)**\n* All 12 video clips are stitched together into one seamless video using **Fal.ai FFMPEG**.\n* The voiceover audio is merged with the final video.\n* The completed video is uploaded to **Google Drive**."
      },
      "typeVersion": 1
    },
    {
      "id": "d24c5bab-09f6-42bf-833a-2f5e2d645767",
      "name": "Configuration critique",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4592,
        -2192
      ],
      "parameters": {
        "color": 5,
        "width": 380,
        "height": 376,
        "content": "## ⚠️ CRITICAL SETUP ⚠️\n\nThis workflow will **FAIL** without the correct credentials.\n\n1.  **Add Credentials in n8n:**\n    * OpenAI API Key\n    * Google Account (for Sheets & Drive)\n    * Fal.ai API Key\n\n2.  **Configure Fal.ai Key in HTTP Nodes:**\n    * You **MUST** manually update all HTTP Request nodes calling `fal.run`.\n    * In each node, go to `Headers` and replace the placeholder `Authorization` value with your own Fal.ai key."
      },
      "typeVersion": 1
    },
    {
      "id": "6f182fa4-a4ef-499d-ae20-b92f16e20122",
      "name": "Boucle de génération de scènes",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5440,
        -2192
      ],
      "parameters": {
        "color": 3,
        "width": 420,
        "height": 346,
        "content": "## 🎬 The Scene Generation Loop\n\nThis section runs 12 times (once per scene) to create the visuals.\n\n1.  **Image Generation `(Create Images1)`**: Creates a still image from the script's text prompt using **Fal.ai Flux**.\n\n2.  **Animation Prompt `(Video Prompts1)`**: **OpenAI Vision** analyzes the new image and writes a *new* prompt specifically for animating it.\n\n3.  **Image-to-Video `(Create Video1)`**: Animates the still image into a 5-second clip using **Fal.ai Kling** and the new animation prompt."
      },
      "typeVersion": 1
    },
    {
      "id": "469968fa-6fe9-414d-a331-89ae5aab6497",
      "name": "Comment personnaliser",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5024,
        -2192
      ],
      "parameters": {
        "color": 6,
        "width": 350,
        "height": 284,
        "content": "## 🔧 How to Customize & Run\n\n**To Run the Workflow:**\n* Click `Execute Workflow` to generate one full video based on the current prompt.\n\n**To Change the Video Topic:**\n1.  Select the **`Create New Idea1`** (OpenAI) node.\n2.  Edit the main prompt inside to change the core theme (e.g., from `\"black holes\"` to `\"ocean life\"` or `\"ancient Rome\"`)."
      },
      "typeVersion": 1
    },
    {
      "id": "1699ce4f-49e3-464f-85c2-ac5435ab568f",
      "name": "Référence Fal.ai API",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5920,
        -2192
      ],
      "parameters": {
        "width": 360,
        "height": 404,
        "content": "## Fal.ai API Reference\n\nThis workflow uses several Fal.ai models via the HTTP Request node.\n\n* **`fal-ai/flux/schnell`**\n    * *Purpose*: High-speed text-to-image generation.\n\n* **`fal-ai/kling-video`**\n    * *Purpose*: Animates a still image based on a prompt.\n\n* **`fal-ai/ffmpeg-api`**\n    * *Purpose*: Used for video/audio manipulation (`concatenate` to stitch clips, `compose` to add audio)."
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "7a3eb5bd-d354-4b6f-85a2-d18193340c86": {
      "main": [
        [
          {
            "node": "ee58c36c-446a-4116-9a19-a4c241f6cf11",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "699268b3-8ad2-41fc-b923-eab121d8294a": {
      "main": [
        [
          {
            "node": "d9f1dda7-d315-4fc7-92fd-c5864be299be",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8fd256af-b26d-4a5c-b6e0-1e199bedfdbf": {
      "main": [
        [
          {
            "node": "dbf802be-231d-4a63-a3a6-1f00e79103b5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "23f4420e-67bb-4462-92d1-21a71dfe5fb7": {
      "main": [
        [
          {
            "node": "56ac8431-b487-47a9-8155-e12eaa891de2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "56bce7d8-5783-46de-a18c-6915724223a0": {
      "main": [
        [
          {
            "node": "9d2de0c8-68c4-4565-bb1d-610cefa5e164",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "eb52e5fb-1dbe-48e9-9994-007308743296": {
      "main": [
        [
          {
            "node": "8f0801aa-f458-47a6-a362-6ac329a11345",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8f0801aa-f458-47a6-a362-6ac329a11345": {
      "main": [
        [
          {
            "node": "23f4420e-67bb-4462-92d1-21a71dfe5fb7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ee58c36c-446a-4116-9a19-a4c241f6cf11": {
      "main": [
        [
          {
            "node": "23f4420e-67bb-4462-92d1-21a71dfe5fb7",
            "type": "main",
            "index": 1
          },
          {
            "node": "1ac22084-8049-408e-b38a-548c3c294939",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7566a56d-0417-4657-a252-95cc9bbce206": {
      "main": [
        [
          {
            "node": "14df5024-e051-473f-97e4-bf64e717b3e6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "fb67f516-c2f9-4f4d-9405-f71081900cd3": {
      "main": [
        [
          {
            "node": "eb52e5fb-1dbe-48e9-9994-007308743296",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dbf802be-231d-4a63-a3a6-1f00e79103b5": {
      "main": [
        [
          {
            "node": "788fbc81-cd89-4279-aba3-0f407139b5a1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8b819c5c-3939-4142-9000-f5e49f56c75a": {
      "main": [
        [
          {
            "node": "7a3eb5bd-d354-4b6f-85a2-d18193340c86",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "56ac8431-b487-47a9-8155-e12eaa891de2": {
      "main": [
        [
          {
            "node": "b84cf97a-2c35-4954-ad90-97e93f318d77",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1ac22084-8049-408e-b38a-548c3c294939": {
      "main": [
        [
          {
            "node": "fb67f516-c2f9-4f4d-9405-f71081900cd3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d9f1dda7-d315-4fc7-92fd-c5864be299be": {
      "main": [
        [
          {
            "node": "e0befd74-9b5d-4c1b-91e6-dca10d907db5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "26d4b225-a478-4a7d-835b-b86c10d2cf1a": {
      "main": [
        [
          {
            "node": "ffbac481-add5-42a0-872c-316782beb11b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0696cd4b-1d73-4ef2-a15e-f0208b9251ad": {
      "main": [
        [
          {
            "node": "8fd256af-b26d-4a5c-b6e0-1e199bedfdbf",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dbf9c5dd-f7a3-4d85-8270-eaeacf778ac6": {
      "main": [
        [
          {
            "node": "8b819c5c-3939-4142-9000-f5e49f56c75a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b84cf97a-2c35-4954-ad90-97e93f318d77": {
      "main": [
        [
          {
            "node": "699268b3-8ad2-41fc-b923-eab121d8294a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "10a7f701-feaf-4a96-87e1-0c21d3e7ac50": {
      "main": [
        [
          {
            "node": "dbf9c5dd-f7a3-4d85-8270-eaeacf778ac6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9d2de0c8-68c4-4565-bb1d-610cefa5e164": {
      "main": [
        [
          {
            "node": "7566a56d-0417-4657-a252-95cc9bbce206",
            "type": "main",
            "index": 0
          },
          {
            "node": "7ad22553-871b-47d6-a7fe-fe484849fde0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4083ca2c-d18d-45ae-a00a-9f57b48e1792": {
      "main": [
        [
          {
            "node": "10a7f701-feaf-4a96-87e1-0c21d3e7ac50",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "788fbc81-cd89-4279-aba3-0f407139b5a1": {
      "main": [
        [
          {
            "node": "56bce7d8-5783-46de-a18c-6915724223a0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e0befd74-9b5d-4c1b-91e6-dca10d907db5": {
      "main": [
        [
          {
            "node": "0696cd4b-1d73-4ef2-a15e-f0208b9251ad",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ffbac481-add5-42a0-872c-316782beb11b": {
      "main": [
        [
          {
            "node": "4083ca2c-d18d-45ae-a00a-9f57b48e1792",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "893d73b8-8c75-41e6-81a7-636cf09b2c7f": {
      "main": [
        [
          {
            "node": "26d4b225-a478-4a7d-835b-b86c10d2cf1a",
            "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é - Création de contenu, 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 de la création de contenu viral avec OpenAI, ElevenLabs et Fal.ai pour les vidéos, les podcasts et l'ASMR
Automatiser la création de contenu viral pour la vidéo, les podcasts et l'ASMR avec OpenAI, ElevenLabs et Fal.ai
Set
Code
Wait
+
Set
Code
Wait
97 NœudsAdam Crafts
Création de contenu
Créer des vidéos courtes virales pour bébés sur YouTube avec OpenAI, ElevenLabs et Hedra
Utiliser OpenAI, ElevenLabs et Hedra pour créer des vidéos virales de podcasts pour bébés sur YouTube
Code
Wait
Merge
+
Code
Wait
Merge
38 NœudsElectrabot
Création de contenu
Génération de podcasts viraux avec bébés célébrités en utilisant AI, Hedra et ElevenLabs
Générer des podcasts viraux avec des bébés célébrités avec AI, Hedra et ElevenLabs
Code
Wait
Merge
+
Code
Wait
Merge
35 NœudsLeeWei
Création de contenu
Création et téléchargement de vidéos AI vers Instagram, TikTok et YouTube
Création de vidéos pilotée par l'IA depuis Google Drive, téléchargement sur Instagram, TikTok et YouTube
If
Set
Code
+
If
Set
Code
53 NœudsDevCode Journey
Création de contenu
💥 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
Génération de masse de contenu SEO et création de brouillons Webflow avec images IA (modèle)
Génération de contenu SEO en masse avec GPT, images Gemini et brouillons Webflow
If
Set
Code
+
If
Set
Code
54 NœudsDahiana
Création de contenu
Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds39
Catégorie2
Types de nœuds9
Description de la difficulté

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

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34