Comment intégrer n8n avec l'API Sora2 : Guide étape par étape

Apprenez à automatiser la génération de vidéos par IA en intégrant l'API Sora2 avec n8n. Guide complet, de la configuration de la clé API à l'interrogation des résultats.

Introduction

Dans ce tutoriel, nous allons vous montrer comment automatiser la génération de vidéos par IA en intégrant l'API Sora2 avec n8n, le puissant outil d'automatisation de flux de travail. À la fin de ce guide, vous serez capable de déclencher automatiquement une génération de vidéos de qualité professionnelle à partir de n'importe quelle source de données (comme Google Sheets, Telegram ou une base Airtable).

Prérequis
  • Un compte Sora2 API avec un abonnement actif.
  • Une instance n8n (auto-hébergée ou Cloud).
  • Une compréhension de base du JSON et des requêtes HTTP.
Étapes d'intégration
1

1. Générez votre clé API Sora2

Avant de passer à n8n, vous avez besoin de vos identifiants d'authentification. Connectez-vous à Sora2 API, accédez à la section Clés API et créez une nouvelle clé commençant par 'sk-'.

Étape 1 : Obtenez votre clé API depuis la console

Étape 1 : Obtenez votre clé API depuis la console

2

2. Configurez le nœud de génération de vidéo

Dans n8n, ajoutez un nœud HTTP Request. Réglez la méthode sur POST, l'URL sur https://sora2api.org/api/generate-video, et utilisez Header Auth avec 'Authorization: Bearer VOTRE_CLÉ_API'.

Étape 2 : Configurez la requête HTTP pour la génération de vidéo

Étape 2 : Configurez la requête HTTP pour la génération de vidéo

3

3. Extrayez l'ID de la tâche

L'API renverra un taskId. Enregistrez cet ID pour vérifier l'état de votre génération de vidéo plus tard.

4

4. Implémentez la logique d'attente et d'interrogation

Ajoutez un nœud Wait de 30 secondes, puis un autre nœud HTTP Request pour appeler /api/check-video-status avec le taskId.

Étape 4 : Configurez le nœud Wait pour l'interrogation

Étape 4 : Configurez le nœud Wait pour l'interrogation

Étape 4 : Inspectez la réponse de réussite et l'URL de la vidéo

Étape 4 : Inspectez la réponse de réussite et l'URL de la vidéo

5

5. Vérifiez l'état et bouclez

Utilisez un nœud If pour vérifier si le statut est 'succeeded'. Si ce n'est pas le cas, revenez au nœud Wait.

Étape 5 : Utiliser le nœud IF pour vérifier l'état de la tâche

Étape 5 : Utiliser le nœud IF pour vérifier l'état de la tâche

Importation en un clic : Modèle de flux de travail
Copiez le JSON ci-dessous et collez-le directement dans votre espace de travail n8n pour obtenir instantanément un flux de travail préconfiguré.
{
  "name": "Sora2Api-Workflow-Template",
  "nodes": [
    {
      "parameters": {},
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [0, 0],
      "name": "When clicking ‘Execute workflow’"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://sora2api.org/api/generate-video",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "{\n  \"prompt\": \"A beautiful sunset over the ocean\",\n  \"aspectRatio\": \"16:9\",\n  \"type\": \"text2video\",\n  \"duration\": 10\n}",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [250, 0],
      "name": "Start Video Generation"
    },
    {
      "parameters": {
        "amount": 30
      },
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1.1,
      "position": [500, 0],
      "name": "Wait 30s"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://sora2api.org/api/check-video-status",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "taskId",
              "value": "={{ $json.data.taskId }}"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [750, 0],
      "name": "Check Status"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "leftValue": "={{ $json.data.status }}",
              "rightValue": "succeeded",
              "operator": {
                "type": "string",
                "operation": "equals",
                "name": "equals"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [1000, 0],
      "name": "Check if Succeeded"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "name": "Final_Video_URL",
              "value": "={{ $json.data.videoUrl }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [1250, -100],
      "name": "Final Result"
    }
  ],
  "connections": {
    "When clicking ‘Execute workflow’": {
      "main": [[{"node": "Start Video Generation", "type": "main", "index": 0}]]
    },
    "Start Video Generation": {
      "main": [[{"node": "Wait", "type": "main", "index": 0}]]
    },
    "Wait": {
      "main": [[{"node": "Check Status", "type": "main", "index": 0}]]
    },
    "Check Status": {
      "main": [[{"node": "Check if Succeeded", "type": "main", "index": 0}]]
    },
    "Check if Succeeded": {
      "main": [
        [{"node": "Final Result", "type": "main", "index": 0}],
        [{"node": "Wait", "type": "main", "index": 0}]
      ]
    }
  }
}

Prêt à commencer ?

Créez votre premier flux de travail automatisé de vidéo par IA dès aujourd'hui.

Commencer