KozeKoze
Zurück zum Blog
Tutorial2026年6月28日·管理员

Dokumentation zum API-Aufruf zur Videogenerierung

Kozeai bietet eine mit OpenAI Sora kompatible Videogenerierungsschnittstelle, die einen asynchronen Aufgabenmodus verwendet: Zuerst wird die Aufgabe übermittelt, um die `task_id` zu erhalten, dann wird der Aufgabenstatus abgefragt und nach Abschluss der Videoinhalt heruntergeladen.

Dokumentation zum API-Aufruf für die Videogenerierung

kozeai bietet eine mit OpenAI Sora kompatible Schnittstelle zur Videogenerierung im **asynchronen Aufgabenmodus**: Zuerst wird die Aufgabe übermittelt, um die `task_id` zu erhalten. Anschließend wird der Aufgabenstatus abgefragt und der Videoinhalt nach Abschluss heruntergeladen.

Authentifizierung

Alle Anfragen werden mit `Authorization: Bearer ` authentifiziert. Verwenden Sie dies, nachdem Sie in der Konsole ein API-Token erstellt haben.

export KOZEAI_API_KEY="sk-your-token"

export KOZEAI_BASE_URL="https://api.kozeai.com"

Schnittstelle Übersicht

mp4
Methode Pfad Zweck
POST /v1/videos/generations Videoaufgabe erstellen
GET /v1/videos/{task_id} Aufgabenstatus abfragen
GET /v1/videos/{task_id}/content Online abspielen oder Download

Die Aufgaben-ID im Format task_12345, die von der Übermittlungsschnittstelle zurückgegeben wird, gehört nur dem aktuellen Benutzer.


1. Videoaufgabe erstellen

curl "$KOZEAI_BASE_URL/v1/videos/generations" \
-H "Authorization: Bearer $KOZEAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "video-ds-2.0",

Ein filmisches 9:16-Video einer Katze, die durch warmes Sonnenlicht läuft,

Sekunden: 15,

Seitenverhältnis: 9:16
... 

Anfrageparameter

Parameter Typ Erforderlich Beschreibung
Modell Zeichenkette Ja Name des Videomodells, z. B. video-ds-2.0
Eingabeaufforderung Zeichenkette Ja Beschreibung des Videoinhalts
Sekunden Ganzzahl Nein Videodauer (Sekunden), basierend auf dem Unterstützungsbereich des Upstream-Modells
Seitenverhältnis Zeichenkette Nein Seitenverhältnis, häufig verwendet: 9:16, 16:9, 1:1
Bilder Array Nein URL der Referenzbilder oder base64
Videos Array Nein Referenz-Video-URL
Audios Array Nein Referenz-Audio-URL

Unterschiedliche Upstream-Modelle unterstützen möglicherweise unterschiedliche Parameter. Nicht aufgeführte Parameter werden gemäß dem Upstream-Protokoll weitergeleitet. ... \ -d '{ "model": "video-ds-2.0", "prompt": "Verwenden Sie den Referenzbildstil und erstellen Sie ein flüssiges Produktvideo", "seconds": 15, "aspect_ratio": "9:16", Bilder: [https://example.com/input.png], Videos: [https://example.com/input.mp4], Audios: [https://example.com/input.mp3] }

  • Bilder unterstützt Bild-URLs oder Base64.
  • Videos / Audios sind optionale Referenzmaterialien.
  • Wenn Sie die Chat-Autocomplete-Oberfläche nutzen (siehe Ende des Artikels), hängen Sie das Bild einfach an die Nachricht an; das System wandelt es automatisch in den Bilder-Parameter um.

Antwort (Übermittlung erfolgreich)

{
"id": "task_12345",

"task_id": "task_12345",

"object": "video",

"model": video-ds-2.0,

status: queued,

progress: 0,

created_at: 

}

status Werte: queued (in der Warteschlange), in_progress (in Bearbeitung), completed (abgeschlossen) fehlgeschlagen (fehlgeschlagen).


2. Status der Abfrageaufgabe

Verwenden Sie die von der Übermittlung zurückgegebene id für die Abfrage. Das empfohlene Intervall beträgt 3–5 Sekunden.

curl "$KOZEAI_BASE_URL/v1/videos/task_12345" \
-H "Authorization: Bearer $KOZEAI_API_KEY"

Antwort (wird generiert)

{
"id": "task_12345",

"object": "video",

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

"status": "in_progress",

"progress": 45,
"created_at": 1751000000
}

Antwort (Abgeschlossen)

{
"id": "task_12345",

"object": Video,

Modell: Video-DS-2.0,

Status: Abgeschlossen,

Fortschritt: 100,

Erstellt_am: 1751000000,

Nach Abschluss der Verarbeitung liefert `metadata.content_url` die direkt zugängliche Videoadresse. Das Video kann auch über die unten stehende Inhaltsoberfläche heruntergeladen werden.

Antwort (fehlgeschlagen)

{
"id": "task_12345",

"object": "video",

"status": "failed",

"error": { "message": "Fehlergrund" }


3. Videoinhalte herunterladen

curl -L "$KOZEAI_BASE_URL/v1/videos/task_12345/content" \
-H "Authorization: Bearer $KOZEAI_API_KEY" \
-o result.mp4

  • Gibt 409 Conflict zurück, wenn die Aufgabe nicht abgeschlossen ist (noch in der Warteschlange/wird generiert).
  • Unterstützt segmentierten Download/Drag-and-Drop-Wiedergabe mithilfe des -Anforderungsheaders.
  • Gibt .

Vollständiges Beispiel

JavaScript (Fetch + Polling)

const BASE = process.env.KOZEAI_BASE_URL;

const KEY = process.env.KOZEAI_API_KEY;

const headers = {
Authorization:
`Bearer
${KEY}` };

// 1. Aufgabe einreichen
const submit = await fetch(`${BASE}/v1/videos/generations`, {
method: 'POST',

headers: { ...headers, 'Content-Type': 'application/json' },

body: JSON.stringify({
model: 'video-ds-2.0',

prompt: 'Ein flüssiges Werbevideo einer Parfümflasche auf Glas',

seconds: 15,

aspect_ratio: '9:16',

}),

});

const task = await submit.json();

const taskId = task.id;

// 2. Abfrage bis zum Abschluss

async function poll() {

while (true) {

const res = await fetch(`${BASE}/v1/videos/${taskId}`, { headers });

const data = await res.json();

if (data.status === completed) return data;

if (data.status === failed) throw new Error(data.error?.message || failed);

await
new
Promise((r) = setTimeout(r, 5000));


const done = await poll(); // 3. Die Videoadresse abrufen

console.log(Videoadresse: Videoadresse: done.metadata?.content_url

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

Python (requests + polling)

import os, time, requests

BASE = os.environ['KOZEAI_BASE_URL']
KEY = os.environ['KOZEAI_API_KEY']
headers = {'Authorization': f"Bearer {KEY}"}

# 1. Aufgabe einreichen
resp = requests.post(
f"{BASE}/v1/videos/generations",

headers=headers,

json={

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

"prompt": "Ein filmisches 9:16-Video einer Katze, die durch warmes Sonnenlicht läuft",

"Sekunden": 15,

"Seitenverhältnis": "9:16",

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

# 2. Polling
while True:

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

if data[status] == completed:

break
if data[status] == failed:

raise RuntimeError(data.get( class="hljs-string">"error", {}).get("message", "failed"))

time.sleep(5)

# 3. Download

mp4 = requests.get(f"{BASE}/v1/videos/{task_id}/content", headers=headers)
with open("result.mp4", "wb") as f: f.write(mp4.content)


Aufgerufen in der Chat-Vervollständigungsschnittstelle (kompatible Verwendung)

Das Videomodell kann auch über /v1/chat/completions aufgerufen werden, was die Wiederverwendung von Chat-Clients erleichtert.

Bei einer Anfrage übergeben Sie einfach den Namen des Videomodells in `model`, und das System wandelt ihn automatisch in eine Videoaufgabe um:
curl $KOZEAI_BASE_URL/v1/chat/completions

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

gibt "video-ds-2.0" zurück

, Nachrichten: [{Rolle: Benutzer, Inhalt: Eine Katze, die im Sonnenlicht läuft, filmisch, 9:16}] }

Gibt den Chat-Abschluss zurück

Das Format ist `Nachricht.Inhalt`, welches den Aufgabenstatus und einen Link `/v1/videos/{task_id}` enthält. Über diesen Link wird das Video nach Abschluss abgespielt. Die Chat-Lobby-Seite verwendet dies. Methode.

Beide Einstiegspunkte (/v1/videos/generations und /v1/chat/completions) nutzen dasselbe Aufgabensystem und stehen nicht im Konflikt zueinander. Für die direkte Integration wird die Verwendung der Standardschnittstelle `/v1/videos/*` empfohlen.


Fehlercode

Statuscode Bedeutung
401 Token fehlt, ist abgelaufen oder ungültig
403 Unzureichendes Guthaben oder die aktuelle Gruppe hat keine Berechtigung für dieses Modell
404 Die Aufgaben-ID existiert nicht oder gehört nicht zum aktuellen Benutzer; oder das Modell ist nicht konfiguriert.
409 Videoinhalte sind noch nicht bereit (Aufgabe wird noch in die Warteschlange gestellt/generiert)
429 Ratenbegrenzung wird ausgelöst
502 Der Upstream-Anbieter ist ausgefallen oder hat ein ungültiges Ergebnis zurückgegeben

Dokumentation zum API-Aufruf zur Videogenerierung | Koze AI