Passer au contenu principal
Cet article présente une documentation sur l’API de génération de vidéos SeeDance, qui permet de générer des vidéos officielles de SeeDance en entrant des paramètres personnalisés.

Processus de demande

Pour utiliser l’API, vous devez d’abord vous rendre sur la page API de génération de vidéos SeeDance pour demander le service correspondant. Une fois sur la page, cliquez sur le bouton « Acquire », comme indiqué dans l’image ci-dessous : Si vous n’êtes pas encore connecté ou inscrit, vous serez automatiquement redirigé vers la page de connexion pour vous inviter à vous inscrire et à vous connecter. Après vous être connecté ou inscrit, vous serez automatiquement renvoyé à la page actuelle. Lors de la première demande, un quota gratuit sera offert, vous permettant d’utiliser l’API gratuitement.

Utilisation de base

Tout d’abord, comprenez la méthode d’utilisation de base, qui consiste à entrer le mot-clé content.text, le type content.type=text et le modèle model, afin d’obtenir le résultat traité. Le contenu spécifique est le suivant :

Nous pouvons voir ici que nous avons défini les en-têtes de requête, y compris :
  • accept : le format de réponse souhaité, ici rempli comme application/json, c’est-à-dire au format JSON.
  • authorization : la clé d’API pour appeler l’API, que vous pouvez sélectionner directement après la demande.
De plus, nous avons défini le corps de la requête, y compris :
  • model : le modèle de génération de vidéos, valeurs possibles : doubao-seedance-1-0-pro-250528, doubao-seedance-1-0-pro-fast-251015, doubao-seedance-1-5-pro-251215, doubao-seedance-1-0-lite-t2v-250428, doubao-seedance-1-0-lite-i2v-250428.
  • content : tableau de contenu d’entrée, type peut être text ou image_url.
  • resolution : résolution de sortie, valeurs possibles 480p / 720p / 1080p.
  • ratio : rapport d’aspect, valeurs possibles 16:9 / 4:3 / 1:1 / 3:4 / 9:16 / 21:9 / adaptive.
  • duration : durée de la vidéo (secondes), plage de 2 à 12.
  • seed : graine aléatoire, entier, de -1 à 4294967295.
  • camerafixed : si la caméra est fixe, true / false.
  • watermark : si un filigrane doit être ajouté, true / false.
  • generate_audio : si une vidéo avec audio doit être générée, true / false, seulement doubao-seedance-1-5-pro-251215 le supporte.
  • service_tier : mode d’inférence, default (en ligne) ou flex (hors ligne, prix 50 % de l’en ligne).
  • return_last_frame : si l’URL de la dernière image de la vidéo doit être renvoyée dans le résultat.
  • execution_expires_after : temps d’expiration de la tâche (secondes), plage de 3600 à 259200.
  • callback_url : adresse de rappel asynchrone, une fois définie, l’API renvoie immédiatement task_id, et lorsque la tâche est terminée, le résultat sera POSTé à cette adresse.
Après avoir fait votre sélection, vous pouvez voir que le code correspondant a également été généré à droite, comme indiqué dans l’image ci-dessous :

Cliquez sur le bouton « Try » pour effectuer un test, comme indiqué ci-dessus, et nous avons obtenu le résultat suivant :
{
  "success": true,
  "task_id": "ec22ae22-0140-4033-8c86-a48b536da595",
  "trace_id": "1cc87db0-8ee5-4436-969b-35cc571a9fd5",
  "data": {
    "task_id": "cgt-20251222005129-62fhb",
    "status": "succeeded",
    "video_url": "https://platform.cdn.acedata.cloud/seedance/f592800a-b87c-4705-8796-cbb8018cae35.mp4",
    "model": "doubao-seedance-1-0-pro-250528"
  }
}
Le résultat de retour contient plusieurs champs, décrits comme suit :
  • success, l’état de la tâche de génération de vidéo à ce moment.
  • task_id, l’ID de la tâche de génération de vidéo à ce moment.
  • trace_id, l’ID de suivi de la génération de vidéo à ce moment.
  • data, la liste des résultats de la tâche de génération de vidéo à ce moment.
    • task_id, l’ID côté serveur de la tâche de génération de vidéo à ce moment.
    • video_url, le lien vidéo de la tâche de génération de vidéo à ce moment.
    • status, l’état de la tâche de génération de vidéo à ce moment.
      • model, le modèle utilisé pour générer la vidéo.
Nous pouvons voir que nous avons obtenu des informations vidéo satisfaisantes, il nous suffit de récupérer la vidéo SeeDance générée à partir de l’adresse du lien vidéo dans data. De plus, si vous souhaitez générer le code d’intégration correspondant, vous pouvez le copier directement, par exemple, le code CURL est le suivant :
curl -X POST 'https://api.acedata.cloud/seedance/videos' \
-H 'authorization: Bearer ${bearer_token}' \
-H 'accept: application/json' \
-H 'content-type: application/json' \
-d '{
  "content": [{"text":"Un chaton bâillant devant la caméra. --rs 720p --rt 16:9 --dur 5 --fps 24 --wm true --seed 11 --cf false","type":"text"}],
  "model": "doubao-seedance-1-0-pro-250528"
}'

Explication des paramètres en ligne

À la fin du mot-clé content[].text, vous pouvez passer des paramètres de génération en ajoutant --parameter value (ancienne méthode, faible validation, en cas d’erreur, les valeurs par défaut seront automatiquement utilisées). La liste complète des paramètres est la suivante :
Paramètre en ligneChamp correspondantDescriptionPlage de valeurs
--rsresolutionRésolution de sortie480p / 720p / 1080p
--rtratioRapport d’aspect16:9 / 4:3 / 1:1 / 3:4 / 9:16 / 21:9 / adaptive
--durdurationDurée de la vidéo (secondes)2–12
--framesframesNombre de frames de la vidéoEntiers satisfaisant 25+4n dans [29, 289]
--fpsframespersecondTaux de framesSupporte uniquement 24
--seedseedGraine aléatoire-1 à 4294967295
--cfcamerafixedSi la caméra est fixetrue / false
--wmwatermarkSi un filigrane doit être ajoutétrue / false
Pratique recommandée : utilisez directement les champs de niveau supérieur correspondants (comme resolution, ratio, etc.) dans le corps de la requête pour un mode de validation stricte. En cas d’erreur dans les paramètres, un message d’erreur clair sera renvoyé, facilitant le diagnostic des problèmes.

Génération de vidéos avec audio

doubao-seedance-1-5-pro-251215 prend en charge la génération de vidéos avec audio via le paramètre generate_audio :
{
  "model": "doubao-seedance-1-5-pro-251215",
  "content": [
    {
      "type": "text",
      "text": "Une fille tient un renard, le vent souffle dans ses cheveux, on peut entendre le bruit du vent"
    }
  ],
  "generate_audio": true,
  "ratio": "16:9",
  "duration": 5
}
其他模型不支持 ce paramètre, il sera ignoré après transmission.

Génération de vidéo à partir d’image - première image

Si vous souhaitez générer une vidéo à partir d’une image, le paramètre content doit d’abord contenir un élément de type image_url, le champ image_url doit être au format objet : {"url": "https://..."} ou au format Base64 {"url": "data:image/png;base64,..."}.
Remarque : image_url ne prend pas en charge la transmission directe au format chaîne (comme "image_url": "https://..."), il doit être au format objet "image_url": {"url": "https://..."}, sinon une erreur 400 sera renvoyée.
Code correspondant :
import requests

url = "https://api.acedata.cloud/seedance/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "content": [
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/i2v_foxrgirl.png"
            }
        },
        {
            "type": "text",
            "text": "Une fille tient un renard dans ses bras. Elle ouvre les yeux et regarde tendrement l'appareil photo, tandis que le renard la tient affectueusement en retour. Alors que la caméra s'éloigne lentement, ses cheveux sont doucement soufflés par le vent. --ratio adaptatif  --dur 5"
        }
    ],
    "model": "doubao-seedance-1-0-pro-250528"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
En cliquant sur exécuter, vous pouvez constater que vous obtiendrez immédiatement un résultat, comme suit :
{
    "success": true,
    "task_id": "dc7cceb5-3c12-4de7-a5f4-abcbba3e8e39",
    "trace_id": "b3b09de3-b7fa-4bb0-88b5-aad4b4a96fd4",
    "data": {
        "task_id": "cgt-20251222072003-x2259",
        "status": "succeeded",
        "video_url": "https://platform.cdn.acedata.cloud/seedance/6afb78b8-5ba8-424f-adcd-69423a700b50.mp4",
        "model": "doubao-seedance-1-0-pro-250528"
    }
}
On peut voir que l’effet généré est une vidéo à partir d’image, le résultat est similaire à celui mentionné ci-dessus.

Génération de vidéo à partir d’image - première et dernière image

Si vous souhaitez générer une vidéo à partir de la première et de la dernière image, le paramètre content doit d’abord contenir un type image_url, et les rôles doivent être respectivement définis comme first_frame et last_frame, vous pouvez spécifier le contenu suivant :
  • rôle : spécifie la première ou la dernière image.
  • image_url
    • url lien de l’image En même temps, content doit également inclure un type text comme mot-clé d’invite.
Code correspondant :
import requests

url = "https://api.acedata.cloud/seedance/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
   "model": "doubao-seedance-1-0-pro-250528",
    "content": [
         {
            "type": "text",
            "text": "Prise de vue à 360 degrés"
        },
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seepro_first_frame.jpeg"
            },
            "role": "first_frame"
        },
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seepro_last_frame.jpeg"
            },
            "role": "last_frame"
        }
    ]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
En cliquant sur exécuter, vous pouvez constater que vous obtiendrez immédiatement un résultat, comme suit :
{
    "success": true,
    "task_id": "f7096c6c-9430-4392-8201-d259632d7afd",
    "trace_id": "4a4a3721-00fb-43d2-aff2-3b516ac01a8a",
    "data": {
        "task_id": "cgt-20251222073134-54qcw",
        "status": "succeeded",
        "video_url": "https://platform.cdn.acedata.cloud/seedance/95f9f5f0-fc50-4c71-bc6f-e154582c141e.mp4",
        "model": "doubao-seedance-1-0-pro-250528"
    }
}
On peut voir que l’effet généré est une vidéo générée par des personnages, le résultat est similaire à celui mentionné ci-dessus.

Callback asynchrone

Étant donné que l’API de génération de vidéos SeeDance prend un certain temps (environ 1 à 2 minutes), vous pouvez utiliser le champ callback_url pour activer le mode asynchrone, évitant ainsi une occupation prolongée de la connexion HTTP. Processus global : lorsque le client initie une demande en spécifiant callback_url, l’API renvoie immédiatement une réponse contenant task_id ; une fois la tâche terminée, la plateforme envoie les résultats générés au format JSON POST à callback_url, les résultats contiennent également task_id pour permettre l’association.
{
  "task_id": "f7096c6c-9430-4392-8201-d259632d7afd"
}
Lorsque la tâche est terminée, le contenu envoyé à callback_url par la plateforme est le suivant :
{
  "success": true,
  "task_id": "f7096c6c-9430-4392-8201-d259632d7afd",
  "trace_id": "4a4a3721-00fb-43d2-aff2-3b516ac01a8a",
  "data": {
    "task_id": "cgt-20251222073134-54qcw",
    "status": "succeeded",
    "video_url": "https://platform.cdn.acedata.cloud/seedance/95f9f5f0-fc50-4c71-bc6f-e154582c141e.mp4",
    "model": "doubao-seedance-1-0-pro-250528"
  }
}
Le champ task_id dans le résultat est identique à celui renvoyé lors de la demande, ce champ permet d’associer les tâches.

Gestion des erreurs

Lors de l’appel de l’API, si une erreur se produit, l’API renverra le code d’erreur et les informations correspondantes. Par exemple :
  • 400 token_mismatched : Mauvaise demande, probablement en raison de paramètres manquants ou invalides.
  • 400 api_not_implemented : Mauvaise demande, probablement en raison de paramètres manquants ou invalides.
  • 401 invalid_token : Non autorisé, jeton d’autorisation invalide ou manquant.
  • 429 too_many_requests : Trop de demandes, vous avez dépassé la limite de taux.
  • 500 api_error : Erreur interne du serveur, quelque chose s’est mal passé sur le serveur.

Exemple de réponse d’erreur

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "échec de la récupération"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Conclusion

Grâce à ce document, vous avez compris comment utiliser l’API de génération de vidéos SeeDance pour générer des vidéos à partir de mots-clés d’invite et d’images de référence. Nous espérons que ce document vous aidera à mieux intégrer et utiliser cette API. Si vous avez des questions, n’hésitez pas à contacter notre équipe de support technique.