queue_id y haz polling de /video/retrieve hasta que la respuesta sea video/mp4.
Endpoints
Paso 1: encola la generación
Solicitud:download_url:
download_url es una URL pre-firmada que usas para descargar el vídeo terminado en lugar de leerlo desde la respuesta de retrieve. Solo se devuelve una vez en la respuesta de la cola, así que persístela junto con queue_id. Esto se aplica a las cuatro variantes Grok Imagine Private:
grok-imagine-text-to-video-privategrok-imagine-image-to-video-privategrok-imagine-reference-to-video-privategrok-imagine-video-to-video-private
grok-imagine-*-video, los modelos Grok Imagine Private no se facturan por rechazos de moderación de contenido, por lo que solo pagas por generaciones exitosas.
Guarda model, queue_id y download_url (si está presente) para todas las llamadas posteriores.
Enlaces de descarga privados
Para los modelos privados,download_url es la forma de obtener el archivo terminado una vez completado el trabajo. El enlace es de corta duración y de un solo propósito: está ahí para entregarte el MP4, no para servir como URL de larga duración o ampliamente compartida.
Si una descarga se interrumpe, puedes reintentar el mismo GET unas cuantas veces desde el mismo entorno hasta que el archivo termine. Esos reintentos son para recuperarse de cortes de red — no para hacer polling indefinido del mismo enlace, compartirlo entre muchos clientes o incrustarlo como una URL de medios permanente. Patrones así suelen aparecer como 429 o 410, lo que puede ser sorprendente si esperabas que el enlace se comportara como hosting de archivos normal.
Para fiabilidad, las solicitudes GET deben originarse desde una sola red de cliente. Hay cierta flexibilidad si tu IP cambia una vez (por ejemplo, desconectas una VPN y vuelves a intentarlo), pero una gran variación de IPs de origen normalmente no funcionará.
La URL es válida durante hasta 24 horas, o hasta que el objeto sea eliminado.
Si necesitas una URL estable, reproducción pública o acceso repetido en el tiempo, guarda el archivo en tu propio almacenamiento primero y sírvelo desde allí.
DELETE
Cuando termines de descargar el archivo — o si decides no conservarlo — puedes llamar a DELETE sobre el mismo download_url. No se requiere API key de Venice en esa solicitud. Esto es opcional, pero recomendado cuando la privacidad importa, porque algunos proxies y middleboxes fuera de Venice mantienen logs de URLs completas, y eliminar el enlace es la forma más simple de reducir la ventana en la que existe la URL pre-firmada.
/video/retrieve hasta COMPLETED → GET del download_url (reintenta ligeramente si la transferencia falla) → guarda el archivo donde lo necesites → DELETE del download_url si quieres que el enlace se invalide → opcionalmente llama a /video/complete si aún usas la limpieza basada en cola.
Paso 2: polling de finalización
Solicitud:
Respuesta en procesamiento (200, application/json):
average_execution_time para estimar la espera restante.
Respuesta completada (200, video/mp4):
El cuerpo de la respuesta son datos binarios en bruto del vídeo. Guárdalo en un archivo.
Respuesta completada (200, application/json con "COMPLETED"):
Para los modelos que devolvieron un download_url en la cola, retrieve siempre devuelve JSON. Obtén el vídeo con GET download_url (sin cabecera de auth). Consulta Enlaces de descarga privados para saber cómo funcionan estas URLs, los reintentos y el DELETE opcional.
Paso 3: limpieza (opcional)
O auto-eliminar al recuperar:/video/complete tras guardar:
Ejemplo completo
Parámetros de solicitud
Solicitud Queue
La validación de la cola es específica del modelo. Comprueba
/models?type=video para ver los campos de solicitud admitidos por cada modelo antes de llamar a /video/queue.
Solicitud Quote
Solicitud Retrieve
Solicitud Complete
Imagen a vídeo
Para los modelos image-to-video, pasa la imagen fuente víaimage_url. El prompt describe el movimiento deseado, no el contenido de la imagen.
Cotización de precio
Obtén el coste exacto antes de generar. Envía solo entradas de precio (model, duration y los opcionales resolution, aspect_ratio, audio):
Solicitud:
Errores
Estrategia de polling
- Haz polling de
/video/retrievea intervalos (por ejemplo, cada 5 segundos) - Si
Content-Typeesapplication/jsonystatuses"PROCESSING", espera y vuelve a hacer polling. Usaaverage_execution_timeyexecution_duration(milisegundos) para estimar el tiempo restante - Si
Content-Typeesvideo/mp4, guarda el cuerpo de la respuesta como tu archivo de salida - Si
Content-Typeesapplication/jsonystatuses"COMPLETED", hazGETdeldownload_urlde la respuesta de la cola para obtener el vídeo (consulta Enlaces de descarga privados) - Si usaste
download_url, considera hacerDELETEen esa URL cuando termines para reducir cuánto existe la URL pre-firmada; después, opcionalmente, establecedelete_media_on_completion: trueen retrieve o llama a/video/completepara limpieza basada en cola - Gestiona
404como media no válido, expirado o eliminado; gestiona500/503con reintentos/backoff