Хотите создавать AI-видео длиннее 8 секунд, но постоянно сталкиваетесь с ограничениями? Это типичный барьер для всех, кто занимается генерацией видеоконтента. В этой статье мы подробно разберем функцию extend (расширения) в Google Veo 3.1. Я помогу вам освоить полноценное техническое решение, которое позволяет через API превратить короткий 8-секундный ролик в длинное видео до 148 секунд.
В чем профит: прочитав этот материал, вы научитесь использовать Veo 3.1 extend API, поймете механику инкрементального продления по 7 секунд и сможете самостоятельно реализовать генерацию длинных AI-видео.

Основные характеристики API расширения видео Veo 3.1
Прежде чем углубляться в технические детали, давайте ознакомимся с ключевыми параметрами и ограничениями функции extend в Veo 3.1.
| Параметр | Значение | Описание |
|---|---|---|
| Длительность одного расширения | 7 секунд | Каждый вызов extend добавляет фиксированные 7 секунд видео |
| Максимальное количество расширений | 20 раз | От исходного видео можно выполнить максимум 20 расширений |
| Максимальная общая длительность | 148 секунд | 8 сек. оригинала + 20 × 7 сек. расширения = 148 секунд |
| Входное разрешение | 720p / 1080p | Поддержка двух вариантов четкости на входе |
| Выходное разрешение | 720p | На данный момент результат расширения ограничен 720p |
| Соотношение сторон | 16:9 / 9:16 | Поддерживаются как горизонтальный, так и вертикальный форматы |
| Требования к частоте кадров | 24 fps | Входное видео должно иметь частоту 24 кадра/сек |
| Формат файла | MP4 | Вход и выход осуществляются в формате MP4 |
Подробный разбор принципа работы расширения видео в Veo 3.1
Функция Scene Extension в Veo 3.1 использует продуманный механизм непрерывной генерации:
- Сэмплирование последней секунды: Система извлекает визуальные признаки из последней секунды (24 кадров) входного видео.
- Моделирование непрерывности: На основе этих признаков прогнозируется содержание следующих 7 секунд видео.
- Бесшовное соединение: Новые 7 секунд видео объединяются с исходным видео в один полноценный файл.
- Итеративное накопление: Результат каждого расширения может служить входными данными для следующего шага.
Такой подход гарантирует сохранение визуальной целостности даже после многократных расширений, включая:
- Плавную стыковку движений персонажей;
- Естественные переходы освещения в сцене;
- Согласованность фоновых элементов;
- Непрерывность аудиодорожки (если она есть).
🎯 Технический совет: Если вам нужно вызвать API расширения видео Veo 3.1, вы можете воспользоваться платформой APIYI (apiyi.com). Она предоставляет единый интерфейс для удобного вызова моделей генерации видео от Google.
Технические спецификации Veo 3.1 Extend API
Ограничения на входные данные
Перед вызовом API Veo 3.1 extend необходимо убедиться, что входное видео соответствует следующим спецификациям:
| Ограничение | Требование | Что произойдет при несоответствии |
|---|---|---|
| Источник | Только видео, созданные Veo | Ошибка валидации (validation error) |
| Формат | MP4 | Ошибка неподдерживаемого формата |
| Длительность | 1–30 секунд | Ошибка выхода за пределы диапазона |
| Частота кадров | 24 fps | Ошибка несовпадения частоты кадров |
| Разрешение | 720p или 1080p | Ошибка проверки разрешения |
| Соотношение сторон | 16:9 или 9:16 | Ошибка неподдерживаемых пропорций |
Важное примечание: Функция extend в Gemini API поддерживает в качестве входных данных только видео, сгенерированные Veo. Если вы попытаетесь использовать видео из других источников (например, снятые на телефон или созданные другой нейросетью), API вернет ошибку валидации.
Спецификации выходных данных
| Параметр выхода | Характеристики |
|---|---|
| Формат файла | MP4 |
| Длительность расширения | Фиксированно 7 секунд |
| Разрешение | 720p (текущее ограничение) |
| Частота кадров | 24 fps |
| Аудио | Поддержка продолжения фоновых звуковых эффектов |
| Срок хранения | Хранится на сервере 2 дня |

Быстрый старт с API расширения видео Veo 3.1
Подготовка среды
Перед началом убедитесь, что у вас есть:
- Аккаунт Google AI Studio или Vertex AI
- Доступ к Gemini API
- Установленный Python 3.8+
- Установленный SDK google-genai
pip install google-genai
Минимальный пример кода
Ниже представлен простейший код для вызова Veo 3.1 extend API:
from google import genai
import time
# Инициализация клиента
client = genai.Client(
api_key="YOUR_API_KEY"
# Также можно использовать единый интерфейс APIYI (apiyi.com)
)
# Шаг 1: Сначала генерируем исходное видео
print("Генерация исходного видео...")
initial_operation = client.models.generate_videos(
model="veo-3.1-generate-preview",
prompt="Золотой сокол парит в синем небе, солнечные лучи пробиваются сквозь облака",
)
# Ожидание завершения генерации
while not initial_operation.done:
time.sleep(30)
initial_operation = client.operations.get(initial_operation)
initial_video = initial_operation.result.generated_videos[0]
print(f"Исходное видео создано, длительность: 8 секунд")
# Шаг 2: Расширение видео
print("Расширение видео...")
extend_operation = client.models.generate_videos(
model="veo-3.1-generate-preview",
prompt="Сокол продолжает кружить в воздухе, пикируя за добычей",
video=initial_video
)
# Ожидание завершения расширения
while not extend_operation.done:
time.sleep(30)
extend_operation = client.operations.get(extend_operation)
extended_video = extend_operation.result.generated_videos[0]
print(f"Расширение видео завершено, общая длительность: 15 секунд")
🚀 Быстрый старт: Рекомендуем использовать платформу APIYI (apiyi.com) для быстрого тестирования Veo 3.1 API. Она предоставляет готовые интерфейсы, позволяя выполнить интеграцию без сложных настроек.
Посмотреть полный код: генерация видео максимальной длины (148 секунд)
from google import genai
import time
import os
class Veo31VideoExtender:
"""Расширитель видео Veo 3.1 — поддержка генерации видео до 148 секунд"""
def __init__(self, api_key: str):
self.client = genai.Client(api_key=api_key)
self.model = "veo-3.1-generate-preview"
self.max_extensions = 20 # Максимальное количество расширений
self.extension_duration = 7 # Каждое расширение добавляет 7 секунд
def generate_initial_video(self, prompt: str, aspect_ratio: str = "16:9"):
"""Генерация начального видео"""
print(f"[1/2] Генерация начального видео...")
print(f" Промпт: {prompt[:50]}...")
operation = self.client.models.generate_videos(
model=self.model,
prompt=prompt,
config={
"aspect_ratio": aspect_ratio,
"number_of_videos": 1
}
)
video = self._wait_for_completion(operation)
print(f" Начальное видео создано (8 секунд)")
return video
def extend_video(self, video, prompt: str, target_duration: int = 148):
"""
Расширение видео до целевой длительности
Args:
video: Объект входного видео
prompt: Промпт для расширения
target_duration: Целевая длительность (сек), макс. 148 сек
Returns:
Объект расширенного видео
"""
# Расчет необходимого количества расширений
initial_duration = 8
needed_duration = target_duration - initial_duration
extensions_needed = min(
(needed_duration + self.extension_duration - 1) // self.extension_duration,
self.max_extensions
)
print(f"[2/2] Начало расширения видео...")
print(f" Целевая длительность: {target_duration} сек")
print(f" Требуется расширений: {extensions_needed}")
current_video = video
current_duration = initial_duration
for i in range(extensions_needed):
print(f" Прогресс: {i+1}/{extensions_needed}")
operation = self.client.models.generate_videos(
model=self.model,
prompt=prompt,
video=current_video
)
current_video = self._wait_for_completion(operation)
current_duration += self.extension_duration
print(f" Текущая длительность: {current_duration} сек")
final_duration = min(current_duration, 148)
print(f"Расширение видео завершено! Итоговая длительность: {final_duration} сек")
return current_video
def _wait_for_completion(self, operation, check_interval: int = 30):
"""Ожидание завершения операции"""
while not operation.done:
time.sleep(check_interval)
operation = self.client.operations.get(operation)
if operation.result.generated_videos:
return operation.result.generated_videos[0]
raise Exception("Ошибка генерации видео")
def download_video(self, video, output_path: str):
"""Скачивание видео локально"""
print(f"Скачивание видео в: {output_path}")
# Получение контента видео
video_data = self.client.files.download(video.video)
with open(output_path, 'wb') as f:
f.write(video_data)
print(f"Загрузка завершена! Размер файла: {os.path.getsize(output_path) / 1024 / 1024:.2f} MB")
# Пример использования
if __name__ == "__main__":
# Инициализация расширителя
extender = Veo31VideoExtender(api_key="YOUR_API_KEY")
# Генерация начального видео
initial_video = extender.generate_initial_video(
prompt="Побережье на закате, золотой свет солнца на мерцающей глади моря, парусник медленно уходит вдаль",
aspect_ratio="16:9"
)
# Расширение до 60 секунд
extended_video = extender.extend_video(
video=initial_video,
prompt="Парусник продолжает путь, небо постепенно становится оранжево-красным, над лодкой кружат чайки",
target_duration=60
)
# Скачивание видео
extender.download_video(extended_video, "extended_video_60s.mp4")
Продвинутые приемы работы с Veo 3.1 Video Extension API
Стратегии промптов: обеспечение непрерывности видео
При расширении видео написание промптов напрямую влияет на результат. Вот несколько лучших практик:
| Стратегия | Описание | Пример |
|---|---|---|
| Продолжение действия | Описание следующего этапа движения | "Сокол продолжает пикировать, приближаясь к земле" |
| Развитие сцены | Описание естественных изменений в сцене | "Небо постепенно темнеет, начинают появляться звезды" |
| Сохранение объекта | Поддержание неизменности главного героя | "Тот же сокол кружит над лесом" |
| Избегайте скачков | Не переключайте сцену внезапно | ❌ "Переход в помещение" |
Особенности работы со звуком
Veo 3.1 поддерживает нативную генерацию аудио, но при использовании функции расширения (extend) есть свои нюансы:
- Фоновые звуки: Хорошо продлеваются звуки окружения и фоновая музыка.
- Диалоги/голос: Если в последней секунде исходного ролика нет голоса, в расширенной части его тоже не будет.
- Согласованность звука: Система постарается сохранить единство стиля аудио.
💡 Совет: Если в видео нужны связанные диалоги, убедитесь, что последняя секунда исходного видео содержит голос, иначе в расширенной части останутся только фоновые звуки.
Массовое расширение и оптимизация затрат
Когда нужно генерировать много длинных роликов, стоит рассмотреть следующие стратегии оптимизации:

# Пример оптимизации массового расширения
def batch_extend_videos(video_list, prompts, target_duration=60):
"""
Массовое расширение видео
Через платформу APIYI (apiyi.com) можно получить более выгодные цены на массовые вызовы
"""
results = []
for i, (video, prompt) in enumerate(zip(video_list, prompts)):
print(f"Обработка видео {i+1}/{len(video_list)}")
extended = extender.extend_video(
video=video,
prompt=prompt,
target_duration=target_duration
)
results.append(extended)
# Избегаем срабатывания ограничений по частоте запросов (Rate Limit)
time.sleep(5)
return results
Сравнение расширения видео в Veo 3.1 с другими решениями
На рынке представлено несколько решений для генерации AI-видео. Ниже приведено сравнение возможностей функции extend в Veo 3.1 с другими популярными инструментами:
| Параметр сравнения | Veo 3.1 Extend | Sora | Kling | Runway Gen-3 |
|---|---|---|---|---|
| Макс. длительность | 148 секунд | 60 секунд | 120 секунд | 40 секунд |
| Механизм расширения | Шагами по 7 секунд | Нет расширения | Шагами по 5 секунд | Нет расширения |
| Макс. разрешение | 4K (генерация) / 720p (расширение) | 1080p | 1080p | 1080p |
| Встроенное аудио | Поддерживается | Поддерживается | Частично | Не поддерживается |
| Вертикальный формат | 9:16 | 9:16 | 9:16 | 9:16 |
| Доступность API | Gemini API | Ограничено | Открыто | Открыто |
| Доступные платформы | APIYI apiyi.com, Google AI Studio | Официальный сайт | Сайт, APIYI | Официальный сайт |
Советы по выбору
- Если нужна максимальная длительность: Выбирайте Veo 3.1, поддерживающую до 148 секунд.
- Если важна стабильность картинки: Veo 3.1 лучше всего сохраняет последовательность кадров.
- При ограниченном бюджете: На платформе APIYI apiyi.com можно получить более выгодные цены.
- Если нужно быстрое создание: Версия Veo 3.1 Fast обеспечивает более быстрый отклик.
Частые вопросы по расширению видео в Veo 3.1
Q1: Почему мое видео не расширяется и выдает «validation error»?
Обычно это происходит потому, что исходное видео было создано не в Veo. Функция extend в Gemini API поддерживает в качестве входных данных только те видео, которые были сгенерированы самой моделью Veo.
Решение:
- Убедитесь, что исходное видео создано с помощью Veo 3.1.
- Проверьте формат видео — это должен быть MP4.
- Подтвердите параметры: частота кадров 24fps, разрешение 720p или 1080p.
- На платформе APIYI apiyi.com можно получить подробную помощь в диагностике ошибок.
Q2: Как сохранить единство стиля при расширении видео?
Ключ к сохранению стиля видео — в правильной стратегии промптов:
- Преемственность промпта: Используйте в описании для расширения те же фразы, что и в оригинальном промпте.
- Избегайте резких смен стиля: Не добавляйте новые описания визуальных стилей в процессе расширения.
- Единство объекта: Четко указывайте, что "тот же самый" объект продолжает действие.
- Плавные переходы: Изменения сцены должны быть постепенными, избегайте резких склеек.
Пример:
- Оригинал: "Белая кошка играет на траве"
- Расширение: "Та же самая белая кошка продолжает бегать по траве, преследуя бабочку" ✅
- Расширение: "В кадре появляется черная собака" ❌
Q3: Упадет ли качество видео после 20-го расширения?
Теоретически, после многократных расширений может возникнуть некоторый "дрейф" качества. Однако архитектура Veo 3.1 оптимизирована для решения этой проблемы:
- Каждое расширение опирается на характеристики оригинального стиля.
- Моделирование непрерывности обеспечивает плавность движений.
- Разрешение остается стабильным на уровне 720p.
Совет: Если у вас очень высокие требования к качеству, рекомендуем оценивать результат после 10–15 расширений. На платформе APIYI apiyi.com удобно проводить несколько тестов для сравнения.
Q4: Сколько времени хранятся расширенные видео?
Сгенерированные видео хранятся на серверах Google в течение 2 дней. По истечении этого срока они удаляются автоматически.
Важные напоминания:
- Расширенное видео считается новой генерацией и также хранится всего 2 дня.
- Рекомендуется скачивать видео на локальное устройство сразу после создания.
- Используйте метод
download_videoв коде для автоматизации процесса сохранения.
Q5: Как получить доступ к Veo 3.1 API?
В данный момент Veo 3.1 API находится в стадии Paid Preview. Получить доступ можно следующими способами:
- Google AI Studio: Разработчики могут подать заявку напрямую.
- Vertex AI: Корпоративные пользователи могут активировать доступ через консоль Google Cloud.
- APIYI apiyi.com: Предоставляет единый интерфейс API с поддержкой вызовов Veo 3.1, доступно сразу после регистрации.
Обработка ошибок API Veo 3.1 для расширения видео
На практике вы можете столкнуться с различными ошибками. Ниже приведен список распространенных проблем и способы их решения:
| Тип ошибки | Сообщение об ошибке | Причина | Решение |
|---|---|---|---|
| Ошибка валидации | Video validation failed | Входное видео не соответствует спецификациям | Проверьте источник, формат и разрешение видео |
| Ошибка тайм-аута | Operation timed out | Генерация заняла слишком много времени | Увеличьте время ожидания или попробуйте снова |
| Ошибка квоты | Quota exceeded | Превышен лимит вызовов API | Дождитесь сброса лимитов или обновите тарифный план |
| Ошибка формата | Unsupported format | Формат видео не поддерживается | Конвертируйте видео в формат MP4 |
| Ошибка частоты кадров | Invalid frame rate | Частота кадров не равна 24fps | Перекодируйте видео с нужной частотой кадров |
# Пример обработки ошибок
def safe_extend_video(video, prompt, max_retries=3):
"""Расширение видео с механизмом повторных попыток"""
for attempt in range(max_retries):
try:
operation = client.models.generate_videos(
model="veo-3.1-generate-preview",
prompt=prompt,
video=video
)
while not operation.done:
time.sleep(30)
operation = client.operations.get(operation)
return operation.result.generated_videos[0]
except Exception as e:
print(f"Попытка {attempt + 1} не удалась: {e}")
if attempt < max_retries - 1:
time.sleep(60) # Ожидание перед повторной попыткой
else:
raise
Сценарии использования API Veo 3.1 для расширения видео
Создание коротких видео
Превращайте 8-секундные фрагменты в полноценные ролики длительностью 60 секунд и более. Идеально для:
- Контента в TikTok / Reels
- Производства YouTube Shorts
- Рекламных креативов для социальных сетей
Кинопроизводство и превизуализация
Быстрое создание концепт-видео на 1–2 минуты для:
- Визуализации сценариев
- Анимации раскадровок
- Демонстрации творческих идей и концепций
Демонстрация продуктов
Создание динамичных презентационных роликов:
- Обзор продукта на 360°
- Симуляция использования продукта в реальных условиях
- Анимированные демонстрации ключевых функций

Итоги
Функция extend в Google Veo 3.1 открывает прорывные возможности для увеличения длительности видео, созданных ИИ:
- Механизм 7-секундного шага: каждое расширение добавляет фиксированные 7 секунд, при этом алгоритм опирается на последнюю секунду видео для обеспечения плавности и непрерывности.
- Лимит в 20 итераций: вы можете выполнить максимум 20 последовательных операций расширения.
- Максимальная длительность 148 секунд: 8 секунд оригинала + 140 секунд расширения = 148 секунд общего хронометража.
- Строгие требования к исходнику: поддерживаются только MP4-видео, сгенерированные в Veo, с частотой 24fps и разрешением 720p или 1080p.
Для разработчиков и авторов контента, которым нужно создавать длинные ролики, освоение Veo 3.1 extend API значительно повысит эффективность производства. Рекомендуем использовать APIYI (apiyi.com), чтобы быстро протестировать возможности и получить стабильный доступ к API.
Материал подготовлен технической командой APIYI Team. Больше руководств по использованию AI API ищите на сайте apiyi.com
