Seedance 2.5 is live — 30-second cinematic video with native audio & real-person references
Sora-2-API-Abschaltung: Migration und echte Kosten
2026/08/25

Sora-2-API-Abschaltung: Migration und echte Kosten

Sora 2 API endet 24. September 2026 ohne Ersatz. Exportiere deine Videos, mache deine API-Anfragen neu, und kalkuliere die echten Kosten je Tier.

Die Sora-2-API wird am 24. September 2026 abgeschaltet, und OpenAIs eigene Abschreibungstabelle führt keinen Ersatz auf. Jede Zeile — die Videos API selbst, sora-2, sora-2-pro und alle drei versionierten Snapshots — hat eine leere Spalte „Recommended replacement"[1]. Das ist ungewöhnlich. Als OpenAI gpt-image-1 einstellte, wies die Tabelle Entwickler auf gpt-image-2 hin[1]. Videogenerierung kriegt keine solche Umleitung.

Das ist also kein Modellwechsel. Es ist ein Endpunkt-Löschen, und es zerstört zwei Sachen gleichzeitig: den Code, der POST /videos aufruft, und die gespeicherten Videos, die man nur noch durch GET /videos/{video_id}/content erreichen kann. Dieser Leitfaden deckt ab, was genau wegfällt, wie du deine Videobibliothek vorher exportierst, die genauen Feldunterschiede beim Umschreiben der Aufrufe, und was der Ersatz in jedem Tier kostet, den du heute nutzt.

TL;DR

  • Abschaltungstermin ist der 24. September 2026, angekündigt am 24. März 2026, betroffen sind die Videos API, sora-2, sora-2-pro, sora-2-2025-10-06, sora-2-2025-12-08 und sora-2-pro-2025-10-06[1].
  • Es gibt keinen offiziellen Ersatz. Die Spalte „Recommended replacement" ist für alle sechs Zeilen leer, anders als bei jeder anderen Abschreibung in derselben Tabelle[1].
  • Deine fertigen Videos leben hinter der API, die wegfällt. GET /videos zählt sie auf und GET /videos/{video_id}/content lädt sie herunter[2]. Exportiere sie vor dem Stichtag.
  • Wenn du sora-2 à $0,10/s nutzst, sind die Einsparungen bescheiden aber echt. Vergleichbare 720p-mit-Audio-Raten laufen auf $0,076–$0,11/s[3][4][9].
  • Wenn du sora-2-pro à 1080p nutzt, zahlst du $0,70/s und derselbe Clip kostet auf veo3.1-fast-official $0,111/s[3][4].
  • Beobachte die maximale Clipdauer. Sora 2 schafft 16 und 20 Sekunden[2]; Veo 3.1 maximal 8 Sekunden pro Generierung[4].

Was die Sora-2-API-Abschaltung wirklich entfernt

OpenAI kündigte die Abschreibung am 24. März 2026 an und benachrichtigte Entwickler, die die Videos API und die Sora-2-Aliase und Snapshots nutzen, von „ihrer Abschreibung und Entfernung aus der API am 24. September 2026"[1]. Der Videogenerierungs-Leitfaden trägt dieselbe Notiz oben auf der Seite[2].

Sechs Bezeichner werden dunkel:

AbschaltungsdatumModell / SystemEmpfohlener Ersatz
2026-09-24Videos API(keine)
2026-09-24sora-2(keine)
2026-09-24sora-2-pro(keine)
2026-09-24sora-2-2025-10-06(keine)
2026-09-24sora-2-2025-12-08(keine)
2026-09-24sora-2-pro-2025-10-06(keine)

Quelle: OpenAI-Abschreibungsseite[1].

Die erste Zeile wird oft unterschätzt. Ein versionierter Snapshot bietet keine zusätzliche Zeit, denn der Transport wird mit den Modellen gelöscht. Alles, was POST /videos, GET /videos/{video_id}, GET /videos/{video_id}/content, GET /videos oder DELETE /videos/{video_id} aufruft, braucht eine Umschreibung, nicht nur Umleitung[2].

Exportiere deine Videobibliothek, bevor die Endpunkte offline gehen

Deine fertigen Renderings liegen nicht auf deiner Festplatte. Sie sitzen im Speicher von OpenAI und der dokumentierte Weg, eins zu holen, ist GET /videos/{video_id}/content[2]. Wenn dieser Route gelöscht wird, ist der dokumentierte Abrufpfad für diese Dateien weg. Mache den Export zuerst, bevor irgendwelche Code-Umschreibungen, denn das ist der einzige Teil dieser Migration mit einem festen Stichtag.

GET /videos zählt deine Videobibliothek mit Pagination und Sortierung auf[2]:

curl "https://api.openai.com/v1/videos?limit=20&after=video_123&order=asc" \
  -H "Authorization: Bearer $OPENAI_API_KEY" | jq .

Gehe durch die Seiten, behalte jede id, dann hole jede Datei:

import os, requests

KEY = os.environ["OPENAI_API_KEY"]
H = {"Authorization": f"Bearer {KEY}"}

def all_video_ids():
    after, ids = None, []
    while True:
        params = {"limit": 100, "order": "asc"}
        if after:
            params["after"] = after
        page = requests.get("https://api.openai.com/v1/videos",
                            headers=H, params=params, timeout=60).json()
        batch = page.get("data", [])
        if not batch:
            return ids
        ids += [v["id"] for v in batch]
        after = batch[-1]["id"]

for vid in all_video_ids():
    dest = f"export/{vid}.mp4"
    if os.path.exists(dest):
        continue
    r = requests.get(f"https://api.openai.com/v1/videos/{vid}/content",
                     headers=H, timeout=600)
    r.raise_for_status()
    os.makedirs("export", exist_ok=True)
    with open(dest, "wb") as f:
        f.write(r.content)

Speichere auch das JSON aus dem Listing-Aufruf, nicht nur die MP4s. Es enthält das model, seconds, size und created_at für jeden Job[2], also die Metadaten, die du brauchst, wenn du Prompts gegen ein anderes Modell umschreibst und wissen willst, worauf das Original gerendert wurde.

Den Aufruf umschreiben: wo die zwei Formen sich unterscheiden

Beide APIs sind async-submit-then-poll, die Kontrollstruktur bleibt gleich. Die Feldnamen nicht.

SchrittOpenAI Videos API[2]reAPI[5]
EinreichenPOST /v1/videosPOST /api/v1/videos/generations
Modellfeldmodel: "sora-2"model: "<model id>"
Prompt-Feldpromptprompt
Auflösungsize: "1280x720" (Pixelpaar)resolution: "720p" + size: "16:9"
Dauerseconds: "8" (String)duration: 5 (Zahl)
Job-Handleid in der Responsetask_id in der Response
AbfragenGET /v1/videos/{video_id}GET /api/v1/tasks/{id}
Datei holenGET /v1/videos/{video_id}/contentbereits in output.video_urls

Drei davon beißen in der Praxis. size bedeutet unterschiedliche Dinge auf beiden Seiten: ein Pixelpaar auf der einen, ein Seitenverhältnis auf der anderen, mit der Auflösung in ihr eigenes Feld aufgeteilt. seconds ist ein String und duration ist eine Zahl, also ein naiver Copy-Paste des Wertes produziert einen Type-Error statt einer klaren Validierungsmitteilung. Und der Download-Schritt fällt völlig weg, da die Poll-Response bereits output.video_urls[5] enthält statt dich einen dritten Endpunkt für die Bytes aufrufen zu lassen.

Ein Aufruf, der so aussah:

video = openai.videos.create(model="sora-2", prompt=PROMPT,
                             size="1280x720", seconds="8")

wird zu:

r = requests.post("https://reapi.ai/api/v1/videos/generations",
                  headers={"Authorization": f"Bearer {REAPI_KEY}"},
                  json={"model": MODEL, "prompt": PROMPT,
                        "resolution": "720p", "size": "16:9", "duration": 8})
task_id = r.json()["task_id"]

Was die Migration kostet, aufgeschlüsselt nach deinem Tier heute

Die meisten Artikel zu dieser Abschaltung zitieren eine einzelne Schlagzahl. Das funktioniert nur, wenn man ignoriert, welcher Sora-Tier der Leser nutzt. Die ehrliche Antwort spaltet sich in zwei.

OpenAIs veröffentlichte Sora-Raten pro Sekunde[3]:

ModellGrößeStandardBatch
sora-2720p$0,10$0,05
sora-2-pro720p$0,30$0,15
sora-2-pro1024p$0,50$0,25
sora-2-pro1080p$0,70$0,35

Gegen 720p-mit-Audio-Raten auf reAPI[4][6]:

Dein derzeitiger TierSora-RateVergleichbare RateÄnderung
sora-2 720p$0,10/sveo3.1-fast-official 720P + Audio, $0,092/s−8%
sora-2 720p$0,10/sWan 3.0 720P, $0,076/s−24%
sora-2 720p$0,10/sKling 3.0 std 720p + Audio, $0,11/s+10%
sora-2-pro 720p$0,30/sveo3.1-fast-official 720P + Audio, $0,092/s−69%
sora-2-pro 1080p$0,70/sveo3.1-fast-official 1080P + Audio, $0,111/s−84%
sora-2-pro 1080p$0,70/sKling 3.0 pro 1080p + Audio, $0,149/s−79%
sora-2-pro 1080p$0,70/sWan 3.0 1080P, $0,151/s−78%
sora-2-pro 1080p$0,70/sSeedance 2.5 1080P, $0,462/s−34%

Wenn du plain sora-2 à 720p nutzt, war der $0,10/s-Basistarif preislich wettbewerbsfähig und die meisten Wechsel landen nur wenige Cent davon entfernt. Wan 3.0 à 720P ist die Ausnahme bei $0,076/s mit standardmäßiger Audio-Spur[9], ungefähr 24% darunter. Das ist echte Einsparung, nicht die Größenordnung-Schnitte, die einige Artikel versprechen. Wenn du sora-2 über die Batch API à $0,05/s[3] laufen ließt, warst du auf der billigsten Audio-fähigen Rate in diesem Vergleich und solltest mit höheren Pro-Sekunden-Kosten rechnen.

Das sora-2-pro-Bild ist das Gegenteil. À 1080p zahlst du $0,70/s, und dieselbe Sekunde 1080p-Filmmaterial mit Audio kostet $0,111/s auf veo3.1-fast-official[4]. Bei einem 20-Sekunden-Clip sind das $14,00 gegen $2,22.

Ein Billing-Detail zum Sorgfältig-Mitnehmen: Veo 3.1 rechnet nach Generation ab, nicht nach Sekunde[4], während die -official-Varianten oben nach Sekunde abrechnen. Das sind unterschiedliche Einheiten. Wenn dein Kostenmodell überall pro-Sekunde annimmt, werden die per-generation-Tiers sich dagegen nicht aufrechnen.

Das 20-Sekunden-Problem

Sora 2 unterstützt 16- und 20-Sekunden-Generierungen auf beiden Varianten[2]. Nicht jeder Ersatz erreicht das in einem Durchgang, und das ist die Einschränkung, die am ehesten eine echte Umschreibung erzwingt statt nur einer Config-Änderung.

ModellLängste einzelne Generierung
sora-2 / sora-2-pro20 s[2]
Seedance 2.530 s[6]
Wan 3.030 s[9]
Kling 3.015 s[7]
MiniMax H315 s[8]
Veo 3.18 s[4]

Ein 20-Sekunden-Sora-Shot wird zu drei Veo-3.1-Renderings plus einer Zusammenfügung. Wenn deine Pipeline einzelne lange Takes auswirft, können zwei Modelle hier Soras Decke überwinden: Seedance 2.5 bei 4 bis 30 Sekunden mit synchronisiertem Audio[6] und Wan 3.0 bei 2 bis 30 Sekunden mit standardmäßiger Audio-Spur[9]. Überprüfe das, bevor du die Qualität benchmarkst. Ein Modell, das deine Shot-Länge nicht produzieren kann, ist egal wie es punktet kein Kandidat.

FAQ

Wann genau hört die Sora-2-API auf zu funktionieren?

  1. September 2026. OpenAI benachrichtigte betroffene Entwickler am 24. März 2026[1].

Empfiehlt OpenAI ein Ersatzmodell?

Nein. Die Spalte „Recommended replacement" ist leer für die Videos API und alle fünf Sora-2-Bezeichner[1].

Kann ich einen gepinnten Snapshot wie sora-2-2025-10-06 weiterverwenden?

Nein. Die versionierten Snapshots sind am selben 24.-September-Datum wie die Aliase aufgelistet, und die Videos API, die sie bedient, wird auch eingestellt[1].

Was passiert mit Videos, die ich bereits generiert habe?

Sie werden über GET /videos/{video_id}/content abgerufen, Teil der eingestellten Videos API[2]. Sobald dieser Endpunkt entfernt wird, gibt es keinen dokumentierten API-Weg zu diesen Dateien, also exportiere vor dem Datum.

Wird die Migration meine Rechnung senken?

Das hängt von deinem Tier ab. Von sora-2-pro à 1080p ($0,70/s) ja, erheblich. Von plain sora-2 à $0,10/s, ungefähr break-even. Von sora-2 auf Batch à $0,05/s, rechne mit einer Steigerung[3].

Generieren die Ersätze Audio wie Sora 2?

Einige und es ist oft ein separater Preistier. Kling 3.0 und Veo 3.1 führen beide separate mit-Audio und ohne-Audio-Raten auf[4][7], während Seedance 2.5 standardmäßig mit Audio Sprache, Soundeffekte und Musik generiert[6] und Wan 3.0 standardmäßig mit einer Audio-Spur kommt[9].

Wie viel meines Codes muss sich ändern?

Die async-submit-then-poll-Struktur bleibt. Was sich ändert ist Feldnamen, die Aufteilung von size in resolution plus Seitenverhältnis, seconds als String versus duration als Zahl, und das Streichen des separaten Content-Download-Aufrufs[2][5].

Sind Soras 2-Inhalts-Einschränkungen überall dieselben?

Nicht unbedingt. Sora 2 lehnt echte Personen ab, einschließlich Personen des öffentlichen Lebens, lizenzierte Charaktere und Musik sowie Input-Bilder mit Gesichtern[2]. Andere Modelle ziehen diese Linien anderswo, also Prompts, die auf Sora fehlschlugen, können woanders passen und umgekehrt.

Die Arbeit vor dem Datum sequenzieren

Exportiere zuerst. Das ist der einzige Schritt mit einem Deadline, der sich nicht verschieben lässt, und braucht nichts weiter als einen API-Key und Festplattenspeicher. Dann wähle ein Modell gegen deine festen Einschränkungen in dieser Reihenfolge: Clip-Länge, dann Audio, dann Auflösung, dann Rate. Länge eliminiert Kandidaten am schnellsten und Rate ist das Einfachste, später zu ändern.

Das Umschreiben der Aufrufe ist eine kleinere Arbeit als es aussieht, denn die submit-poll-Form bleibt und der file-download-Schritt verschwindet. Der Teil, bei dem es sich lohnt zu verlangsamen, ist das Kostenmodell. Wenn du von sora-2-pro kommst, sind die Einsparungen echt und groß; wenn du von sora-2 à $0,10/s oder Batch à $0,05/s kommst, plan für flache-bis-höhere pro-Sekunden-Kosten und wähle nach Fähigkeit. In jedem Fall gibt dir die Sora-2-API-Abschaltung ein festes Rückwärtsdatum, und der Export ist der Teil, der danach nicht mehr möglich ist.

References

  1. OpenAI. Deprecations: Sora 2 video generation models and Videos API. Retrieved August 2026 from developers.openai.com/api/docs/deprecations
  2. OpenAI. Video generation with Sora: Videos API guide. Retrieved August 2026 from developers.openai.com/api/docs/guides/video-generation
  3. OpenAI. Pricing: video generation models, standard and batch per-second rates. Retrieved August 2026 from developers.openai.com/api/docs/pricing
  4. reAPI. Veo 3.1: model page and per-tier pricing. Retrieved August 2026 from reapi.ai/models/veo3-1
  5. reAPI. Seedance 2.5 API: request shape, task polling and output fields. Retrieved August 2026 from reapi.ai/docs/seedance-2-5
  6. reAPI. Seedance 2.5: model page, duration range and per-resolution pricing. Retrieved August 2026 from reapi.ai/models/seedance-2-5
  7. reAPI. Kling 3.0: model page, audio tiers and per-second pricing. Retrieved August 2026 from reapi.ai/models/kling-3-0
  8. reAPI. MiniMax H3: model page, duration range and per-second pricing. Retrieved August 2026 from reapi.ai/models/minimax-h3
  9. reAPI. Wan 3.0: model page, duration range and per-resolution pricing. Retrieved August 2026 from reapi.ai/models/wan-3-0