Документация
Генерация видео: как использовать
Гайд по /v1/videos в Sora-стиле — создание задачи, опрос статуса, скачивание MP4, параметры seconds/size/input_reference и legacy-алиас.
Обновлено 13 июля 2026 г.
Видео генерируется асинхронно, цикл Sora-совместимый: POST /v1/videos
создаёт задачу, GET /v1/videos/{id} опрашивает статус,
GET /v1/videos/{id}/content отдаёт готовый MP4. Модель обязательна —
например, google/veo-3.1-fast или kling/v3. Баланс проверяется при
создании задачи, а списание (тариф за секунду) происходит только после
успешного завершения генерации.
Как устроен цикл генерации?
Три шага. Создали задачу — получили video object со статусом queued.
Опрашиваете статус — он проходит queued → in_progress → completed
(или failed, тогда в error будут code и message). Дождались
completed — скачиваете MP4. Генерация занимает минуты, поэтому опрашивать
раз в 5-10 секунд более чем достаточно.
Как создать задачу?
Эндпоинт принимает и application/json, и multipart/form-data — второй
формат использует client.videos.create() из OpenAI SDK.
Параметры:
prompt— обязателен, до 5000 символов.model— обязателен, дефолта нет. Видео-модели помечены в каталоге.seconds— длительность, строкой или числом («4», «6», «8»). Шлюз принимает 1-60, фактический набор длительностей задаёт модель: Veo 3.1 — 4, 6 или 8 секунд.size— «ШИРИНАxВЫСОТА»:1280x720(16:9),720x1280(вертикальное 9:16),1920x1080(16:9 в 1080p). Внутри маппится на соотношение сторон и разрешение; 1080p получается, когда меньшая сторона ≥ 1080.input_reference— стартовый кадр для image-to-video: в multipart — файл (до 20 МБ), в JSON — URL картинки.- provider-specific поля —
generate_audio,seed,negative_prompt— принимаются в JSON и уходят провайдеру.
Полная схема запроса и ответа — в референсе создания видео.
Как узнать, что видео готово?
Опрашивать GET /v1/videos/{id} — именно этот запрос продвигает статус
(мы ходим к провайдеру в момент вашего опроса). progress грубый: 0, 50 или
100 — точных процентов провайдеры не отдают. Поля ответа — в
референсе статуса.
Списание за генерацию происходит в момент перехода в completed. Задача
завершилась с failed — денег не берём.
Как скачать результат?
GET /v1/videos/{id}/content отдаёт байты MP4 (Content-Type: video/mp4).
Скачивание бесплатное, сколько угодно раз. Если генерация ещё идёт, придёт
409 video_not_ready; чужой или несуществующий id — 404 (коды разобраны в
гайде «Ошибки API»).
Список всех задач ключа — GET /v1/videos с курсорной пагинацией
(limit до 100, after — id последнего видео предыдущей страницы, в ответе
has_more). Список статусы не продвигает — только GET /v1/videos/{id}.
Что за /v1/video/generations?
Наш исходный, до-Sora формат: POST /v1/video/generations возвращает 202 и
job в статусе processing, статус и скачивание — по
GET /v1/video/generations/{job_id} и .../download. Он остаётся рабочим
документированным алиасом — существующие интеграции ломать не будем. Для
нового кода берите /v1/videos: его понимает OpenAI SDK.
Сколько стоит видео?
Тариф — за секунду готового ролика, у каждой модели свой. Актуальные цены — на странице цен для разработчиков. Посмотреть, как генерирует Veo 3.1, без кода можно на сайте.