Tarifs+7% bonus
Schuyler Stacy2026-07-09

Comment générer une vidéo avec une API d'IA : Seedance 2.0, ViduQ3 et 3 autres avec une seule clé

Guide pas à pas : générez une vidéo avec une API d'IA en ~10 lignes de Python. Une seule clé donne accès à Seedance 2.0, ViduQ3, Kling, Hailuo et Veo — code exécutable, tarifs réels.

Comment générer une vidéo avec une API d'IA : Seedance 2.0, ViduQ3 et 3 autres avec une seule clé

TL;DR : Pour générer une vidéo avec une API d'IA, vous envoyez une requête POST avec un prompt texte vers l'endpoint du modèle vidéo, recevez un ID de tâche, puis interrogez cette tâche jusqu'à ce que le MP4 final soit prêt — environ dix lignes de Python. L'API unifiée de GPTProto place cinq modèles vidéo derrière une seule clé et un seul solde : Seedance 2.0, ViduQ3-pro, Kling v3.0 std, Hailuo 2.3 Pro et Veo 3.1. Vous passez de l'un à l'autre en changeant une seule chaîne dans l'URL — l'authentification, la forme de la requête et l'interrogation restent identiques. La facturation est prépayée, à l'usage, à partir d'environ 0,04 $ par seconde de vidéo.

 

Appeler cinq modèles vidéo différents signifiait autrefois cinq comptes, cinq SDK et cinq tableaux de bord de facturation. Vous voulez Seedance 2.0 de ByteDance ? C'est un compte BytePlus (Volcano Engine) et une vérification d'identité que la plupart des gens hors de Chine ne peuvent pas obtenir en un après-midi. Vous voulez Veo de Google ? Console différente, clé différente. Vous voulez comparer deux modèles sur le même prompt ? Vous devez alors maintenir deux intégrations qui ne partagent rien.

Ce guide vous évite tout cela. Vous ferez votre premier appel API texte-vers-vidéo en une dizaine de lignes de Python, interrogerez pour récupérer le MP4 terminé, puis atteindrez quatre autres modèles en changeant une seule chaîne dans l'URL — même clé, même code, même solde.

Transparence totale : je rédige ces guides d'intégration pour GPTProto, donc je suis partie prenante dans le choix de l'endpoint que vous utilisez. J'ai quand même gardé des chiffres honnêtes, y compris pour le modèle ci-dessous où nous coûtons plus cher qu'en direct. Le cas échéant, je le dis.

Table des matières

Ce qu'est réellement une API de génération vidéo par IA

Ce n'est pas un bouton sans code. C'est un travail asynchrone : vous envoyez un prompt en POST, l'API renvoie un ID, le modèle génère pendant trente secondes à plusieurs minutes, et vous interrogez un deuxième endpoint jusqu'à ce que la vidéo soit prête. Ce délai de rendu est la raison même de cette conception en deux étapes — la vidéo prend trop de temps pour garder une connexion HTTP ouverte, vous recevez donc un ticket de tâche au lieu d'un fichier.

Trois formes de requêtes couvrent presque tout ce que vous construirez :

  • texte-vers-vidéo — un prompt devient un clip.
  • image-vers-vidéo — une image fixe est animée.
  • référence-vers-vidéo — une ou plusieurs images de référence maintiennent la cohérence d'un personnage ou d'un objet d'un plan à l'autre.
    Tout ce qui suit utilise la même URL de base, https://gptproto.com/api/v3, et le même en-tête. Obtenons une clé et faisons le premier appel.

Obtenez votre clé API

Inscrivez-vous sur gptproto.com, ouvrez la section API Keys du tableau de bord, puis créez une clé. Elle ressemble à sk-.... Il n'y a pas de niveau gratuit permanent ici — la facturation est prépayée, à l'usage, donc vous approvisionnez un solde et chaque appel le débite dès la première requête. Prévoyez quelques dollars pour les tests ; une poignée de clips courts ne coûtera pas plus que cela.

Installez l'unique dépendance :

pip install requests

Un point à bien comprendre avant votre premier appel, car il piège beaucoup de monde : sur la surface native /api/v3/, l'en-tête Authorization contient votre clé brute, sans préfixe Bearer. GPT Proto expose aussi une surface compatible OpenAI /v1/, et celle-ci utilise Bearer. Les mélanger est la cause la plus fréquente d'erreur 401 que je vois. Pour tout ce tutoriel, nous restons sur la surface native, donc la clé est envoyée brute.

Votre premier appel : Seedance 2.0, texte-vers-vidéo

Seedance 2.0 est le modèle vidéo de deuxième génération de ByteDance. Il génère des clips de 4 à 15 secondes jusqu'en 1080p avec un audio natif et synchronisé, et il est conçu pour les scènes multi-plans où la caméra coupe et le sujet reste cohérent. Voici une soumission texte-vers-vidéo complète :

import requests
import time
 
API_KEY = "sk-your-key-here"   # raw, no "Bearer" prefix
BASE = "https://gptproto.com/api/v3"
 
headers = {
    "Authorization": API_KEY,
    "Content-Type": "application/json",
}
 
def submit_seedance(prompt):
    url = f"{BASE}/bytedance/dreamina-seedance-2-0-260128/text-to-video"
    payload = {
        "prompt": prompt,
        "duration": 5,           # 4-15 seconds
        "aspect_ratio": "16:9",
        "resolution": "1080p",
        "generate_audio": True,
        "camera_fixed": False,
        "seed": -1,              # -1 = random
    }
    resp = requests.post(url, headers=headers, json=payload)
    resp.raise_for_status()
    return resp.json()["data"]["id"]
 
prompt = (
    "A lighthouse keeper climbs a narrow spiral staircase at dawn. "
    "Cut to a wide shot of the lamp room as the light sweeps across "
    "grey water. Waves crash below. Ambient wind and distant gulls."
)
job_id = submit_seedance(prompt)
print("submitted:", job_id)

La même requête en cURL, si vous préférez voir le format brut :

curl -X POST "https://gptproto.com/api/v3/bytedance/dreamina-seedance-2-0-260128/text-to-video" \
  -H "Authorization: sk-your-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A lighthouse keeper climbs a spiral staircase at dawn, then the lamp sweeps across grey water.",
    "duration": 5,
    "aspect_ratio": "16:9",
    "resolution": "1080p",
    "generate_audio": true,
    "camera_fixed": false,
    "seed": -1
  }'

La réponse ne contient pas de vidéo. Elle contient une tâche :

{
  "data": {
    "id": "cgt-20260709xxxxxx-abc",
    "status": "created",
    "outputs": [],
    "urls": { "get": "https://gptproto.com/api/v3/predictions/cgt-20260709xxxxxx-abc/result" }
  },
  "message": "success",
  "code": 200
}

data.id est votre ticket. data.urls.get est une URL d'interrogation prête à l'emploi, avec l'ID déjà inclus. En résumé : vous avez soumis un travail, vous avez obtenu un ID, et rien n'est encore généré.

Interroger pour obtenir le résultat

Vous appelez maintenant l'endpoint de résultat jusqu'à ce que status passe à completed, puis vous lisez l'URL de la vidéo dans outputs. Chaque modèle de la plateforme utilise ce même endpoint d'interrogation et la même forme de réponse, ce qui permet à l'astuce « changer une chaîne » de fonctionner plus loin :

def wait_for_video(job_id, every=5, timeout=600):
    url = f"{BASE}/predictions/{job_id}/result"
    waited = 0
    while waited < timeout:
        resp = requests.get(url, headers=headers)
        resp.raise_for_status()
        data = resp.json()["data"]
        status = data["status"]
 
        if status == "completed":
            return data["outputs"][0]        # the MP4 URL
        if data.get("error"):
            raise RuntimeError(data["error"])
 
        print(f"  {status}... {waited}s")
        time.sleep(every)
        waited += every
 
    raise TimeoutError(f"timed out after {timeout}s (last status: {status})")
 
video_url = wait_for_video(job_id)
print("done:", video_url)

Voilà une génération complète et fonctionnelle. Deux fonctions, un prompt, un MP4. Un clip de 5 secondes se termine généralement en une minute ou deux, même si un rendu 1080p de 15 secondes avec audio peut prendre plus de temps — interrogez toutes les quelques secondes et ne martelez pas l'API.

Une remarque sur la boucle : je lève une exception sur error et je traite tout statut non-completed, sans erreur, comme « continuer à attendre ». C'est délibéré. Différents modèles rapportent les états intermédiaires différemment, et la décision sûre est d'attendre tout ce qui n'est pas un échec franc plutôt que de coder en dur une liste de statuts qui pourrait changer.

Changez une chaîne, changez de moteur : ViduQ3-pro

Voici l'intérêt. Pour générer le même prompt sur ViduQ3-pro au lieu de Seedance, vous changez le chemin — rien d'autre. La clé, les en-têtes et wait_for_video() restent exactement tels quels :

def submit_vidu(prompt):
    url = f"{BASE}/vidu/viduq3-pro/text-to-video"
    payload = {
        "prompt": prompt,
        "duration": 5,           # ViduQ3 goes up to 16s
        "aspect_ratio": "16:9",
        "resolution": "1080p",
        "audio": True,           # note: ViduQ3 uses `audio`, not `generate_audio`
        "seed": -1,
    }
    resp = requests.post(url, headers=headers, json=payload)
    resp.raise_for_status()
    return resp.json()["data"]["id"]
 
job_id = submit_vidu(prompt)
video_url = wait_for_video(job_id)   # same poller, unchanged

ViduQ3-pro pousse les clips jusqu'à 16 secondes — deux fois la plage pratique de Seedance — et c'est le modèle le moins cher ici à la seconde. Les noms de paramètres changent un peu d'un modèle à l'autre (ViduQ3 contrôle le son avec audio ; Seedance utilise generate_audio), alors consultez la page du modèle pour l'ensemble exact des champs, mais le rythme requête/soumission/interrogation ne change jamais.

Garder un personnage cohérent. Les deux modèles vedettes ne font pas que du texte-vers-vidéo. Dirigez ViduQ3 vers /vidu/viduq3-pro/image-to-video avec un champ image pour animer une image fixe, ou utilisez le mode référence-vers-vidéo de Seedance avec des images de référence pour que le même visage soit cohérent d'un plan à l'autre. C'est le même flux soumission/interrogation — vous ajoutez une entrée image, vous n'apprenez pas une nouvelle API. Vérifiez les noms des champs de référence sur chaque page de modèle avant de l'intégrer en production.

Quel modèle choisir ?

Cinq modèles, une seule clé. Ce ne sont pas des paliers hiérarchiques où le plus grand nombre gagne toujours — ce sont des missions différentes. Choisissez selon les besoins du clip :

Modèle Chemin ({provider}/{model}) Audio natif Durée max Prix À utiliser quand
Seedance 2.0 bytedance/dreamina-seedance-2-0-260128 Oui ~15s à partir de 0,2957 $/exécution Scènes multi-plans avec son synchronisé
ViduQ3-pro vidu/viduq3-pro Oui 16s à partir de 0,04 $/s Clips plus longs, prix le plus bas
Kling v3.0 std kling/kling-v3.0-std Oui ~10s à partir de 0,2016 $/exécution Image-vers-vidéo économique et fiable
Hailuo 2.3 Pro minimax/hailuo-2.3-pro Non ~10s 0,441 $/exécution 1080p net quand vous ajouterez le son vous-même
Veo 3.1 google/veo3.1 Oui — à partir de 0,5 $/exécution Sortie 4K requise

Deux points méritent d'être signalés avant de vous lancer. Hailuo 2.3 Pro renvoie une vidéo silencieuse — excellente image, mais vous composerez la bande-son en post-production. Et Veo 3.1 appose sur chaque sortie un filigrane SynthID intégré que vous ne pouvez pas désactiver, ce qui compte si vous livrez à un client qui ne veut pas de marques de provenance intégrées.

Comme la plateforme normalise tout cela derrière un même contrat soumission/interrogation, passer de l'un à l'autre est une simple recherche dans un dictionnaire, pas une réécriture :

MODELS = {
    "seedance": "bytedance/dreamina-seedance-2-0-260128",
    "vidu":     "vidu/viduq3-pro",
    "kling":    "kling/kling-v3.0-std",
    "hailuo":   "minimax/hailuo-2.3-pro",
    "veo":      "google/veo3.1",
}
 
def submit(model_key, scene, payload):
    url = f"{BASE}/{MODELS[model_key]}/{scene}"
    resp = requests.post(url, headers=headers, json=payload)
    resp.raise_for_status()
    return resp.json()["data"]["id"]
 
# same wait_for_video() retrieves any of them
job_id = submit("kling", "image-to-video", {"prompt": prompt, "image": image_url})

Les charges utiles diffèrent selon le modèle — c'est la partie que vous ajustez — mais la découverte, l'authentification et la récupération ne changent pas.

Ce que ça coûte réellement

La tarification vidéo est à la seconde ou par exécution, et elle augmente fortement avec la résolution, la durée et la génération d'audio. Le chiffre mis en avant sur la page d'un modèle est un plancher, pas une prévision. Exemple concret : un clip Seedance en 720p / 16:9 / 5 secondes avec audio revient à environ 0,605 $ — bien au-dessus de sa base de 0,2957 $ — parce que vous avez activé tous les leviers de coût à la fois. Évaluez vos réglages réels à partir de l'estimation du tableau de bord, pas de l'étiquette.

Voici la comparaison honnête avec l'appel direct à chaque fournisseur :

  • ViduQ3-pro — à partir de 0,04 $/s, environ 20 % sous la référence du marché à ~0,05 $/s.
  • Kling v3.0 std — à partir de 0,2016 $/exécution, environ 20 % sous la référence de ~0,252 $.
  • Hailuo 2.3 Pro — 0,441 $/exécution contre ~0,49 $ chez MiniMax, environ 10 % moins cher.
  • Seedance 2.0 — à partir de 0,2957 $/exécution, soit environ 10 % au-dessus du rendu du même clip directement sur Dreamina, la plateforme de ByteDance. Je ne vais pas prétendre le contraire. L'intérêt de passer par l'API n'est pas un prix plus bas — c'est un accès programmatique stable, un seul solde et pas de vérification d'identité BytePlus. Si le coût est votre seul critère pour Seedance, le passage en direct est moins cher.
  • Veo 3.1 — à partir de 0,5 $/exécution ; il n'y a pas de référence de marché claire sur la page, alors considérez-le comme un choix pratique, pas une remise.
    Il n'y a pas de niveau gratuit ni d'abonnement mensuel — vous payez par appel dès la première requête. Pour la tarification d'un modèle spécifique, le catalogue de modèles affiche les tableaux actuels par seconde et par résolution.

Erreurs et pièges à éviter

Un petit guide des problèmes courants :

  • 401 Non autorisé — presque toujours l'inversion avec Bearer. La surface native /api/v3/ attend la clé brute.
  • 403 Interdit — généralement un solde vide, pas un problème de permissions. Rechargez.
  • 429 — vous êtes limité en débit ; reculez et réessayez.
  • 400 avec un message de contenu — le prompt a déclenché la modération. Les réponses contiennent aussi un indicateur has_nsfw_contents qu'il vaut la peine de vérifier dans un pipeline.
  • L'interrogation ne se termine jamais — les rendus longs existent ; c'est pourquoi wait_for_video() a un délai maximal au lieu de boucler indéfiniment.
  • Mauvais paramètre audio — generate_audio (Seedance) vs audio (ViduQ3). Envoyer le mauvais paramètre ne fait rien, silencieusement, au lieu de renvoyer une erreur, ce qui est pire. Vérifiez les noms de champs pour chaque modèle.

 

Commencez ici

Le chemin le plus rapide : prenez une clé, exécutez les extraits Seedance et ViduQ3 ci-dessus, puis changez la chaîne du modèle pour essayer les autres. Tout ce qu'il vous faut pour choisir un modèle — tarifs actuels, modes pris en charge, tableaux de résolutions — se trouve sur chaque page de modèle dans le catalogue. Une clé, un solde, cinq moteurs vidéo.

Studio créatif

Générez images, vidéos et plus avec les API de production.

Commencer à créer
Studio créatif
Modèles associés
Tous les modèles
OpenAI
20% OFF
Claude
10% OFF
OpenAI
20% OFF
OpenAI
20% OFF

FAQ

Ai-je besoin d'un compte séparé pour chaque modèle ?

Non. Une seule clé GPTProto donne accès à tous ces modèles avec un seul solde. Vous changez le chemin de l'URL, pas les identifiants.

Combien coûte une API de génération vidéo par IA ?

Le prix démarre autour de 0,04 $ par seconde (ViduQ3-pro) et augmente avec la résolution, la durée et l'audio. Un clip 1080p de 5 secondes avec son se situe généralement entre 0,20 $ et 0,60 $ selon le modèle.

Quelle est la meilleure API de génération vidéo par IA en 2026 ?

Cela dépend du besoin. Seedance 2.0 pour les scènes multi-plans avec audio synchronisé, ViduQ3-pro pour la durée et le prix, Kling v3.0 std pour l'image-vers-vidéo économique, Hailuo 2.3 Pro quand vous ajouterez votre propre bande-son, Veo 3.1 quand vous avez besoin de 4K. Le tableau comparatif ci-dessus associe chaque modèle à un cas d'usage.

Existe-t-il un niveau gratuit ?

Non. La facturation est prépayée, à l'usage, dès le premier appel.

Ces API peuvent-elles générer un audio natif ?

La plupart d'entre elles le peuvent : Seedance 2.0, ViduQ3-pro, Kling v3.0 std et Veo 3.1 renvoient un son synchronisé. Hailuo 2.3 Pro renvoie une vidéo silencieuse, prévoyez donc d'ajouter l'audio au montage.

Articles associés

Plus de blogs
7 générateurs vidéo IA les plus abordables en 2026 (classés selon le coût réel par vidéo)

7 générateurs vidéo IA les plus abordables en 2026 (classés selon le coût réel par vidéo)

Un abonnement vidéo à 30 $/mois peut vous coûter plus cher qu’un appel API à 0,04 $. Cela semble paradoxal, alors permettez-moi de vous montrer les calculs d’emblée : si cette formule vous donne 800 crédits et qu’un clip correct en consomme 200, vous obtenez quatre vidéos pour 30 $ — environ 7,50 $ chacune. Sur GPTProto, une génération Vidu Q3 Pro de 16 secondes avec audio natif coûte $0.04 . Il faudrait en générer 187 pour dépenser les mêmes 7,50 $. C’est tout l’enjeu de la « vidéo IA abordable » en 2026. Le prix affiché sur une page d’accueil ne vous apprend presque rien. Ce qui compte, c’est le coût d’une vidéo utilisable — celle que vous conservez après les tentatives infructueuses. Cet article classe les moyens les moins chers d’obtenir réellement cette vidéo, à partir des tarifs actuels par génération, tout en indiquant honnêtement à partir de quel moment le bas prix ne vaut plus le coup.

Tiffany Layne | 2026-07-07

Seedance 2.0 Mini vs Seedance 2.0 : prix, qualité et lequel utiliser réellement

Seedance 2.0 Mini vs Seedance 2.0 : prix, qualité et lequel utiliser réellement

En bref — À résolution égale, Seedance 2.0 Mini coûte environ 20 % moins cher que le Seedance 2.0 standard sur GPTProto — et non pas le « moitié prix » que vous lirez sur la plupart des pages comparatives. L'économie la plus importante vient d'une limite stricte : Mini s'arrête à 720p et évite donc entièrement les niveaux 1080p et 4K, plus coûteux. Choisissez Mini pour itérer rapidement, générer beaucoup de variantes et créer de courtes vidéos pour les réseaux sociaux. Choisissez le Seedance 2.0 standard si vous avez besoin de 1080p ou de 4K, de mouvements plus complexes ou d'un montage final destiné à un client. La configuration réellement rentable consiste à utiliser les deux : faites vos brouillons sur Mini, puis finalisez sur le modèle standard. Le reste de ce guide consacré à Seedance 2.0 Mini et à son équivalent grand format présente les chiffres réels qui justifient chacun de ces choix.

Tiffany Layne | 2026-06-30

Seedance 2.5 est-il déjà disponible ? Date de sortie et ce que nous savons réellement (2026)

Seedance 2.5 est-il déjà disponible ? Date de sortie et ce que nous savons réellement (2026)

J'ai actualisé la page Seed de ByteDance plus de fois que je ne voudrais l'admettre cette semaine, en attendant de voir apparaître Seedance 2.5. Pour l'instant, rien. Pas de page consacrée au modèle, pas de fiche technique, pas de date. C'est précisément pour cela que cet article existe : de nombreux contenus très affirmatifs sur Seedance 2.5 circulent actuellement, et la plupart présentent des suppositions comme des faits. Je veux clairement distinguer les deux, puis vous orienter vers ce que vous pouvez réellement utiliser aujourd'hui.

Tiffany Layne | 2026-06-23

Comment utiliser Kling 3.0 Motion Control : guide du développeur (Web + API)

Comment utiliser Kling 3.0 Motion Control : guide du développeur (Web + API)

Kling 3.0 Motion Control anime l’image statique d’un personnage en lui appliquant les mouvements d’une vidéo de référence. Vous lui fournissez deux entrées — une image de votre personnage et une vidéo d’une personne en mouvement — et il renvoie un nouveau clip dans lequel votre personnage exécute exactement la même chorégraphie, tout en conservant son propre visage, sa tenue et son apparence. Il s’agit d’un transfert de mouvement, et non de texte vers mouvement. Au lieu de décrire une action dans un prompt en espérant que le modèle l’interprète correctement, vous lui montrez l’action image par image. Le résultat est ainsi bien plus fiable pour l’animation répétable de personnages, la danse et les gestes. Ce guide couvre les deux possibilités : l’application web Kling pour les clips ponctuels et l’API GPTProto pour intégrer Motion Control à un pipeline. Nous aborderons les entrées et les limites, les niveaux `pro` et `std`, les techniques de prompt, du code complet exécutable, les tarifs et les problèmes à connaître avant de dépenser vos crédits.

Michael Johnson | 2026-06-30