Vídeo
Generación de vídeo
Crea vídeos con Seedance, Kling, Omni, Wan, Grok, Veo, Vidu, PixVerse y MiniMax a partir de un prompt, de un primer fotograma (y, si quieres, uno final) o de imágenes de referencia, vídeos y audio. Los vídeos tardan unos minutos, así que lanzas uno y vuelves a consultarlo.
/v1/videosIniciar, consultar, descargar
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)Todos los modelos de vídeo funcionan igual: cambia model y la petición sigue siendo la misma. Las guías de cada modelo explican para qué destaca cada uno: Seedance, Kling, Wan, Grok Imagine, Omni Flash, MiniMax H3, Veo, Vidu y PixVerse.
callback_url y el vídeo terminado se envía por POST a tu servidor, firmado, en cuanto esté listo. Consulta Callbacks.Parámetros
modelstringobligatorio- Un ID de modelo de vídeo.
promptstring- Qué ocurre, hasta 8.000 caracteres (Kling admite hasta 2,500, Vidu reads up to 2,000, PixVerse reads up to 2,048, MiniMax reads up to 7,000). Obligatorio salvo que des un primer fotograma o imágenes de referencia.
negative_promptstring- Qué evitar en el vídeo, hasta 2.500 caracteres. Kling and PixVerse lo leen; los demás modelos lo rechazan.
secondsinteger- Duración en segundos enteros, dentro del rango del modelo (consulta la tabla). Por defecto 5, o la duración más cercana que haga el modelo.
resolutionstring- Como
480p,720p,1080p,2ko4k: los de cada modelo están en la tabla. Por defecto 720p, o el más bajo del modelo. aspect_ratiostring16:9,9:16,1:1,4:3,3:4,21:9oadaptive(la forma del primer fotograma; el valor por defecto cuando das uno). En caso contrario, el valor por defecto es16:9. Kling makes 16:9, 9:16, 1:1 y 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- En lugar de resolución y proporción: píxeles como
1280x720. generate_audioboolean- Sonido y voz generados con el vídeo. Por defecto
true. (También funcionaaudio.) Kling and PixVerse cost menos sin sonido. seedinteger- La misma semilla y los mismos ajustes dan resultados similares. Kling, Grok and Veo have no seed and ignore it.
first_framestring- Una imagen con la que empieza el vídeo: un enlace o una URL de datos. MiniMax takes none: give the image in reference_images.
last_framestring- Una imagen con la que termina. Necesita un primer fotograma. Seedance, Kling, Omni, Wan, Vidu and PixVerse take one.
reference_imagesarray- Imágenes de personajes, productos, lugares o un estilo que usar: 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. No junto con fotogramas.
reference_videosarray- Vídeos cuyo aspecto, movimiento o trabajo de cámara quieres usar, o un vídeo que editar o ampliar: MP4 o MOV, como enlaces o URLs de datos, mencionados en el prompt como
@Video1,@Video2y así sucesivamente. Seedance 2.5, Seedance 2.0, Gemini Omni Flash y MiniMax H3 solamente. Sus segundos se facturan a una parte del precio de un segundo, o no se facturan en algunos modelos; consulta Vídeos y audio de referencia. reference_audioarray- Voz, música o sonido que usar: MP3 o WAV, como enlaces o data URLs, mencionados como
@Audio1y demás. Seedance 2.5, Seedance 2.0 y MiniMax H3 solamente, sin coste adicional. reference_modestring- Con vídeos de referencia:
edituno,extenduno, o crear un vídeo nuevo a partir de las referencias (reference). Por defectoauto: el modelo se guía por el prompt. Seedance 2.5 solamente. callback_urlstring- Una URL https a la que enviar el vídeo terminado (o fallido), en lugar de consultar el estado. Consulta Callbacks.
Empezar desde imágenes
Primer y último fotograma
Anima una imagen fija: el vídeo empieza exactamente en first_frame. Añade last_frame y termina en esa imagen, así controlas ambos extremos del plano. MiniMax starts a partir de imágenes de referencia.
{ "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"}Imágenes de referencia
Indica hasta 10 imágenes (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 y PixVerse take none) y menciónalas en el prompt por orden (@Image1, @Image2…): las personas, productos y lugares que aparecen en ellas saldrán en el vídeo.
{ "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"}Vídeos y audio de referencia
Da vídeos para tomar el aspecto y los movimientos de una persona, un movimiento de cámara o una escena, y audio para una voz, una melodía o efectos de sonido. Menciónalos en el prompt por orden, igual que con las imágenes: @Video1, @Audio1. Se combinan con imágenes de referencia, pero no con un primer fotograma.
{ "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"}El modelo lee cada segundo de un vídeo de referencia, así que esos segundos también se facturan, a una parte del precio de un segundo: un vídeo de 5 s con una referencia de 10 s cuesta sus 5 segundos más 10 segundos de referencia. El audio de referencia no cuesta nada extra. Cada objeto de vídeo muestra los segundos de referencia facturados (reference_seconds).
Editar y ampliar un vídeo
Ajusta reference_mode a edit para modificar un vídeo de referencia (cambiar una persona u objeto, añadir o quitar algo, cambiar la música), o a extend para continuarlo hacia delante o hacia atrás. Di qué hacer en el prompt: «Replace the car in @Video1 with the one in @Image1», «Continue @Video1 as the dancer leaves the stage».
- Una edición mantiene la forma y la duración del vídeo, así que omite
aspect_ratioyseconds. Se factura según el vídeo de referencia más largo, que debe durar entre 4 y 30 segundos. - Una ampliación mantiene la forma del vídeo;
secondsdefine cuánto dura el vídeo nuevo. - Sin
reference_modeel modelo decide a partir del prompt, y un prompt que se lee como una edición consecondsoaspect_ratiodefinidos puede fallar (los vídeos fallidos son gratis).
Reglas para las imágenes
- PNG, JPEG o WebP, como enlace
httpspúblico o data URL, hasta 10 MB. - Entre 300 y 6000 píxeles por lado, y sin una proporción mayor que 5:2. Las data URLs que no cumplan esto se rechazan de entrada con un mensaje que explica por qué. Los enlaces se leen cuando empieza el vídeo: uno que no sea una imagen válida hace fallar el vídeo con
invalid_image, sin coste. - Fotogramas o referencias, no ambos en una misma petición.
- Las peticiones son JSON: las imágenes van como enlaces o data URLs, no como subidas multipart.
El objeto de vídeo
{ "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}Otros endpoints
Pagar por vídeo
Un vídeo cuesta su precio por segundo (según la resolución) multiplicado por su duración; Kling y PixVerse cost menos por segundo sin sonido; los vídeos de referencia suman sus segundos a parte de ese precio. Al iniciarlo, su precio se reserva de tu saldo; se cobra cuando el vídeo termina y se libera si falla. Un vídeo fallido es gratis.
¿Tienes dudas o falta algo? Escribe a nuestro equipo de soporte y te responderemos por email, normalmente en menos de un minuto.