
Sora 2 API: выключение, миграция и реальная стоимость
API Sora 2 закрывается 24 сентября 2026 года без официальной замены. Как экспортировать видеотеку, переписать запросы и рассчитать затраты для каждого тарифа.
Выключение Sora 2 API произойдёт 24 сентября 2026 года, и в таблице устаревания OpenAI не указано никакой замены. В каждой строке — в самом Videos API, в sora-2, sora-2-pro и всех трёх моментальных снимках — колонка «Рекомендуемая замена» пуста[1]. Это необычно. Когда OpenAI снимал gpt-image-1, он указывал разработчикам на gpt-image-2 в той же таблице[1]. Генерация видео не получит такой помощи.
Это не просто замена модели. Это удаление endpoint, и оно ломает две вещи сразу: код, который вызывает POST /videos, и сохранённые видео, до которых можно дотянуться только через GET /videos/{video_id}/content. В этом руководстве рассказано, что на самом деле исчезает, как вытащить вашу библиотеку до того как это произойдёт, в чём именно различаются параметры при переписывании вызовов, и сколько будет стоить замена для каждого тарифа, на котором вы сейчас находитесь.
TL;DR
- Дата выключения — 24 сентября 2026 года, объявлено 24 марта 2026 года, покрывает Videos API,
sora-2,sora-2-pro,sora-2-2025-10-06,sora-2-2025-12-08иsora-2-pro-2025-10-06[1]. - Никакой официальной замены нет. Колонка замены пуста для всех шести строк, в отличие от всех остальных устаревании в той же таблице[1].
- Ваши готовые видео находятся за API, который исчезает.
GET /videosих перечисляет, аGET /videos/{video_id}/contentих скачивает[2]. Экспортируйте до того как endpoints перестанут отвечать. - Если вы на
sora-2за $0.10/с, экономия скромная, но реальная. Сопоставимые ставки 720p-с-аудио работают в диапазоне $0.076–$0.11/с[3][4][9]. - Если вы на
sora-2-proпри 1080p, вы платили $0.70/с и тот же клип обойдётся в $0.111/с на veo3.1-fast-official[3][4]. - Наблюдайте потолок длины клипа. Sora 2 делает 16 и 20 секунд[2]; Veo 3.1 ограничена 8 секундами на генерацию[4].
Что именно удаляет выключение Sora 2 API
OpenAI объявил об устаревании 24 марта 2026 года, уведомив разработчиков, использующих Videos API и алиасы Sora 2 и снимки об «их устаревании и удалении из API 24 сентября 2026 года»[1]. Руководство по генерации видео содержит то же уведомление в верхней части страницы[2].
Шесть идентификаторов закрывают доступ:
| Дата выключения | Модель / система | Рекомендуемая замена |
|---|---|---|
| 2026-09-24 | Videos API | (нет) |
| 2026-09-24 | sora-2 | (нет) |
| 2026-09-24 | sora-2-pro | (нет) |
| 2026-09-24 | sora-2-2025-10-06 | (нет) |
| 2026-09-24 | sora-2-2025-12-08 | (нет) |
| 2026-09-24 | sora-2-pro-2025-10-06 | (нет) |
Источник: страница устаревания OpenAI[1].
Первая строка — та, которую люди недооценивают. Привязка к моментальному снимку с датой не покупает время, потому что транспорт исчезает вместе с моделями. Всё, что касается POST /videos, GET /videos/{video_id}, GET /videos/{video_id}/content, GET /videos или DELETE /videos/{video_id} нужно переписывать, а не перенаправлять[2].
Экспортируйте вашу библиотеку до того как endpoints перестанут отвечать
Ваши готовые видео не на вашем диске. Они находятся в хранилище OpenAI, и документированный способ получить видео — это GET /videos/{video_id}/content[2]. Когда этот маршрут удалят, задокументированный путь получения этих файлов удалится вместе с ним. Сделайте экспорт в первую очередь, до переписывания кода, потому что это единственная часть этой миграции с жёсткий дедлайном.
GET /videos перечисляет вашу библиотеку с постраничной навигацией и сортировкой[2]:
curl "https://api.openai.com/v1/videos?limit=20&after=video_123&order=asc" \
-H "Authorization: Bearer $OPENAI_API_KEY" | jq .Пройдите по каждой странице, сохраните каждый id, затем вытащите каждый файл:
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)Сохраните JSON из запроса списка тоже, не только MP4-файлы. Он содержит model, seconds, size и created_at для каждого задания[2], это метаданные, которые вы захотите, когда переделаете промпты для другой модели и вам нужно будет знать, на какой модели был отрендерен оригинал.
Переписывание вызова: где две формы расходятся
Оба API асинхронные, submit-then-poll, поэтому управление потоком выживет. Имена полей — нет.
| Шаг | OpenAI Videos API[2] | reAPI[5] |
|---|---|---|
| Submit | POST /v1/videos | POST /api/v1/videos/generations |
| Поле модели | model: "sora-2" | model: "<model id>" |
| Поле промпта | prompt | prompt |
| Разрешение | size: "1280x720" (пара пиксель) | resolution: "720p" + size: "16:9" |
| Длительность | seconds: "8" (строка) | duration: 5 (число) |
| Ручка задания | id в ответе | task_id в ответе |
| Poll | GET /v1/videos/{video_id} | GET /api/v1/tasks/{id} |
| Получить файл | GET /v1/videos/{video_id}/content | уже в output.video_urls |
Три из них кусаются в практике. size означает разные вещи с двух сторон: пара пиксель на одной, соотношение сторон на другой, с разрешением разбитым на собственное поле. seconds — это строка, а duration — число, так что наивное копирование значения приводит к ошибке типа, а не к ясному сообщению о валидации. И шаг загрузки совершенно исчезает, так как ответ poll уже содержит output.video_urls[5] вместо того чтобы заставлять вас вызывать третий endpoint для байтов.
Отправка, которая выглядела так:
video = openai.videos.create(model="sora-2", prompt=PROMPT,
size="1280x720", seconds="8")становится:
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"]Сколько на самом деле стоит миграция, по тарифу, на котором вы сейчас находитесь
Большинство статей об этом выключении цитируют одну заголовок-экономию. Это работает только если вы игнорируете, на каком тарифе Sora читатель на самом деле находится, и честный ответ расщепляется на два.
Опубликованные ставки Sora OpenAI, за секунду[3]:
| Модель | Размер | Standard | Batch |
|---|---|---|---|
| sora-2 | 720p | $0.10 | $0.05 |
| sora-2-pro | 720p | $0.30 | $0.15 |
| sora-2-pro | 1024p | $0.50 | $0.25 |
| sora-2-pro | 1080p | $0.70 | $0.35 |
Против ставок 720p-с-аудио на reAPI[4][6]:
| Ваш текущий тариф | Ставка Sora | Сопоставимая ставка | Изменение |
|---|---|---|---|
| sora-2 720p | $0.10/с | veo3.1-fast-official 720P + аудио, $0.092/с | −8% |
| sora-2 720p | $0.10/с | Wan 3.0 720P, $0.076/с | −24% |
| sora-2 720p | $0.10/с | Kling 3.0 std 720p + аудио, $0.11/с | +10% |
| sora-2-pro 720p | $0.30/с | veo3.1-fast-official 720P + аудио, $0.092/с | −69% |
| sora-2-pro 1080p | $0.70/с | veo3.1-fast-official 1080P + аудио, $0.111/с | −84% |
| sora-2-pro 1080p | $0.70/с | Kling 3.0 pro 1080p + аудио, $0.149/с | −79% |
| sora-2-pro 1080p | $0.70/с | Wan 3.0 1080P, $0.151/с | −78% |
| sora-2-pro 1080p | $0.70/с | Seedance 2.5 1080P, $0.462/с | −34% |
Если вы на простом sora-2 при 720p, базовый тариф $0.10/с был оценён конкурентно и большинство свопов приземляются в нескольких центах от него. Wan 3.0 при 720P — исключение при $0.076/с с аудиодорожкой по умолчанию[9], примерно на 24% ниже. Это реальная экономия, а не масштабный срез, который обещают некоторые статьи. Если вы запускали sora-2 через Batch API при $0.05/с[3], вы были на самом дешёвом способном аудио тарифе в этом сравнении и должны ожидать, что ваша стоимость за секунду вырастет.
Картина sora-2-pro противоположна. При 1080p вы платили $0.70/с, и та же секунда видео 1080p с аудио обойдётся в $0.111/с на veo3.1-fast-official[4]. На 20-секундном клипе это $14.00 против $2.22.
Одна деталь биллинга, которую нужно осторожно перенести: per-generation тарифы Veo 3.1 считаются за рендер, а не за секунду[4], в то время как -official варианты выше считаются за секунду. Это разные единицы. Если ваша модель затрат предполагает за-секунду везде, per-generation тарифы не будут согласованы против неё.
Проблема 20-секунды
Sora 2 поддерживает генерации 16 и 20 секунд на обоих вариантах[2]. Не каждая замена достигает этого в одном проходе, и это ограничение скорее всего заставит реальную переписывание, чем изменение конфигурации.
| Модель | Самый длинный одиночный выход |
|---|---|
| sora-2 / sora-2-pro | 20 с[2] |
| Seedance 2.5 | 30 с[6] |
| Wan 3.0 | 30 с[9] |
| Kling 3.0 | 15 с[7] |
| MiniMax H3 | 15 с[8] |
| Veo 3.1 | 8 с[4] |
20-секундный снимок Sora становится три рендера Veo 3.1 плюс шов. Если ваш пайплайн выдаёт одиночные длинные дубли, две модели здесь пробиваются через потолок Sora сами: Seedance 2.5 при 4 до 30 секунд с синхронизированным аудио[6] и Wan 3.0 при 2 до 30 секунд с аудиодорожкой по умолчанию[9]. Проверьте это до того как вы бенчмарка качество. Модель, которая не может произвести длину вашего снимка, — не кандидат независимо от того, как она набирает.
FAQ
Когда именно Sora 2 API перестанет работать?
24 сентября 2026 года. OpenAI уведомил затронутых разработчиков 24 марта 2026 года[1].
Рекомендует ли OpenAI модель замены?
Нет. Колонка «Рекомендуемая замена» пуста для Videos API и всех пяти идентификаторов Sora 2[1].
Могу ли я продолжить использовать пиннированный снимок, как sora-2-2025-10-06?
Нет. Моментальные снимки с датой указаны на том же 24 сентября как алиасы, и Videos API, который их служит, тоже устаревший[1].
Что происходит с видео, которые я уже сгенерировал?
Они получаются через GET /videos/{video_id}/content, часть устаревшего Videos API[2]. Как только этот endpoint удалится, не будет задокументированного маршрута API к этим файлам, так что экспортируйте до даты.
Будет ли миграция снижать мой счёт?
Это зависит от вашего тарифа. От sora-2-pro при 1080p ($0.70/с), да, существенно. От простого sora-2 при $0.10/с, примерно безубыточно. От sora-2 на Batch при $0.05/с, ожидайте увеличение[3].
Генерируют ли замены аудио, как Sora 2?
Некоторые, и это часто отдельный ценовой тариф. Kling 3.0 и Veo 3.1 оба перечисляют отдельные с-аудио и без-аудио ставки[4][7], в то время как Seedance 2.5 генерирует речь, звуковые эффекты и музыку с аудио по умолчанию[6] и Wan 3.0 поставляет аудиодорожку по умолчанию[9].
Сколько моего кода нужно изменить?
Асинхронная структура submit-then-poll переносится. Что меняется, так это имена полей, раздел size на resolution плюс соотношение сторон, seconds как строка против duration как число, и отмена отдельного вызова загрузки контента[2][5].
Одинаковы ли ограничения контента Sora 2 везде?
Не обязательно. Sora 2 отклоняет реальных людей, включая общественные личности, защищённые авторским правом персонажи и музику, и входные изображения, содержащие человеческие лица[2]. Другие модели проводят эти линии по-другому, поэтому переиспытайте промпты, которые не прошли на Sora, могут пройти в другом месте и наоборот.
Последовательность работ до даты
Экспортируйте сначала. Это единственный шаг с дедлайном, который не может переместиться, и ему нужны только API ключ и место на диске. Затем выберите модель против ваших жёстких ограничений в этом порядке: длина клипа, затем аудио, затем разрешение, затем ставка. Длина исключает кандидатов быстрее, и ставка — это самая простая вещь изменить позже.
Переписывание вызовов — это меньшая работа, чем кажется, потому что форма submit-poll выживает и шаг загрузки файла уходит. Частью, на которой стоит замедлиться, является модель затрат. Если вы приходите с sora-2-pro, экономия реальна и велика; если вы приходите с sora-2 при $0.10/с или Batch при $0.05/с, план для плоской до более высокой стоимости за-секунду и выберите по возможности. В любом случае выключение Sora 2 API даёт вам фиксированную дату для работы назад, и экспорт — это частью, которая перестаёт быть возможной после этого.
References
- OpenAI. Deprecations: Sora 2 video generation models and Videos API. Retrieved August 2026 from developers.openai.com/api/docs/deprecations
- OpenAI. Video generation with Sora: Videos API guide. Retrieved August 2026 from developers.openai.com/api/docs/guides/video-generation
- OpenAI. Pricing: video generation models, standard and batch per-second rates. Retrieved August 2026 from developers.openai.com/api/docs/pricing
- reAPI. Veo 3.1: model page and per-tier pricing. Retrieved August 2026 from reapi.ai/models/veo3-1
- reAPI. Seedance 2.5 API: request shape, task polling and output fields. Retrieved August 2026 from reapi.ai/docs/seedance-2-5
- reAPI. Seedance 2.5: model page, duration range and per-resolution pricing. Retrieved August 2026 from reapi.ai/models/seedance-2-5
- reAPI. Kling 3.0: model page, audio tiers and per-second pricing. Retrieved August 2026 from reapi.ai/models/kling-3-0
- reAPI. MiniMax H3: model page, duration range and per-second pricing. Retrieved August 2026 from reapi.ai/models/minimax-h3
- reAPI. Wan 3.0: model page, duration range and per-resolution pricing. Retrieved August 2026 from reapi.ai/models/wan-3-0
Автор

Категории
Ещё статьи

Nano Banana Pro vs Nano Banana 2: какой уровень выбрать
Nano Banana Pro и 2 построены на разных линейках моделей: только Pro высоко оценён за рассуждения, а выбор уровня определяет доля отбракованных кадров.


Gemini Omni против Seedance 2.0: сравнение видеомоделей 2026 года
Gemini Omni и Seedance 2.0 в мае 2026 года: новинка Google I/O против лидера Arena #1. Сравниваем функции, мультикадры, звук и цены.


Критик для агента генерации видео: цикл проверки качества
Постройте цикл критика для видеоагента с правилами принятия, областями восстановления, бюджетами повторов и человеческим контролем перед финализацией.
