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.
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
Sí
Nombre del modelo de vídeo, por ejemplo: video-ds-2.0
mensaje
cadena
Sí
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.
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.
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') thrownewError(data.error?.message || 'failed');
awaitnewPromise((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 tarearesp = 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. Descargarmp4 = 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:
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