Обзор
VEO 3.1 Official — это официальный релейный канал APIYI для Google Veo 3.1 — прозрачный passthrough к асинхронным эндпоинтам Google AI Studioveo-3.1-generate-preview / veo-3.1-fast-generate-preview, с идентичными upstream model IDs, response fields и ограничениями. Тарификация по каждому запросу, доступен для вызова в группе Default — самый простой в подключении официальный канал Veo 3.1 с качеством официального уровня, доступный сегодня.
Default группа + оплата по каждому запросу или Priority Tokens с оплатой по мере использования (отдельная группа не нужна; чистый Pay-as-you-go не поддерживается). Подходит для рекламных коротких роликов, материалов для e-commerce, контента для соцсетей и демонстраций продукта, когда требуется качество официального уровня при максимально простом подключении.API преобразования текста в видео
POST /v1/videos, генерируйте видео только по тексту — JSON-тело запроса, самый простой способ начать.API преобразования изображения в видео
POST /v1/videos + multipart-загрузка input_reference, чтобы оживить статичное изображение в клип.Официальный против реверсного
Визуальное тестирование API
Поиск / загрузка асинхронных задач
Почему официальный VEO 3.1 от APIYI?
Полная замена официального канала Google / Vertex AI, оптимизированная для production-сценариев с точки зрения онбординга, стабильности и стоимости:Официальный passthrough · Идентичные Model IDs
veo-3.1-generate-preview / veo-3.1-fast-generate-preview) в точности совпадают с upstream, с полным соответствием полей и ограничений запросов и ответов.Беспроблемный онбординг · Без переключения группы
Default группе с Pay-per-request или Pay-as-you-go Priority Tokens (чистый Pay-as-you-go не поддерживается). Отдельное переключение группы не требуется; существующие Pay-per-request Tokens работают как есть — самый беспроблемный официальный канал для Veo 3.1.Неограниченные параллельные запросы · Production-масштаб
Тарификация за запрос · Более чем на 60% дешевле, чем Google
veo-3.1-fast-generate-preview $0.3/req, veo-3.1-generate-preview $1.2/req — единая для 4/6/8 сек и 720p/1080p/4k. По сравнению с официальным 8s 1080p Google, экономия 62–68%, используйте бонусы за пополнение для дополнительной экономии; неудачные задачи не тарифицируются.Глобальный доступ без трения
api.apiyi.com напрямую из дата-центров Mainland China, residential-сетей или зарубежных узлов. Полностью обойдитесь без трансграничной настройки Google AI Studio / Vertex AI.Профессиональная поддержка · Корпоративное внедрение
Ключевые возможности
Нативное синхронизированное аудио
Гибкая длительность 4 / 6 / 8 секунд
seconds строковый enum: "4" / "6" / "8". Тарификация за каждый запрос, длительность не влияет на цену. Уровни 1080p / 4k требуют "8".Три уровня разрешения
720p / 1080p / 4k, единая тарификация за запрос. Свободно переключайте альбомную ориентацию (16:9) и портретную (9:16).Точное следование инструкциям
Изображение в видео (input_reference)
Асинхронная модель задач
task_id. Отдельно опрашивайте статус и скачивайте итоговое видео — это идеально подходит для пакетного управления и сценариев возобновления после сбоя.Протокол, совместимый с OpenAI
base_url=https://api.apiyi.com/v1 + Bearer. Работает через raw HTTP или низкоуровневый client.post() OpenAI SDK.Сбойные запросы бесплатны
status=completed.Цены
APIYI использует тарификацию pay-per-request — фиксированная цена в пределах поддерживаемых комбинаций длительности/разрешения, без доплаты за более длинный вывод или более высокое разрешение. По публичным тарифамai.google.dev/gemini-api/docs/pricing, официальный Veo 3.1 от Google тарифицируется за секунду; указанные ниже скидки рассчитаны для 8-секундных видео.
- Взимается за запрос по названию модели, независимо от длительности (4/6/8 сек), разрешения (720p/1080p/4k) или наличия
input_reference— выбор 4K стоит столько же, сколько 720p - В асинхронном режиме неудачные генерации / отклонения по политике контента / ошибки емкости не тарифицируются
- Тарифные уровни бонуса при пополнении в Top-Up Promotions дополнительно снижают эффективную стоимость
- Рендеринг 4K работает в 4–6 раз медленнее и создает файлы примерно в 10 раз больше — для ежедневного использования по умолчанию выбирайте 1080p
- Официальный тариф Google для 4K составляет $0.30/сек (fast) / $0.60/сек (standard), то есть $2.40 / $4.80 за 8 сек (источник:
ai.google.dev/gemini-api/docs/pricing)
Настройка группы
VEO 3.1 Official работает в группеDefault (1x), отдельное переключение группы не требуется. Режим тарификации Token должен быть Pay-per-request или Pay-as-you-go Priority — чистый Pay-as-you-go не поддерживается (при необходимости переключите режим Token в консоли).
Технические характеристики
Эндпоинты API
Key Parameters
seconds (длительность видео)
Поле длительности называется seconds (а не duration) и должно быть строкой ("4" / "6" / "8"). Если передать число, возвращается:
metadata.durationSeconds > seconds > 8
metadata.resolution (уровень разрешения)
metadata.resolution > size > 720p
⚠️ Не передавайте generateAudio
Veo 3 / 3.1 изначально поддерживает звук, но параметр generateAudio передавать нельзя — вышестоящий сервис отклонит запрос с INVALID_ARGUMENT. Чтобы управлять звуком, запишите намерение в свой prompt:
“Морской маяк в сумерках; волны, далекие морские птицы, тихий ветер, кинематографическая атмосфера”
Лучшие практики
Выбирайте модель в зависимости от задачи
- Итерации / пакетные превью →
veo-3.1-fast-generate-preview($0.3/request) - Финальная поставка / 4K →
veo-3.1-generate-preview($1.2/request) - Запускайте оба варианта с одним и тем же prompt + seed; выбирайте визуально
Сначала проверяйте на 4 секундах
seconds: "4", чтобы проверить направление камеры и стиль (рендер 60–90 сек, $0.3). Затем увеличьте до 8 сек или 1080p, когда внешний вид будет зафиксирован.Используйте асинхронный опрос, а не синхронное ожидание
task_id → опрашивайте GET /v1/videos/{task_id} каждые 8–10 сек, пока не будет status: "completed" → скачайте из /content. Без webhooks; только опрос.Задавайте таймауты клиента по уровню
- 720p / 1080p: жесткий таймаут 3 мин
- 4K: жесткий таймаут 10 мин
- POST submit (multipart): минимум 30 сек
Скачивайте сразу после завершения
status переключится на completed, немедленно скачайте в свой OSS / CDN — не полагайтесь надолго на удаленный task_id. Эндпоинт /content иногда возвращает 400 сразу после переключения status; повторите через 4 секунды (в sample clients это уже встроено).Закладывайте аудио-намерение в prompt
generateAudio (он возвращает INVALID_ARGUMENT). Для фонового звука, диалогов, BGM опишите в prompt: “волны, далёкие морские птицы, слабый ветер”.Ограничивайте rate limit на своей стороне
Коды ошибок и повторные попытки
- Тайм-аут отправки POST: 30 сек (для multipart uploads может потребоваться больше)
- Интервал опроса: 8–10 сек; максимальное ожидание для 720p/1080p 3 мин, для 4K 10 мин
- Повтор с экспоненциальной задержкой для 5xx и
failed(рекомендуется 1–2 попытки) - Повторяйте
/content3–5 раз с интервалом 4 сек
Часто задаваемые вопросы
Канал Official vs Reverse — в чем разница? Reverse-канал еще можно использовать?
Канал Official vs Reverse — в чем разница? Reverse-канал еще можно использовать?
veo-3.1-generate-preview / veo-3.1-fast-generate-preview), цена $0.3 / $1.2 за запрос, только асинхронный эндпоинт.Reverse (существующий VEO 3.1): Доступ к Google Flow, полученный методом reverse engineering. ID моделей относятся к сериям veo-3.1-fast / veo-3.1 / -fl, цена от $0.15 за запрос — дешевле, поддерживает как streaming sync, так и async-режимы, а также frame-to-video (первый/последний кадр).См. полную матрицу выбора Official vs Reverse. Оба канала сосуществуют; выбирайте по бизнес-потребностям.Поле length — это секунды или длительность? И почему оно должно быть строкой?
Поле length — это секунды или длительность? И почему оно должно быть строкой?
seconds (строка "4" / "6" / "8"). Если назвать его duration, оно не распознается — значение молча отбрасывается, и length возвращается к значению по умолчанию 4 сек, что и является корнем проблемы «отправили 8 с, а получили только 4 с».Что касается того, почему оно должно быть строкой: в Go-структуре бэкенда это поле (внутреннее имя duration) объявлено как string, поэтому число отклоняется на уровне декодера с parse_request_failed: cannot unmarshal number into Go struct field ... duration of type string (duration в этой ошибке — внутреннее имя поля бэкенда; ваш запрос по-прежнему отправляет seconds). Запомните: отправляйте seconds и заключайте значение в кавычки: "4" / "6" / "8".Как добавить диалог / фоновый звук / BGM? Можно ли передать generateAudio?
Как добавить диалог / фоновый звук / BGM? Можно ли передать generateAudio?
generateAudio передавать нельзя (upstream возвращает INVALID_ARGUMENT). Чтобы управлять звуком, зашейте намерение в prompt:«Морской маяк в сумерках; волны, дальние морские птицы, тихий ветер, кинематографичная атмосфера»
fast vs standard — что выбрать? fast действительно быстрее?
fast vs standard — что выбрать? fast действительно быстрее?
- При одинаковых параметрах время рендеринга примерно одинаковое (по измерениям 720p 8 sec: fast 83s, standard 78s). fast не быстрее — он дешевле ($0.3 vs $1.2)
- По умолчанию выбирайте
veo-3.1-fast-generate-preview - Переходите на
veo-3.1-generate-previewдля финальной поставки или когда важны детализация / физическая согласованность - A/B в продакшене: запускайте оба варианта с одинаковыми prompt + seed, выбирайте визуально
Стоит ли использовать 4K?
Стоит ли использовать 4K?
- Одинаковая цена за запрос выглядит привлекательно
- Но рендеринг в 4–6× медленнее (720p 80s → 4K 350s)
- Файлы примерно в 10× больше (720p 4MB → 4K 40MB) — затраты на трафик и хранение удваиваются
- 1080p визуально достаточно для большинства сценариев воспроизведения
veo-3.1-generate-preview, задайте seconds="8" (обязательно), timeout клиента ≥ 10 мин, запускайте как фоновую async-задачу.Когда задача считается завершенной? Есть ли webhooks?
Когда задача считается завершенной? Есть ли webhooks?
- Webhooks нет; опрашивайте только
GET /v1/videos/{task_id} - Рекомендуемый интервал опроса: 8 сек (по измерениям достаточно, не приведет к лимиту запросов)
- Измеренное время: 720p / 1080p 60–115 сек, 4K 5–6 мин
- Timeout клиента: 3 мин для 720p/1080p, 10 мин для 4K
Почему GET /content возвращает 400?
Почему GET /content возвращает 400?
status переключается в completed, вызов /v1/videos/{task_id}/content иногда возвращает 400 из-за задержки синхронизации upstream CDN. Подождите 4 сек и повторите один раз — этого обычно достаточно (в примерах клиентов повтор выполняется 3–5 раз с интервалом 4 секунды).Можно ли получить CDN URL для видео? Может ли frontend напрямую обращаться к эндпоинту?
Можно ли получить CDN URL для видео? Может ли frontend напрямую обращаться к эндпоинту?
video_url / data.url / никакой другой ссылки, пригодной для прямого распространения.Единственный способ получить видео: после status: "completed" вызовите GET /v1/videos/{task_id}/content, чтобы получить двоичный поток MP4 (требуется заголовок Authorization: Bearer).Стандартный production-паттерн:- Бэкенд скачивает MP4 сразу после завершения задачи → загружает в ваш собственный OSS / CDN
- Отдавайте пользователям ваш CDN URL
- Тег
<video>на frontend НЕ должен указывать напрямую на/content— браузеры не могут передать заголовок авторизации, запросы будут 401
Как долго видео хранятся на сервере? Нужно ли скачивать их сразу?
Как долго видео хранятся на сервере? Нужно ли скачивать их сразу?
task_id; /content после истечения срока в итоге вернет 404.Почему прогресс остается на 50%?
Почему прогресс остается на 50%?
progress слишком грубое — оно прыгает только между 0 / 50 / 100. Не используйте его для индикатора прогресса в процентах. Используйте spinner или вычисляйте «прошло / ожидается» сами.Списываются ли средства за неудачные генерации?
Списываются ли средства за неудачные генерации?
status=completed. failed / отмененные / отклоненные по content-policy / ошибка параметров — все бесплатно. Нет реального видеовывода — нет оплаты.Позволяет ли seed воспроизводить идентичные видео?
Позволяет ли seed воспроизводить идентичные видео?
88888) + те же параметры, fast дважды — размеры файлов 9.81 MB и 9.25 MB, md5 полностью различается, время рендеринга тоже отличается.Но seed не декоративен: результаты с одинаковым seed группируются вместе (тест на 5 запусков, разброс размеров файлов внутри группы всего 6%), разные seed систематически смещаются (межгрупповой разброс +36.8%). Выводы:- Нужен «стабильный вид» → зафиксируйте seed
- Нужно «исследовать вариации» → меняйте seed, а не возитесь с prompt
- Нужен «точный повтор» → забудьте об этом, сохраняйте mp4
Можно ли передать несколько reference images? Первый/последний кадр?
Можно ли передать несколько reference images? Первый/последний кадр?
input_reference, и только как file или Base64, а не удаленный URL.Google upstream Veo 3.1 поддерживает multi-reference / first-last-frame / video extension, но этот канал — нет. Для первого/последнего кадра используйте серию VEO 3.1 (Reverse) -fl.Лимиты параллельных запросов? Ограничения QPS?
Лимиты параллельных запросов? Ограничения QPS?
Содержат ли видео водяные знаки или метаданные о происхождении?
Содержат ли видео водяные знаки или метаданные о происхождении?
- Видимых водяных знаков нет
- Но они содержат Google C2PA Content Credentials (выданы Google C2PA Media Services, формат
urn:c2pa:...), встроенные в метаданные MP4. Конечные пользователи их не видят; инструменты C2PA (например, Adobe Content Authenticity) могут проверить «сгенерировано Veo» - Для сценариев перераспространения учитывайте это; обычно на воспроизведение не влияет
Можно ли напрямую использовать официальный OpenAI SDK?
Можно ли напрямую использовать официальный OpenAI SDK?
Bearer auth + /v1/...), но официальный SDK OpenAI не предоставляет метод videos.create (/v1/videos — это custom path). Используйте низкоуровневый client.post() в SDK OpenAI или raw HTTP. Raw HTTP — самый простой вариант — см. примеры кода в Песочница Text-to-Video.Связанные документы
- Песочница «Из текста в видео» —
POST /v1/videos(JSON) интерактивный отладчик + примеры кода на 5 языках - Песочница «Из изображения в видео» —
POST /v1/videos(multipart) + использованиеinput_reference - Матрица решений: официальный релей против реверса — различия по сравнению с VEO 3.1 (Реверс)
- Акции на пополнение — бонусные уровни и подходящие каналы
- Руководство по API — общие правила вызова, рекомендации по тайм-аутам и повторным попыткам
- Официальная страница модели Google:
ai.google.dev/gemini-api/docs/models/veo-3.1-generate-preview - Документация Google по генерации видео:
ai.google.dev/gemini-api/docs/video