KozeKoze
Volver al blog
Tutorial2026年6月28日·管理员

Documentación de la llamada a la API de generación de vídeo

Kozeai proporciona una interfaz de generación de vídeo compatible con OpenAI Sora, que utiliza un modo de tarea asíncrona: primero se envía la tarea para obtener el `task_id`, luego se consulta el estado de la tarea y, una vez finalizada, se descarga el contenido del vídeo.

Documentación de la API de generación de vídeo

kozeai proporciona una interfaz de generación de vídeo compatible con OpenAI Sora, utilizando un modo de **tarea asíncrona**: primero se envía la tarea para obtener el `task_id`, luego se consulta el estado de la tarea y, al finalizar, se descarga el contenido del vídeo.

Autenticación

Todas las solicitudes se autentican mediante `Authorization: Bearer `.

Utilice esto después de crear un token de API en la consola.

export KOZEAI_API_KEY="sk-your-token"
export KOZEAI_BASE_URL="https://api.kozeai.com"

Interfaz Resumen
Método Ruta Propósito
POST /v1/videos/generations Crear tarea de vídeo
GET /v1/videos/{task_id} Consultar estado de la tarea
GET /v1/videos/{task_id}/content Reproducir en línea o Descargar mp4 Crear tarea de vídeo
curl "$KOZEAI_BASE_URL/v1/videos/generations" \

-H "Authorization: Bearer $KOZEAI_API_KEY" \

-H "Content-Type: application/json" \

-d '{
"model": "video-ds-2.0",

"prompt": "Un vídeo cinematográfico de 9:16 de un gato corriendo bajo la cálida luz del sol",

"seconds": 15,

"aspect_ratio": "9:16"
}'

Parámetros de la solicitud

Parámetros Tipo Obligatorio Descripción
modelo cadena Nombre del modelo de vídeo, por ejemplo: video-ds-2.0
mensaje cadena Descripción del contenido del vídeo
segundos entero No Duración del video (segundos), según el rango de compatibilidad del modelo de origen
relación de aspecto cadena No Relación de aspecto, comúnmente utilizada: 9:16, 16:9, 1:1
imágenes matriz No URL de las imágenes de referencia o base64
videos array No URL del video de referencia
audios array No URL del audio de referencia

Los diferentes modelos de origen pueden admitir diferentes parámetros.

Los parámetros no listados se transmitirán según el protocolo ascendente.

Vídeo generado a partir de imágenes (con imágenes de referencia)

Pase el array images para generar un vídeo basado en las imágenes de referencia:

curl "$KOZEAI_BASE_URL/v1/videos/generations" \

-H "Authorization: Bearer $KOZEAI_API_KEY" \

-H "Content-Type: application/json" \

-d '{

"model": "video-ds-2.0",

"prompt": "Use el estilo de imagen de referencia y cree un video de producto fluido",

"seconds": 15,

"aspect_ratio": "9:16",

"imágenes": ["https://example.com/input.png"],

"vídeos": ["https://example.com/input.mp4"],

"audios": ["https://example.com/input.mp3"]

}' 
  • images admite URL de imagen o base64.
  • videos / audios son materiales de referencia opcionales.
  • Al llamar a través de la interfaz de autocompletado del chat (ver el final del artículo), simplemente adjunte la imagen al mensaje; el sistema la convertirá automáticamente al parámetro images.

Respuesta (envío exitoso)

{
"id": "task_12345",
"task_id": "task_12345",
"object": "video",
"model": estado: en_cola,

en_cola: en_cola,

progreso: 0,

creado_en: 1751000000

}

estado Valores: en_cola (en cola), en_progreso (en progreso), completado (completado), fallido (fallido).


2. Estado de la tarea de sondeo

Utilice el id devuelto por el envío para realizar el sondeo, con un intervalo recomendado de 3 a 5 segundos.

curl "$KOZEAI_BASE_URL/v1/videos/task_12345" \

-H "Authorization: Bearer $KOZEAI_API_KEY"

Respuesta (generando)

{
"id": "task_12345",

"object": "video",

"model": "video-ds-2.0",

"status": "in_progress",

"progreso": 45,

"creado_en": 1751000000
}

Respuesta (Completada)

{
"id": "tarea_12345",

"objeto": "video",

"model": "video-ds-2.0",

"status": "completed",

"progress": 100,

"created_at": 1751000000,

Tras la finalización, `metadata.content_url` proporciona la dirección del vídeo directamente accesible; también se puede descargar mediante la interfaz de contenido que aparece a continuación.

Respuesta (fallida)

{
"id": "task_12345",
"object": "video",
"status": "failed",
"error": { "mensaje": "Motivo del fallo" }
}

3. Descargar contenido de vídeo

curl -L "$KOZEAI_BASE_URL/v1/videos/task_12345/content" \

-H "Authorization: Bearer $KOZEAI_API_KEY" \

-o result.mp4

  • Devuelve un error 409 Conflict si la tarea no se ha completado (Aún en cola/generando).
  • Admite descarga segmentada y reproducción mediante arrastrar y soltar con la solicitud encabezado.
  • Devuelve .

Ejemplo completo

JavaScript (fetch + sondeo)

const BASE = process.env.KOZEAI_BASE_URL;

const KEY = process.env.KOZEAI_API_KEY;
const headers = { Authorization: `Bearer ${KEY}` };

// 1. Enviar tarea
const submit = wait fetch(`${BASE}/v1/videos/generations`, {
método: POST,
encabezados: { ...encabezados, Content-Type: application/json },
body: JSON.stringify({
model: 'video-ds-2.0',
prompt: 'Un vídeo comercial fluido de un frasco de perfume sobre cristal',
seconds: 15,
aspect_ratio: '9:16',

}),
});
const tarea = esperar enviar.json();

const taskId = tarea.id;

// 2. Sondeo hasta que se complete.
Asíncrono. Función. Sondeo() {
Mientras (verdadero) {
Constante. Res = esperar. Fetch(`${base}/v1/videos/${taskId}`, { encabezados });

const datos = esperar res.json();

si (datos.estado === 'completado') devolver datos;
if (data.status === 'failed') throw new Error(data.error?.message || 'failed');
await new Promise((r) => setTimeout(r, 5000));

} }
const done = await poll();

// 3. Obtener la dirección del video
console.log("Dirección del video:", done.metadata?.content_url

||`${BASE}/v1/videos/${taskId}/content`); 

Python (solicitudes + sondeo)

importar os, tiempo, solicitudes

BASE = os.environ["KOZEAI_BASE_URL"]
KEY = os.environ["KOZEAI_API_KEY"]
headers = {"Autenticación": f class="hljs-string">"Bearer {KEY}"}

# 1. Enviar tarea
resp = requests.post(

f"{BASE}/v1/videos/generations",

headers=headers,

json={

"model": "video-ds-2.0",

"prompt": "Un vídeo cinematográfico de 9:16 de un gato corriendo bajo la cálida luz del sol",

"segundos": 15,

"relación_de_aspecto": "9:16",

},
)
task_id = resp.json()["id"]

# 2. Sondeo
mientras sea verdadero:

datos = requests.get(f"{BASE}/v1/videos/{task_id}", headers=headers).json()

if data["status"] == "completed":

break
if data["status"] == "failed":

raise RuntimeError(data.get("status") class="hljs-string">"error", {}).get("message", "failed"))
time.sleep(5)
# 3. Descargar
mp4 = requests.get(f"{BASE}/v1/videos/{task_id}/content", headers=headers)
with open("result.mp4", "wb") como f: f.write(mp4.content)


Llamado en la interfaz de autocompletado de chat (uso compatible)

El modelo de vídeo también se puede llamar a través de /v1/chat/completions, lo que facilita la reutilización de clientes de chat.

Al realizar una solicitud, simplemente pase el nombre del modelo de vídeo en `model`, y el sistema lo convertirá automáticamente en una tarea de vídeo:
curl $KOZEAI_BASE_URL/v1/chat/completions

\ -H Authorization: Bearer $KOZEAI_API_KEY \ -H Content-Type: application/json -d { Modelo: } `

devuelve "video-ds-2.0"

, "mensajes: [{"rol: "usuario, "contenido: "un gato corriendo al sol, cinematográfico, 9:16}] }

Devuelve la finalización del chat

El formato es `mensaje.contenido`, que contiene el estado de la tarea y un enlace `/v1/videos/{task_id}`. Este enlace reproducirá el video una vez que finalice. La página de la sala de chat utiliza este formato. método.

Ambos puntos de entrada (/v1/videos/generations y /v1/chat/completions) comparten el mismo sistema de tareas y no entran en conflicto entre sí. Para una integración directa, se recomienda usar la interfaz estándar `/v1/videos/*`.


Código de error

Código de estado Significado
401 Token faltante, caducado o inválido
403 Saldo insuficiente o el grupo actual no tiene permiso para este modelo
404 El ID de la tarea no existe o no pertenece al usuario actual; o el modelo no está configurado.
409 El contenido de vídeo no está listo (la tarea aún está en cola/generando)
429 Se ha superado el límite de velocidad
502 El proveedor ascendente falló o devolvió un resultado inválido

Documentación de la llamada a la API de generación de vídeo | Koze AI