cd ../back to blog
$Guide//June 4, 2026//7 min read

Veo 3 und Sora über eine OpenAI-kompatible API: dein erster Video-Call

Generiere Videos mit den echten Modellen Veo 3 und Sora über Brievios OpenAI-kompatible /v1/video/generations-API — keine Warteliste, Abrechnung pro Sekunde, permanente Ergebnis-URLs.

Veo 3 und Sora heben Text-to-Video auf dieselbe Qualitätsstufe, auf der Text-to-Image vor anderthalb Jahren stand. Der Haken: Beide Anbieter sperren den Zugang hinter Wartelisten, regionalen Einschränkungen und eigenwilligen Abrechnungs-Flows weg, die nicht zum Rest deines KI-Stacks passen.

Diese Anleitung führt dich durch deinen ersten Veo 3- und Sora-API-Call über Brievio — die echten Modelle, keine Warteliste, OpenAI-kompatible Authentifizierung, abgerechnet pro Sekunde generiertem Video, Ergebnisse ausgeliefert von einer permanenten URL. Gesamtzeit: rund fünf Minuten.

Setup

  1. Registriere dich unter brievio.com/app/signup. Du bekommst $2 Startguthaben — genug für ein paar 5-Sekunden-Testclips.
  2. Lege einen Key unter /app/keys an. Er beginnt mit sk-brievio-.
  3. Exportiere ihn: export BRIEVIO_API_KEY=sk-brievio-....

Text-to-Video mit Veo 3

Veo 3 ist derzeit das beste Text-to-Video-Modell am Markt für cineastische Aufnahmen — es versteht Kamerasprache (Dolly, Push-in, Rack Focus), erzeugt stabile Lichtstimmung über Schnitte hinweg und verarbeitet 24-fps-Bewegung korrekt. Generierungen dauern 30 Sekunden bis ein paar Minuten; die HTTP-Antwort ist synchron — setze ein langes Client-Timeout.

text_to_video.py
import requests, os, time

KEY = os.environ["BRIEVIO_API_KEY"]

resp = requests.post(
    "https://api.brievio.com/v1/video/generations",
    headers={"Authorization": f"Bearer {KEY}"},
    json={
        "model": "veo-3",
        "prompt": "A drone shot pulling back from a quiet mountain lake at dawn, mist rising off the water. Cinematic, 24fps, soft golden light.",
        "duration": 8,
        "aspect_ratio": "16:9",
        "resolution": "1080p",
    },
    timeout=600,   # Generierungen dauern 30 Sek. bis mehrere Minuten
)
resp.raise_for_status()
data = resp.json()
print(data["data"][0]["url"])

Die Antwort ist im OpenAI-Stil: { data: [{ url: '...' }] }. Die URL ist permanent, ausgeliefert von files.brievio.com — lade sie einmal in deinen eigenen Speicher herunter, wenn du langfristiges Hosting brauchst. Der Clip ist der echte Veo-3-Output, keine neu kodierte oder mit Wasserzeichen versehene Kopie.

Image-to-Video

Das Verankern mit einem Bild ist meist die Stelle, an der du produktionsreife Ergebnisse bekommst. Veo 3 unterstützt zwei Bildmodi:

  • image_mode: "frame" — ein einzelnes Bild ist das erste Frame; zwei Bilder sind erstes + letztes Frame. Standard für image_url.
  • image_mode: "reference" — bis zu 3 Stil-Referenzen für Charakter- bzw. Garderoben-Konsistenz, ohne Frames zu erzwingen.
image_to_video.py
# image-to-video: Übergib eine image_url, um das erste Frame zu verankern.
resp = requests.post(
    "https://api.brievio.com/v1/video/generations",
    headers={"Authorization": f"Bearer {KEY}"},
    json={
        "model": "veo-3",
        "prompt": "She smiles, then walks out of frame to the left",
        "image_url": "https://files.brievio.com/<your-upload>.jpg",
        "image_mode": "frame",      # ein Bild => erstes Frame
        "duration": 6,
        "aspect_ratio": "9:16",     # vertikal, mobil-nativ
    },
    timeout=600,
)
print(resp.json()["data"][0]["url"])

Wenn du noch keine öffentliche URL für dein Anker-Bild hast, schick die Bytes an /v1/files und Brievio hostet die Datei für dich unter files.brievio.com:

upload_anchor.py
# Hast du keine öffentliche URL, lade die Bytes hoch; Brievio hostet die Datei.
with open("anchor.jpg", "rb") as f:
    up = requests.post(
        "https://api.brievio.com/v1/files",
        headers={"Authorization": f"Bearer {KEY}"},
        files={"file": f},
    )
image_url = up.json()["url"]   # permanente files.brievio.com-URL

Sora und weitere Modelle

Derselbe Endpoint-Shape funktioniert für jedes Video-Modell im Katalog — übergib einfach den passenden Modell-Slug:

  • veo-3 — cineastisch, 1080p, unterstützt Image-to-Video.
  • sora-2 — OpenAI Sora.
  • seedance-1-5-pro, seedance-2-0-pro — ByteDance, sehr stark bei Charakter-Bewegung.

Unter /models findest du die aktuelle Liste und den Sekundenpreis je Modell.

Aus Node / TypeScript

sora.mjs
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.BRIEVIO_API_KEY,
  baseURL: "https://api.brievio.com/v1",
});

// /v1/video/generations entspricht nicht dem Shape des OpenAI-SDK, aber derselbe
// Auth-Header funktioniert — ruf es mit fetch auf:
const resp = await fetch(
  "https://api.brievio.com/v1/video/generations",
  {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: `Bearer ${process.env.BRIEVIO_API_KEY}`,
    },
    body: JSON.stringify({
      model: "sora-2",
      prompt: "A red origami crane unfolding into a paper plane and flying away through a window",
      duration: 5,
      resolution: "1080p",
    }),
  },
);
const { data } = await resp.json();
console.log(data[0].url);

Preismodell

Video-Modelle rechnen pro Sekunde Output ab, nicht pro Token. Brievio veröffentlicht den Sekundentarif für jedes Video-Modell auf /pricing — knapp unter der offiziellen Liste. Ein gängiger 8-Sekunden-Veo-3-Clip in 1080p kostet ein paar Cent. Fehlgeschlagene Generierungen (4xx / 5xx) werden nie berechnet.

Production-Checkliste

  • Setze ein 10-Minuten-HTTP-Timeout. Das Gateway pollt upstream bis zu 540 Sek. und gibt 504 zurück, wenn das Modell danach noch arbeitet. Bei sehr langen Jobs: erneut versuchen — Generierungen sind pro Prompt idempotent.
  • Persistiere die Ergebnis-URL. Auch wenn files.brievio.com-URLs permanent sind, sollte dein Produkt eine eigene Kopie im Speicher haben, den du kontrollierst.
  • Behandle 429er mit Backoff. Video-Modelle sind GPU-gebunden; kurze Engpässe sind normal. Der retry-after-Header wird berücksichtigt, sofern vorhanden.
  • Cache nach Prompt-Hash, wenn sinnvoll. Derselbe Prompt + Seed + Modell liefert nahezu identisches Video — zweimal dafür zu zahlen ist Verschwendung.

Fragen: contact@brievio.com. Das Team hinter dem Gateway liest jede E-Mail und antwortet innerhalb von 24 Stunden.