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.
/v1/videosLancer, vérifier, télécharger
import os, time, requestsAPI = "https://api.zurelay.com/v1"HEADERS = {"Authorization": f"Bearer {os.environ['ZURELAY_API_KEY']}"}# 1. Start the videoresponse = 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 fixjob = 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 MP4video = 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.
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,2kou4k: 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_ratiostring16:9,9:16,1:1,4:3,3:4,21:9, ouadaptive(le format de la première image ; utilisé par défaut si vous en fournissez une). Sinon, la valeur par défaut est16: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. (audiofonctionne 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,@Video2et 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
@Audio1et 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
editune, enextendune, 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.
{ "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.
{ "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.
{ "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"}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_ratioetseconds. 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 ;
secondsdé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 quesecondsouaspect_ratioest 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
httpspublic 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
{ "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}Autres endpoints
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.
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.