Skip to Content
APIVideogenerierungVideo erstellen

Video erstellen

Senden Sie eine Videogenerierungsaufgabe ab. Die Anfrage gibt sofort 202 Accepted mit einer Aufgaben-id und einer Polling-URL zurück — die Generierung läuft asynchron. Fragen Sie die Aufgabe ab oder erhalten Sie einen Webhook, und lesen Sie anschließend das Ergebnis mit Videostatus abrufen.

POST https://api.ofox.ai/v1/videos

Anfrageparameter

ParameterTypPflichtBeschreibung
modelstringModell-Slug, z. B. google/veo-3.1 oder bytedance/seedance-2.0
promptstringTextbeschreibung des Videos
durationintegerVideolänge in Sekunden
resolutionstring480p / 720p / 1080p / 1K / 2K / 4K
aspect_ratiostring16:9 / 9:16 / 1:1 / 4:3 / 3:4 / 3:2 / 2:3 / 21:9 / 9:21
sizestringExakte Pixel WIDTHxHEIGHT (z. B. 1280x720), Alternative zu resolution + aspect_ratio
frame_imagesarrayFrame-Steuerung (Bild-zu-Video / erster-und-letzter Frame). Vorhanden ⇒ wird als Bild-zu-Video behandelt. Siehe unten
input_referencesarraySteuert Motiv / Stil (Referenz-zu-Video), keine präzisen Frame-Anker. Siehe unten
generate_audiobooleanStandardmäßig true bei Modellen, die Audioausgabe unterstützen
seedintegerDeterministischer Generierungs-Seed (nicht bei allen Anbietern garantiert)
callback_urlstringWebhook-URL für terminalen Zustand, muss HTTPS sein (siehe Webhooks)
providerobjectAnbieterspezifische Durchreichung, siehe Provider passthrough

frame_images[]-Element

Jedes Element fixiert einen Frame der Ausgabe. frame_type ist first_frame oder last_frame.

{ "type": "image_url", "image_url": { "url": "https://example.com/first.jpg" }, "frame_type": "first_frame" }

input_references[]-Element

Übergeben Sie Bild- / Audio- / Videoreferenzen per type — sie steuern Motiv, Stil und Konsistenz, aber keine präzisen Frame-Anker:

{ "type": "image_url", "image_url": { "url": "https://example.com/subject.jpg" } } { "type": "audio_url", "audio_url": { "url": "https://example.com/voice.mp3" } } { "type": "video_url", "video_url": { "url": "https://example.com/ref.mp4" } }
MediumtypeMaximale AnzahlWeitere Einschränkungen
Bildimage_url≤ 9
Audioaudio_url≤ 3≤ 15s pro Clip
Videovideo_url≤ 1

Eine Überschreitung eines Limits gibt 400 too_many_references zurück (siehe Fehler).

frame_images und input_references schließen sich gegenseitig aus — eine einzelne Anfrage nutzt entweder das eine oder das andere, niemals beide. Wenn beides gesendet wird, gibt die API 400 references_conflict zurück.

Generierungsmodus (implizit)

Es gibt kein Feld gen_mode. Der Modus wird daraus abgeleitet, welche Eingaben Sie senden:

ModusErkannt wenn
text2videoWeder frame_images noch input_references
img2videoframe_images mit einem first_frame
img2video_endframe_images mit first_frame + last_frame
imgref2videoinput_references, nur Bilder
mixref2videoinput_references mit Mischung aus Bild / Audio / Video

Antwort

202 Accepted — die Aufgabe wird mit status: "pending" und einer polling_url angenommen:

{ "id": "9bcf3c60-7db2-4e1a-a1b2-c3d4e5f60718", "status": "pending", "polling_url": "https://api.ofox.ai/v1/videos/9bcf3c60-7db2-4e1a-a1b2-c3d4e5f60718" }

Fragen Sie polling_url ab (oder warten Sie auf einen Webhook), bis die Aufgabe einen terminalen Zustand erreicht — siehe Videostatus abrufen.

Anfragebeispiele

Ein /v1/videos-Schema deckt jeden Generierungsmodus ab; der Modus wird implizit aus Ihren Eingaben gewählt. Jedes folgende Beispiel läuft unverändert.

Keine frame_images / input_references → Text-zu-Video.

Terminal
curl -X POST https://api.ofox.ai/v1/videos \ -H "Authorization: Bearer $OFOX_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "google/veo-3.1", "prompt": "A golden retriever running on the beach at sunset", "duration": 5, "resolution": "1080p", "aspect_ratio": "16:9", "generate_audio": true }'

Kombinierbare Optionen

Die folgenden Felder sind unabhängig vom Generierungsmodus — fügen Sie beliebige davon zu jedem obigen Request Body hinzu.

Erhalten Sie einen POST an Ihren Endpunkt, wenn die Aufgabe einen terminalen Zustand erreicht, statt per Polling abzufragen.

{ "model": "google/veo-3.1", "prompt": "...", "callback_url": "https://your-app.example/webhooks/ofox-video" }

callback_url muss HTTPS verwenden. Siehe Webhooks für Payload und Signatur.

Provider passthrough

Anbieterspezifische Parameter laufen über provider.options.<slug> — nur der passende Anbieter erhält sie. Parameter wie watermark werden nicht von jedem Modell unterstützt, daher liegen sie in Provider passthrough statt als Top-Level-Felder (dies folgt der OpenRouter-Konvention für Provider passthrough). Welche Passthrough-Optionen ein Modell akzeptiert, hängt von den Fähigkeiten des Modells ab.

{ "model": "alibaba/wan-2.7", "prompt": "...", "provider": { "options": { "dashscope": { "watermark": false, "audio_setting": "..." } } } }
Last updated on