Workflow n8n

Automatisation vidéo avec n8n : création dynamique de contenu

Ce workflow n8n a pour objectif de simplifier la création de vidéos en automatisant le processus de génération de contenu à partir de texte. Dans un contexte où la production de vidéos devient essentielle pour les entreprises cherchant à renforcer leur présence en ligne, ce workflow permet de transformer des textes en vidéos de manière fluide et efficace. Les cas d'usage incluent la création de tutoriels, de présentations ou de contenus marketing, rendant ce processus accessible même aux équipes sans compétences techniques avancées.

  • Étape 1 : Le workflow est déclenché manuellement par l'utilisateur via un bouton 'Test workflow'.
  • Étape 2 : Ensuite, le nœud 'Text 2 Video' effectue une requête HTTP pour convertir le texte en vidéo.
  • Étape 3 : Le nœud 'RANDOM Camera Motion' ajoute un mouvement de caméra aléatoire pour dynamiser la vidéo.
  • Étape 4 : Les paramètres de la vidéo sont configurés dans le nœud 'Global SETTINGS', tandis que le nœud 'ADD Video Info' enregistre les informations de la vidéo dans une base de données Airtable. Enfin, des notes autocollantes sont utilisées pour fournir des commentaires visuels tout au long du processus. Grâce à cette automatisation n8n, les entreprises peuvent gagner un temps précieux, réduire les coûts de production et améliorer leur réactivité face aux besoins de contenu, tout en offrant une expérience utilisateur enrichie.
Tags clés :automatisationvidéon8ncréation de contenuAirtable
Catégorie: Manual · Tags: automatisation, vidéo, n8n, création de contenu, Airtable0

Workflow n8n vidéo, création de contenu, Airtable : vue d'ensemble

Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.

Workflow n8n vidéo, création de contenu, Airtable : détail des nœuds

  • When clicking ‘Test workflow’

    Ce noeud déclenche le workflow lorsque l'utilisateur clique sur le bouton 'Test workflow'.

  • Text 2 Video

    Ce noeud envoie une requête HTTP pour convertir du texte en vidéo.

  • RANDOM Camera Motion

    Ce noeud exécute un code JavaScript pour générer un mouvement de caméra aléatoire.

  • Sticky Note

    Ce noeud crée une note autocollante avec une couleur, une largeur et un contenu spécifiés.

  • Global SETTINGS

    Ce noeud définit des paramètres globaux en assignant des valeurs à des options.

  • ADD Video Info

    Ce noeud ajoute des informations vidéo dans une base de données Airtable.

  • Execution Data

    Ce noeud récupère les données d'exécution du workflow.

  • Sticky Note1

    Ce noeud crée une autre note autocollante avec des spécifications de couleur, de largeur et de contenu.

Inscris-toi pour voir l'intégralité du workflow

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "id": "2pMoIW58KP6ZeGir",
  "meta": {
    "instanceId": "ecc960f484e18b0e09045fd93acf0d47f4cfff25cc212ea348a08ac3aae81850",
    "templateCredsSetupCompleted": true
  },
  "name": "Luma AI Dream Machine - Simple v1 - AK",
  "tags": [
    {
      "id": "tUlWC9t8VhwpFaci",
      "name": "Alex - WIP",
      "createdAt": "2025-02-20T17:17:53.411Z",
      "updatedAt": "2025-02-20T17:17:53.411Z"
    }
  ],
  "nodes": [
    {
      "id": "dbe1dbcc-05a0-4439-869c-157e51a99dd1",
      "name": "When clicking ‘Test workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -440,
        0
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "603f7fdd-e590-4a51-b606-a9bb9396a0c0",
      "name": "Text 2 Video",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        220,
        0
      ],
      "parameters": {
        "url": "https://api.lumalabs.ai/dream-machine/v1/generations",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"model\": \"ray-2\",\n  \"prompt\": {{ JSON.stringify($('Global SETTINGS').first().json.video_prompt + \"; camera motion: \" + $json.action) }},\n  \"aspect_ratio\": \"{{ $('Global SETTINGS').first().json.aspect_ratio }}\",\n  \"duration\": \"{{ $('Global SETTINGS').item.json.duration }}\",\n  \"loop\": {{ $('Global SETTINGS').first().json.loop }},\n  \"callback_url\": \"{{ $('Global SETTINGS').first().json.callback_url }}\"\n  \n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "accept",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "zzIlODir90EUTwHh",
          "name": "Luma Header Auth account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "494ac05e-e0c5-465e-b805-2749683ab789",
      "name": "RANDOM Camera Motion",
      "type": "n8n-nodes-base.code",
      "position": [
        0,
        0
      ],
      "parameters": {
        "jsCode": "const items = [\n  \"Static\",\n  \"Move Left\",\n  \"Move Right\",\n  \"Move Up\",\n  \"Move Down\",\n  \"Push In\",\n  \"Pull Out\",\n  \"Zoom In\",\n  \"Zoom Out\",\n  \"Pan Left\",\n  \"Pan Right\",\n  \"Orbit Left\",\n  \"Orbit Right\",\n  \"Crane Up\",\n  \"Crane Down\"\n];\n\nconst randomItem = items[Math.floor(Math.random() * items.length)];\n\nreturn [{ json: { action: randomItem } }];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "30ba7cfc-d2c3-478f-ae01-0a3397ceb439",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -260,
        -120
      ],
      "parameters": {
        "color": 3,
        "width": 180,
        "content": "## Define your SETTINGS here"
      },
      "typeVersion": 1
    },
    {
      "id": "12924397-b2a4-43a0-8ec5-1b13c0357e40",
      "name": "Global SETTINGS",
      "type": "n8n-nodes-base.set",
      "position": [
        -220,
        0
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "7064f685-d91f-4049-9fcb-dd7018c1bc8d",
              "name": "aspect_ratio",
              "type": "string",
              "value": "9:16"
            },
            {
              "id": "3d6d3fe0-4e4a-4d1b-9f6a-08037a4e2785",
              "name": "video_prompt",
              "type": "string",
              "value": "a superhero flying through a volcano"
            },
            {
              "id": "7ae48bee-0be5-487f-8d6d-ea7fe98fdd36",
              "name": "loop",
              "type": "string",
              "value": "true"
            },
            {
              "id": "82930db0-971e-4de4-911d-ff5a7fab5d67",
              "name": "duration",
              "type": "string",
              "value": "5s"
            },
            {
              "id": "b51d9834-87c8-4358-a257-6a02ebe2576d",
              "name": "cluster_id",
              "type": "string",
              "value": "={{ Date.now() + '_' + Math.random().toString(36).slice(2, 10) }}"
            },
            {
              "id": "8756fe2d-df04-48d4-9cd4-d29b8d9a3ab1",
              "name": "airtable_base",
              "type": "string",
              "value": "appvk87mtcwRve5p5"
            },
            {
              "id": "a83707ef-3a1c-4b3c-939c-1376bc43cc76",
              "name": "airtable_table_generated_videos",
              "type": "string",
              "value": "tblOzRFWgcsfttRWK"
            },
            {
              "id": "694528cd-c51e-45ac-8dbe-1b33b347f590",
              "name": "callback_url",
              "type": "string",
              "value": "https://YOURURL.com/luma-ai"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "9f4732b5-8e3e-4fb6-942f-32c72b3eb041",
      "name": "ADD Video Info",
      "type": "n8n-nodes-base.airtable",
      "position": [
        660,
        0
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Global SETTINGS').first().json.airtable_base }}"
        },
        "table": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Global SETTINGS').first().json.airtable_table_generated_videos }}"
        },
        "columns": {
          "value": {
            "Model": "={{ $json.model }}",
            "Aspect": "={{ $json.request.aspect_ratio }}",
            "Length": "={{ $json.request.duration }}",
            "Prompt": "={{ $('Global SETTINGS').first().json.video_prompt }}",
            "Status": "Done",
            "Cluster ID": "={{ $('Global SETTINGS').first().json.cluster_id }}",
            "Resolution": "={{ $json.request.resolution }}",
            "Generation ID": "={{ $json.id }}"
          },
          "schema": [
            {
              "id": "Generation ID",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Generation ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Todo",
                  "value": "Todo"
                },
                {
                  "name": "In progress",
                  "value": "In progress"
                },
                {
                  "name": "Done",
                  "value": "Done"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Content Title",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Content Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Video URL",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Video URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Thumb URL",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Thumb URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Prompt",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Prompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "VO",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "VO",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Aspect",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Aspect",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Model",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Model",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Resolution",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Resolution",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Length",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Length",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Created",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "Created",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Cluster ID",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Cluster ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "create"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "yqBrLbgHXLcwqH0p",
          "name": "AlexK Airtable Personal Access Token account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "9923373d-d4ce-42bb-9f2d-34350f64ac5b",
      "name": "Execution Data",
      "type": "n8n-nodes-base.executionData",
      "position": [
        440,
        0
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "5044e1f2-c985-4c3a-9386-f4fe4f85f37b",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -40,
        -120
      ],
      "parameters": {
        "color": 5,
        "width": 840,
        "content": "## This is where the magic happens... "
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "e756199d-31fc-4e2f-8937-3625295a147c",
  "connections": {
    "Text 2 Video": {
      "main": [
        [
          {
            "node": "Execution Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ADD Video Info": {
      "main": [
        []
      ]
    },
    "Execution Data": {
      "main": [
        [
          {
            "node": "ADD Video Info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Global SETTINGS": {
      "main": [
        [
          {
            "node": "RANDOM Camera Motion",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RANDOM Camera Motion": {
      "main": [
        [
          {
            "node": "Text 2 Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Test workflow’": {
      "main": [
        [
          {
            "node": "Global SETTINGS",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n vidéo, création de contenu, Airtable : pour qui est ce workflow ?

Ce workflow s'adresse aux équipes marketing, aux créateurs de contenu et aux PME souhaitant automatiser leur processus de création vidéo. Un niveau technique basique est suffisant pour l'utiliser, rendant cet outil accessible à un large éventail d'utilisateurs.

Workflow n8n vidéo, création de contenu, Airtable : problème résolu

Ce workflow résout le problème de la complexité et du temps nécessaire pour créer des vidéos à partir de textes. En automatisant ce processus, il élimine les frustrations liées à la création manuelle de contenu vidéo, réduit les risques d'erreurs et permet aux utilisateurs de se concentrer sur des tâches plus stratégiques. À la suite de la mise en place de cette automatisation, les utilisateurs peuvent produire des vidéos de manière rapide et efficace, augmentant ainsi leur capacité à répondre aux demandes de contenu.

Workflow n8n vidéo, création de contenu, Airtable : étapes du workflow

Étape 1 : Le workflow est déclenché manuellement par l'utilisateur.

  • Étape 1 : Le nœud 'Text 2 Video' envoie une requête HTTP pour générer la vidéo à partir du texte fourni.
  • Étape 2 : Le nœud 'RANDOM Camera Motion' applique un mouvement de caméra aléatoire pour enrichir la vidéo.
  • Étape 3 : Les paramètres globaux sont définis dans le nœud 'Global SETTINGS'.
  • Étape 4 : Les informations de la vidéo sont ajoutées à Airtable via le nœud 'ADD Video Info'.
  • Étape 5 : Des notes autocollantes sont créées pour afficher des commentaires visuels tout au long du processus.

Workflow n8n vidéo, création de contenu, Airtable : guide de personnalisation

Pour personnaliser ce workflow, vous pouvez modifier l'URL dans le nœud 'Text 2 Video' pour pointer vers votre service de génération de vidéos. Vous pouvez également ajuster les paramètres dans le nœud 'Global SETTINGS' pour répondre à vos besoins spécifiques. Si vous souhaitez intégrer d'autres outils, envisagez d'ajouter des nœuds supplémentaires pour enrichir le contenu ou pour le publier directement sur vos réseaux sociaux. Assurez-vous de sécuriser les données en configurant les options d'authentification appropriées dans les nœuds HTTP.