API de generación de vídeo
Describe un clip con palabras sencillas, elige un modelo, una duración y un formato de encuadre y recibe un archivo MP4 con banda sonora. OmevAI planifica los planos y el movimiento de cámara a partir de tu descripción; tú solo eliges lo que se indica a continuación. El precio se conoce antes de empezar y solo pagas por un clip que se entrega.
La API de vídeo se activa para cada clave por separado. Escribe a support@omev.be para activarla. Los mismos modelos están disponibles en el gabinete web; consulta Generación de vídeo en el gabinete.
El vídeo es asíncrono: crea un trabajo, comprueba su estado y descarga el archivo terminado. Todas las llamadas usan el host habitual https://llmapi.omev.be y tu clave de API de OmevAI.
Modelos y precios
model | Ideal para | Duración | resolution | Puedes enviar | Precio por segundo |
|---|---|---|---|---|---|
omev-video-lite | escenas sencillas, precio bajo | 4–12 s | 768p | texto; texto y un primer fotograma | $0.039 |
omev-video | personas, movimiento complejo, movimiento de cámara, varias acciones | 4–15 s | 720p (por defecto), 1080p | texto; texto y un primer fotograma | 720p $0.069 · 1080p $0.135 |
omev-video-premium | calidad premium, clips de hasta 30 s | 4–30 s | 720p (por defecto), 1080p | texto; texto y un primer fotograma; texto y hasta 5 imágenes de referencia | texto o primer fotograma: 720p $0.075 · 1080p $0.15; con imágenes de referencia: 720p $0.11 · 1080p $0.22 |
Formatos de encuadre (aspect_ratio): omev-video-lite acepta 16:9, 21:9, 4:3, 1:1, 3:4, 9:16; omev-video y omev-video-premium aceptan 16:9, 4:3, 1:1, 3:4, 9:16.
El precio de un clip es el precio por segundo multiplicado por la duración que pides. Un clip omev-video de 8 segundos en 720p cuesta 8 × $0.069 = $0.552; en 1080p, $1.08. Un clip omev-video-premium de 8 segundos en 720p cuesta $0.60 a partir de texto o de un primer fotograma y $0.88 con imágenes de referencia.
1. Crear un trabajo
curl -sS https://llmapi.omev.be/v1/videos/generations \
-H "Authorization: Bearer $OMEV_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "omev-video",
"duration": 8,
"resolution": "720p",
"aspect_ratio": "9:16",
"prompt": "A ceramic mug on a wooden table in morning light, the camera slowly circles the mug",
"idempotency_key": "order-2026-10-12-0001"
}'
| Campo | Requerido | Valores |
|---|---|---|
model | sí | omev-video-lite, omev-video u omev-video-premium |
prompt | sí | la descripción del clip, hasta 4000 caracteres |
duration | sí | segundos enteros dentro del rango del modelo |
aspect_ratio | no | un formato de encuadre que el modelo acepte, por defecto 16:9 |
resolution | no | 720p o 1080p para omev-video y omev-video-premium; omev-video-lite siempre es 768p |
image | no | un enlace público https al primer fotograma (los tres modelos); debe abrirse sin iniciar sesión |
references | no | hasta 5 enlaces públicos https a imágenes de referencia: un personaje, un producto, un logotipo o un estilo; solo omev-video-premium y no junto con image |
idempotency_key | recomendado | tu propio número de pedido, hasta 100 caracteres; repetirlo devuelve el mismo trabajo y no vuelve a cobrar |
seed, fps, steps, cfg y provider no se aceptan (400): OmevAI los elige.
La respuesta es 202 con el trabajo:
{
"id": "vid_0f3c2a9e8b7d4c6a1e5f2b3c",
"object": "video.generation",
"model": "omev-video",
"status": "queued",
"duration": 8,
"aspect_ratio": "9:16",
"resolution": "720p",
"price_usd": 0.552,
"access_token": "…"
}
Antes de que empiece el trabajo, el precio se reserva en el saldo de la clave. Cuando el clip se entrega, se cobra; cuando la generación falla, la reserva se libera. Guarda id y access_token: el token es necesario para leer el estado y descargar el archivo. Si se perdió la respuesta, envía la misma solicitud con el mismo idempotency_key para obtener el mismo id y el mismo token.
2. Comprobar el estado
curl -sS https://llmapi.omev.be/v1/videos/generations/$ID \
-H "Authorization: Bearer $OMEV_API_KEY" \
-H "X-Omev-Video-Token: $TOKEN"
Sin el token, o con el token de otro trabajo, la respuesta es 404. Consulta cada 10–15 segundos.
status | Significado |
|---|---|
queued, preprocessing | el trabajo se ha aceptado y la descripción se está convirtiendo en un plan de planos |
generating | el clip se está generando; phase muestra provider_queued (esperando un hueco), generating o saving |
processing | una comprobación adicional poco frecuente por nuestra parte; sigue consultando |
succeeded | terminado: video.url es el enlace de descarga |
failed | no se ha podido hacer: error.code y error.message indican el motivo; la reserva se libera |
3. Descargar el clip
curl -sS -L -o clip.mp4 https://llmapi.omev.be/v1/videos/generations/$ID/content \
-H "Authorization: Bearer $OMEV_API_KEY" \
-H "X-Omev-Video-Token: $TOKEN"
La respuesta es el archivo MP4 con banda sonora. Descárgalo en cuanto el trabajo termine con éxito y guárdalo en tu propio almacenamiento.
Ciclo completo en Python
import os, time, requests
BASE = "https://llmapi.omev.be"
auth = {"Authorization": f"Bearer {os.environ['OMEV_API_KEY']}"}
job = requests.post(f"{BASE}/v1/videos/generations", headers=auth, timeout=60, json={
"model": "omev-video-lite", "duration": 6, "aspect_ratio": "1:1",
"prompt": "A cup of hot coffee, steam rising, soft light",
"idempotency_key": "order-0002"}).json()
read = {**auth, "X-Omev-Video-Token": job["access_token"]}
while True:
status = requests.get(f"{BASE}/v1/videos/generations/{job['id']}", headers=read, timeout=60).json()
if status["status"] in ("succeeded", "failed"):
break
time.sleep(15)
if status["status"] == "succeeded":
clip = requests.get(f"{BASE}{status['video']['url']}", headers=read, timeout=600)
open("clip.mp4", "wb").write(clip.content)
else:
print(status["error"])
Consultas gratuitas
GET /v1/videos/models: los modelos con sus duraciones, resoluciones, formatos de encuadre y precios por segundo.GET /v1/videos/price?model=omev-video&duration=8&resolution=1080p: el precio de un clip, por ejemplo{"price_usd": 1.08, "per_second_usd": 0.135, …}. Paraomev-video-premiumcon imágenes de referencia, añade&references=1.
Tiempos y límites
- Un clip de 4 segundos suele tardar unos 2 minutos con
omev-video-liteyomev-video-premium, y 10–20 segundos conomev-video. Los clips más largos tardan más. - Una cuenta puede tener hasta 2 trabajos de vídeo sin terminar a la vez; un tercero responde
429. - Regenerar y valorar un clip está disponible en el gabinete web. A través de la API, crea un trabajo nuevo para un nuevo intento.
- Las solicitudes que incumplen la política de contenidos se rechazan antes de cualquier cobro.
Errores
| Código | Significado | Qué hacer |
|---|---|---|
400 | una duración fuera del rango del modelo, un formato de encuadre o una resolución que el modelo no acepta, un primer fotograma junto con imágenes de referencia, imágenes de referencia para un modelo distinto de omev-video-premium, o un parámetro que no se acepta | corrige la solicitud según error.message |
401 | clave de API ausente o no válida | comprueba la clave |
402 | el saldo de la clave es inferior al precio del clip | recarga el saldo |
403 | el vídeo no está activado para la clave | escribe a soporte |
404 | trabajo desconocido, o un X-Omev-Video-Token ausente o incorrecto | comprueba el id y el token |
409 | el idempotency_key ya se usó con otros parámetros, o la combinación no está disponible temporalmente | usa un número de pedido nuevo; si no está disponible, reintenta más tarde |
429 | ya hay 2 trabajos de vídeo en curso | espera a que termine uno de ellos |
5xx | error temporal | reintenta con el mismo idempotency_key tras 10–30 segundos |
Consulta Errores y reintentos para ver el formato común.