Генерация видео
Создание задания и безопасная обработка асинхронного результата
Создание задания
POST https://api.getapi.ru/v1/videos
Генерация видео выполняется асинхронно. Первый ответ содержит ID задания, файл получают после завершения
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
model | string | Да | ID видеомодели из каталога GetAPI |
prompt | string | Да | Описание видео |
duration | integer | Нет | Длительность в секундах из набора модели |
resolution | string | Нет | Поддерживаемое разрешение, например 720p |
aspect_ratio | string | Нет | Соотношение сторон, например 16:9 |
size | string | Нет | Размер в пикселях, если поддерживается |
generate_audio | boolean | Нет | Генерация звука, если поддерживается |
frame_images | array | Нет | Изображения первого или последнего кадра для совместимых моделей |
input_references | array | Нет | Входные материалы в формате выбранной модели |
provider | object | Нет | Специальные настройки провайдера для выбранного видеометода |
Допустимые длительности, разрешения и входные материалы зависят от модели. Модели редактирования и улучшения видео требуют исходного видео, для них одного prompt недостаточно
curl --fail-with-body https://api.getapi.ru/v1/videos \
-H "Authorization: Bearer $GETAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3.1-lite",
"prompt": "Красный квадрат медленно движется на белом фоне",
"duration": 4,
"resolution": "720p",
"aspect_ratio": "16:9"
}'Сокращённый ответ
{
"id": "task_example",
"object": "video",
"model": "veo-3.1-lite",
"status": "queued",
"progress": 0
}Состояние
GET https://api.getapi.ru/v1/videos/{id}
Передайте тот же ключ и сохранённый ID. Проверяйте состояние с ограниченной частотой и общим сроком ожидания
curl --fail-with-body "https://api.getapi.ru/v1/videos/$VIDEO_ID" \ -H "Authorization: Bearer $GETAPI_API_KEY"
queued и in_progress означают ожидание или выполнение, completed означает завершение, failed означает ошибку. Неизвестное состояние обрабатывайте отдельно и прекращайте опрос после конечного статуса
Наличие progress: 100 само по себе не означает успех, читайте status
Загрузка файла
GET https://api.getapi.ru/v1/videos/{id}/content
После completed загрузите видео с авторизацией GetAPI
curl --fail-with-body --location \ "https://api.getapi.ru/v1/videos/$VIDEO_ID/content" \ -H "Authorization: Bearer $GETAPI_API_KEY" \ --output result.mp4
Проверьте, что получен читаемый видеофайл, а не JSON или HTML с ошибкой. Сохраните результат у себя, срок его доступности не гарантируется этой страницей
Провайдер и стоимость
Не переносите возможности provider.only из текстового API на Video. Принятое поле не подтверждает выбор исполнителя видеозадания
Предварительный резерв и окончательное списание могут различаться. Стоимость зависит от модели, длительности, разрешения, входных материалов и звука
В журнале могут быть отдельные записи резервирования и возврата остатка, см. стоимость и учёт
Ошибки и повторы
model_price_error с сообщением source media remains disabled означает, что передача исходного медиа для этого маршрута в GetAPI отключена. Повтор того же материала не устраняет ограничение
При сообщениях об MP4 quantities, WAV framing или объёме исходного медиа сервис не смог определить данные для резерва. Проверьте формат и сохраните полный ответ, HTTP-статус и ID запроса для поддержки
После таймаута сначала проверьте уже известный ID. Повтор создания может создать второе платное задание
При failed сохраните ID задания и сведения об ошибке, если они доступны. HTTP 200 при чтении состояния означает успешное чтение, результат генерации определяется полем status
Дополнительные сведения о видеозадании может вернуть GET /v1/tasks/{id}, в поле fail_reason. Передайте тот же ключ и ID. Этот ответ может не содержать данных расчёта, возврат резерва проверяйте по связанным проводкам
Для обращения в поддержку укажите модель, ID задания и время запроса