Vidéo

Génération de vidéos

Créez des vidéos avec Seedance, Kling, Omni, Wan, Grok, Veo, Vidu, PixVerse et MiniMax à partir d’un prompt, d’une première image (et éventuellement d’une dernière), ou d’images de référence, vidéos et audio. La génération prend quelques minutes : lancez-la, puis revenez vérifier.

POST/v1/videos
ModèleIDPrix par secondeÀ partir deSonDurée
Seedance 2.5seedance-2.5480p $0.135 · 720p $0.305 · 1080p $0.75Prompt, la première et la dernière image, ou jusqu’à 9 images de référenceActivé par défaut, gratuit4 à 30 s
Seedance 2.0seedance-2.0480p $0.097 · 720p $0.199 · 1080p $0.445 · 4K $0.99Prompt, la première et la dernière image, ou jusqu’à 9 images de référenceActivé par défaut, gratuit4 à 15 s
Seedance 2.0 Fastseedance-2.0-fast480p $0.074 · 720p $0.159Prompt, la première et la dernière image, ou jusqu’à 9 images de référenceActivé par défaut, gratuit4 à 15 s
Kling 4.0kling-4.0720p $0.15 · 1080p $0.225Prompt, la première et la dernière image, ou jusqu’à 10 images de référenceToujours activé3 à 30 s
Seedance 2.0 Miniseedance-2.0-mini480p $0.047 · 720p $0.10Prompt, la première et la dernière image, ou jusqu’à 9 images de référenceActivé par défaut, gratuit4 à 15 s
Gemini Omni Flashgemini-omni-flash360p $0.042 · 720p $0.042 · 1080p $0.042 · 4K $0.07Prompt, la première et la dernière image, ou jusqu’à 10 images de référenceToujours activé4 à 10 s
Kling 3.0kling-3.0720p $0.185 (silent $0.125) · 1080p $0.235 (silent $0.18)Prompt ou la première et la dernière imageActivé par défaut ; sans audio, c’est moins cher3 à 15 s
Wan 3.0wan-3.0480p $0.039 · 720p $0.079 · 1080p $0.158Prompt, la première et la dernière image, ou jusqu’à 10 images de référenceActivé par défaut, gratuit2 à 30 s
Grok Imagine Video 1.5grok-imagine-video-1.5480p $0.071 · 720p $0.124Prompt, une première image, ou jusqu’à 3 images de référenceActivé par défaut, gratuit1 à 15 s
Veo 3.1 Fastveo-3.1-fastClip de 720p $0.20 per 8 sPrompt ou une première imageToujours activé8 s
Vidu Q3 Turbovidu-q3-turbo540p $0.03 · 720p $0.047 · 1080p $0.057Prompt ou la première et la dernière imageActivé par défaut, gratuit1 à 16 s
PixVerse V6pixverse-v6360p $0.027 (silent $0.019) · 540p $0.035 (silent $0.027) · 720p $0.047 (silent $0.035) · 1080p $0.09 (silent $0.07)Prompt ou la première et la dernière imageActivé par défaut ; sans audio, c’est moins cher1 à 15 s
MiniMax H3minimax-h3768p $0.039 · 2K $0.064Prompt et jusqu’à 9 images de référence, 3 videos and 3 audio clipsToujours activé4 à 15 s

Lancer, vérifier, télécharger

import os, time, requests
API = "https://api.zurelay.com/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['ZURELAY_API_KEY']}"}
# 1. Start the video
response = requests.post(f"{API}/videos", headers=HEADERS, json={
"model": "seedance-2.0",
"prompt": "A paper boat drifting down a rain-soaked street at night, neon reflections, slow dolly shot",
"seconds": 5,
"resolution": "720p",
"aspect_ratio": "16:9",
})
response.raise_for_status() # a 4xx says what to fix
job = response.json()
# 2. Poll until it's done (usually 2 to 6 minutes)
while job["status"] in ("queued", "in_progress"):
time.sleep(10)
job = requests.get(f"{API}/videos/{job['id']}", headers=HEADERS).json()
if job["status"] == "failed":
raise SystemExit(job["error"]["message"])
# 3. Download the MP4
video = requests.get(f"{API}/videos/{job['id']}/content", headers=HEADERS)
open("boat.mp4", "wb").write(video.content)

Tous les modèles vidéo fonctionnent de la même façon : changez model et la requête reste identique. Les guides présentent les points forts de chacun : Seedance, Kling, Wan, Grok Imagine, Omni Flash, MiniMax H3, Veo, Vidu et PixVerse.

Vous préférez éviter les vérifications répétées ? Ajoutez callback_url et la vidéo terminée est envoyée à votre serveur par une requête POST signée dès qu’elle est prête. Voir Callbacks.

Paramètres

modelstringrequis
L’identifiant d’un modèle vidéo.
promptstring
Ce qui doit se passer, en 8,000 caractères maximum (Kling lit jusqu’à 2,500, Vidu reads up to 2,000, PixVerse reads up to 2,048, MiniMax reads up to 7,000). Obligatoire sauf si vous fournissez une première image ou des images de référence.
negative_promptstring
Ce qui ne doit pas apparaître dans la vidéo, en 2,500 caractères maximum. Kling and PixVerse en tiennent compte ; les autres modèles refusent ce paramètre.
secondsinteger
Durée en secondes entières, dans les limites du modèle (voir le tableau). Par défaut : 5, ou la durée disponible la plus proche.
resolutionstring
Par exemple 480p, 720p, 1080p, 2k ou 4k : les options de chaque modèle figurent dans le tableau. Par défaut : 720p, ou la résolution la plus basse du modèle.
aspect_ratiostring
16:9, 9:16, 1:1, 4:3, 3:4, 21:9, ou adaptive (le format de la première image ; utilisé par défaut si vous en fournissez une). Sinon, la valeur par défaut est 16:9. Kling makes 16:9, 9:16, 1:1 et 21:9; Omni and Veo make 16:9 and 9:16; Kling makes 16:9, 9:16 and 1:1; Grok, Vidu and PixVerse make 16:9, 9:16, 1:1, 4:3 and 3:4.
sizestring
À la place de la résolution et du ratio : des dimensions en pixels comme 1280x720.
generate_audioboolean
Son et paroles générés avec la vidéo. Par défaut : true. (audio fonctionne aussi.) Kling and PixVerse cost moins cher sans son.
seedinteger
Les mêmes seed et paramètres donnent des résultats similaires. Kling, Grok and Veo have no seed and ignore it.
first_framestring
L’image de départ de la vidéo : un lien ou une URL de données. MiniMax takes none: give the image in reference_images.
last_framestring
L’image de fin de la vidéo. Nécessite une première image. Seedance, Kling, Omni, Wan, Vidu and PixVerse take one.
reference_imagesarray
Images de personnages, de produits, de lieux ou d’un style à utiliser : Seedance up to 9, Kling up to 10, Omni up to 10, Wan up to 10, Grok up to 3, MiniMax up to 9; Veo, Vidu and PixVerse take none. Incompatible avec les images de début et de fin.
reference_videosarray
Vidéos dont vous souhaitez reprendre l’aspect, les mouvements ou le travail de caméra, ou vidéo à modifier ou à prolonger : MP4 ou MOV, sous forme de liens ou d’URL de données, mentionnés dans le prompt par @Video1, @Video2 et ainsi de suite. Seedance 2.5, Seedance 2.0, Gemini Omni Flash et MiniMax H3 uniquement. Leur durée est facturée à une fraction du prix par seconde, voire pas du tout sur certains modèles ; voir Vidéos et audio de référence.
reference_audioarray
Voix, musique ou son à utiliser : MP3 ou WAV, sous forme de liens ou d’URL de données, désignés par @Audio1 et ainsi de suite. Seedance 2.5, Seedance 2.0 et MiniMax H3 uniquement, sans supplément.
reference_modestring
Avec des vidéos de référence : en edit une, en extend une, ou créer une nouvelle vidéo à partir des références (reference). Par défaut, auto : le modèle suit le prompt. Seedance 2.5 uniquement.
callback_urlstring
Une URL https où envoyer la vidéo terminée (ou en échec), plutôt que d’interroger régulièrement son statut. Voir Callbacks.

Partir d’images

Première et dernière image

Animez une image fixe : la vidéo commence exactement sur first_frame. Ajoutez last_frame pour qu’elle se termine sur cette image, et contrôlez ainsi le début et la fin du plan. MiniMax starts à partir d’images de référence à la place.

Corps de la requête
{
"model": "seedance-2.0",
"first_frame": "https://example.com/storefront-day.jpg",
"last_frame": "https://example.com/storefront-night.jpg",
"prompt": "Time passes from afternoon to night; lights come on inside the shop.",
"seconds": 6,
"resolution": "720p"
}

Images de référence

Fournissez jusqu’à 10 images (Seedance up to 9, Kling up to 10, Omni up to 10, Wan up to 10, Grok up to 3, MiniMax up to 9; Veo, Vidu et PixVerse take none) et mentionnez-les dans le prompt dans l’ordre (@Image1, @Image2…) : les personnes, produits et lieux qu’elles contiennent apparaîtront dans la vidéo.

Corps de la requête
{
"model": "seedance-2.5",
"reference_images": [
"https://example.com/chef.jpg",
"https://example.com/kitchen.jpg",
"https://example.com/dish.jpg"
],
"prompt": "The chef from @Image1 plates the dish from @Image3 in the kitchen from @Image2, close-up, warm light.",
"seconds": 8,
"resolution": "720p",
"aspect_ratio": "9:16"
}

Vidéos et audio de référence

Fournissez des vidéos pour reprendre l’apparence et les mouvements d’une personne, un mouvement de caméra ou une scène, et de l’audio pour une voix, une mélodie ou des effets sonores. Mentionnez-les dans le prompt dans l’ordre, comme pour les images : @Video1, @Audio1. Vous pouvez les combiner avec des images de référence, mais pas avec une première image.

Corps de la requête
{
"model": "seedance-2.5",
"reference_images": ["https://example.com/singer.jpg"],
"reference_videos": ["https://example.com/dance-moves.mp4"],
"reference_audio": ["https://example.com/chorus.mp3"],
"prompt": "The singer from @Image1 performs the dance from @Video1 on a rooftop at dusk, singing to @Audio1.",
"seconds": 8,
"resolution": "720p"
}
ModèleVidéos de référenceAudio de référencePar seconde de vidéo de référence
Seedance 2.5Jusqu’à 10, 30 s in allJusqu’à 10, 30 s in all480p $0.081, 720p $0.183
Seedance 2.0Jusqu’à 3, 15 s in allJusqu’à 3, 15 s in all, with an image or video480p $0.0582, 720p $0.1194
Gemini Omni FlashJusqu’à 3, 10 s eachAucunSans frais
MiniMax H3Jusqu’à 3, 15 s eachJusqu’à 3, 15 s in allSans frais

Le modèle analyse chaque seconde d’une vidéo de référence : ces secondes sont donc aussi facturées, à une fraction du prix d’une seconde générée. Une vidéo de 5 s avec une référence de 10 s coûte ainsi ses 5 secondes plus 10 secondes de référence. L’audio de référence ne coûte rien de plus. Chaque objet vidéo indique les secondes de référence facturées (reference_seconds).

Modifier et prolonger une vidéo

Définissez reference_mode sur edit pour modifier une vidéo de référence (remplacer une personne ou un objet, ajouter ou supprimer un élément, changer la musique), ou sur extend pour la prolonger avant ou après. Précisez l’action dans le prompt : “Remplacez la voiture de @Video1 par celle de @Image1”, “Continuez @Video1 pendant que la personne qui danse quitte la scène”.

  • Une modification conserve le format et la durée de la vidéo : omettez donc aspect_ratio et seconds. La durée facturée est celle de la vidéo de référence la plus longue, qui doit durer de 4 à 30 secondes.
  • Une prolongation conserve le format de la vidéo ; seconds définit la durée de la nouvelle vidéo.
  • Sans reference_mode, le modèle décide d’après le prompt. Un prompt interprété comme une demande de modification alors que seconds ou aspect_ratio est défini peut échouer (les vidéos en échec ne sont pas facturées).

Règles pour les images

  • PNG, JPEG ou WebP, sous forme de lien https public ou d’URL de données, jusqu’à 10 MB.
  • De 300 à 6000 pixels par côté, avec un rapport largeur/hauteur ou hauteur/largeur maximal de 5:2. Les URL de données qui ne respectent pas ces limites sont refusées immédiatement, avec un message explicatif. Les liens sont lus au démarrage de la vidéo : si un lien ne fournit pas d’image exploitable, la vidéo échoue avec invalid_image, sans frais.
  • Images de début et de fin ou images de référence, pas les deux dans une même requête.
  • Les requêtes sont au format JSON : les images sont transmises sous forme de liens ou d’URL de données, pas par envoi multipart.

L’objet vidéo

GET /v1/videos/video_abc123
{
"id": "video_abc123",
"object": "video",
"model": "seedance-2.0",
"status": "completed",
"progress": 100,
"created_at": 1790870400,
"completed_at": 1790870562,
"expires_at": 1793462400,
"seconds": 5,
"resolution": "720p",
"aspect_ratio": "16:9",
"size": "1280x720",
"generate_audio": true,
"url": "https://...signed link...",
"url_expires_at": 1790956962,
"cost": 1.035,
"error": null
}
ChampSignification
statusqueued, in_progress, completed ou failed.
progressUne estimation de 0 à 100, basée sur le temps habituellement nécessaire au modèle.
urlLe MP4, une fois la vidéo terminée. Le lien est valable 24 heures ; récupérez à nouveau la tâche pour obtenir un nouveau lien.
expires_atDate de suppression de la vidéo : 30 jours après sa création, ou plus tôt si quelqu’un la supprime dans la bibliothèque.
costSon coût, une fois la vidéo terminée.
reference_secondsSecondes de vidéo de référence incluses dans le prix, si vous en avez fourni.
errorPour les vidéos en échec : code (content_policy, invalid_image, invalid_request quand le modèle ne peut pas traiter la demande telle quelle, generation_failed, ou generation_timeout après 90 minutes) et un message.

Autres endpoints

EndpointRenvoie
GET /v1/videos/{id}Une vidéo, comme ci-dessus.
GET /v1/videos/{id}/contentLe fichier MP4 lui-même.
GET /v1/videos?limit=20&after=video_abcLes vidéos de votre espace de travail, des plus récentes aux plus anciennes, avec first_id et last_id pour la pagination.

Facturation des vidéos

Le coût d’une vidéo correspond à son prix par seconde (selon la résolution) multiplié par sa durée; Kling et PixVerse cost de moins par seconde sans son; les secondes des vidéos de référence sont facturées à une fraction de ce tarif. Au lancement, ce montant est réservé sur votre solde ; il est débité une fois la vidéo terminée, ou libéré en cas d’échec. Une vidéo en échec est gratuite.

Faites vos essais à la résolution la plus basse et sur une courte durée, puis générez la version finale en plus haute résolution une fois le prompt au point. L’attente vient surtout de la file d’attente : les essais ne sont donc pas beaucoup plus rapides, mais coûtent bien moins cher.

Une question ou un élément manquant ? Contactez notre équipe d’assistance et nous vous répondrons par e-mail, généralement en moins d’une minute.