Referencia de la API
Videos
Modelos de este endpoint (13)
/v1/videos/v1/videos/{task_id}/v1/videos/{task_id}/contentGeneración de video asíncrona (Seedance, Kling, Veo, Wan, Grok Imagine …). /v1/videos acepta entradas de texto a video e imagen a video en una única solicitud con formato OpenAI. Devuelve un task_id que consultas — o registra un webhook al enviarla.
#Parámetros de la solicitud
modelstringobligatorioUn ID de modelo de video de la página de modelos, p. ej. doubao-seedance-2.5.
promptstringobligatorioDescripción de la escena; en image2video orienta el movimiento.
imagestringopcionalSolo image2video: imagen del primer fotograma como URL o base64.
imagesarrayopcionalFotogramas de referencia para proveedores que aceptan varias imágenes en una tarea.
durationnumberopcionalDuración del clip en segundos — una dimensión del nivel de precio; los valores admitidos están en la ficha del modelo.
secondsnumberopcionalAlias que usan algunas familias de modelos para la duración del clip; considera duration como el campo preferido.
resolutionstringopcionalNivel de resolución de salida, como 720p o 1080p, cuando el modelo lo ofrece.
sizestringopcionalSelector de relación de aspecto o tamaño para familias de modelos que usan tamaños del tipo ancho x alto.
webhook_urlstringopcionalURL HTTPS a la que se llama cuando la tarea llega a un estado final — consulta la guía de video para conocer el contrato del callback.
webhook_secretstringopcionalSi se define, las entregas incluyen X-Xiaoxiang-Signature: sha256=hex(HMAC-SHA256(body, secret)).
Reenvío de parámetros del proveedor
Las tareas fallidas se reembolsan automáticamente
#Cancelar una tarea en curso
/v1/videos/:task_idDetiene una tarea que no ha llegado a un estado final. Si tiene éxito, la cuota reservada se reembolsa, la tarea se registra como fallida con el motivo "cancelled by user" y cualquier webhook que hayas registrado se dispara como task.failed.
La mayoría de los proveedores no permiten cancelar
curl -X DELETE https://www.aisplice.store/v1/videos/task_xxx \
-H "Authorization: Bearer sk-YOUR_KEY"{
"id": "task_xxx",
"task_id": "task_xxx",
"status": "cancelled"
}Ten en cuenta que "cancelled" solo aparece en esta respuesta. Una consulta posterior informa la tarea como failed, porque ese es el estado al que pasó.
- 404 task_not_existId de tarea desconocido, o pertenece a otra cuenta.
- 409 task_not_cancellableLa tarea ya terminó — no hay nada que detener.
- 501 task_cancel_not_supportedEste proveedor no ofrece una API de cancelación.
#Hacer remix de un video existente
/v1/videos/:video_id/remixVuelve a renderizar un video terminado con un prompt nuevo, en los modelos que lo admiten. Envía prompt y nada más: el modelo, la duración, la resolución y los factores de precio se heredan de la tarea original, y la solicitud queda fijada al canal que la generó.
curl https://www.aisplice.store/v1/videos/task_xxx/remix \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: remix-of-task_xxx" \
-d '{"prompt": "Same shot, at night"}'{
"task_id": "task_yyy",
"status": "queued",
"remixed_from_video_id": "task_xxx"
}Un remix es una nueva tarea facturable
- 400 invalid_requestprompt es obligatorio en un remix.
- 400 task_not_existEl id del video de origen es desconocido o pertenece a otra cuenta.
- 400 task_channel_disableEl canal que generó el video original ya no está habilitado.
#Errores relacionados
- 404 not_foundRuta desconocida, nombre de modelo desconocido, o un task_id caducado o de otra cuenta.
- 422 unprocessable_entityEl proveedor rechazó valores de parámetros que el gateway reenvió (p. ej. tamaño o duración no admitidos).
- 401Bearer token no válido o ausente. Esta ruta no tiene error.code — compara por el estado.
- 402 insufficient_user_quotaEl saldo de la billetera no cubre la estimación reservada previamente.
- 429Limitación por clave. Cuerpo vacío; espera el Retry-After. Un 429 que sí incluye insufficient_user_quota indica en cambio un límite de gasto diario.
- 503 model_not_foundModelo desconocido, o ningún canal sano lo atiende ahora mismo.
#Ejemplo de solicitud
# submit
curl https://www.aisplice.store/v1/videos \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "doubao-seedance-2.5", "prompt": "A drone shot of a lighthouse at dawn"}'
# poll every 5s
curl https://www.aisplice.store/v1/videos/$TASK_ID -H "Authorization: Bearer sk-YOUR_KEY"
# download when completed
curl -L https://www.aisplice.store/v1/videos/$TASK_ID/content -o out.mp4 -H "Authorization: Bearer sk-YOUR_KEY"#Respuesta
// POST — submit accepted
{"task_id": "task_xxx", "status": "queued"}
// GET /v1/videos/{task_id}
{
"task_id": "task_xxx",
"status": "in_progress", // queued | in_progress | completed | failed
"progress": "45%"
}
// terminal state
{
"task_id": "task_xxx",
"status": "completed",
"metadata": {"url": "https://…"}
}¿Sigues con el problema?
Envíanos el ID de solicitud o el mensaje de error y lo revisaremos.