> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xhuoapi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Veo Videos Generation API интеграция

> Veo Video Generation 集成指南 - XHuoAPI

В данной статье будет представлено руководство по интеграции Veo Videos Generation API, который позволяет генерировать официальные видео Veo с помощью ввода пользовательских параметров.

## Процесс подачи заявки

Чтобы использовать API, сначала необходимо перейти на страницу [Veo Videos Generation API](https://api.xhuoapi.ai/documents/63e01dc3-eb21-499e-8049-3025c460058f) и подать заявку на соответствующую услугу. После перехода на страницу нажмите кнопку «Acquire», как показано на изображении:

![](https://cdn.xhuoapi.ai/q6ytrc.png)

Если вы еще не вошли в систему или не зарегистрированы, вас автоматически перенаправит на страницу входа, где вам будет предложено зарегистрироваться и войти. После регистрации и входа вы автоматически вернетесь на текущую страницу.

При первой подаче заявки предоставляется бесплатный лимит, который позволяет бесплатно использовать данный API.

## Основное использование

Сначала необходимо понять основные способы использования, а именно вводить подсказку `prompt`, действие `action`, массив ссылок на изображения для начальных и конечных кадров `image_urls`, а также модель `model`, чтобы получить обработанный результат. Сначала нужно просто передать поле `action`, значение которого будет `text2video`. Оно включает три основных действия: создание видео из текста (`text2video`), создание видео из изображения (`image2video`), получение видео в 1080p (`get1080p`). Затем нам также нужно ввести модель `model`, в настоящее время доступны следующие модели: `veo2`, `veo2-fast`, `veo3`, `veo31`, `veo31-fast`, `veo31-fast-ingredients` и `veo3-fast`, конкретное содержание представлено ниже:

<p>
  <img src="https://cdn.xhuoapi.ai/vv5pe8.png" width="500" className="m-auto" />
</p>

Мы видим, что здесь установлены заголовки запроса, включая:

* `accept`: формат ответа, который вы хотите получить, здесь указывается `application/json`, то есть формат JSON.
* `authorization`: ключ для вызова API, который можно выбрать из выпадающего списка после подачи заявки.

Также установлен тело запроса, включая:

* `model`: модель для генерации видео, в основном `veo2`, `veo2-fast`, `veo3`, `veo31`, `veo31-fast`, `veo31-fast-ingredients` и `veo3-fast`.
* `action`: действие для данной задачи генерации видео, которое включает три основных действия: создание видео из текста (`text2video`), создание видео из изображения (`image2video`), получение видео в 1080p (`get1080p`).
* `image_urls`: ссылки на изображения, которые необходимо загрузить при выборе действия создания видео из изображения `image2video`, максимум можно загрузить три ссылки на изображения.
* `resolution`: выбор разрешения для генерируемого видео, модель veo31 поддерживает 4k разрешение, другие модели не поддерживают, все модели поддерживают 1080p и gif разрешение, если это значение не передано, по умолчанию используется разрешение 720p, основные варианты: `1080p`, `gif`, `4k`.
* `prompt`: подсказка.
* `callback_url`: URL для обратного вызова результата.

### 📌 Резюме описания моделей

| **Название модели**        | **Поддерживаемые режимы**                                                                                                       | **Правила ввода изображений**                                                                      |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| **veo2-fast**              | Создание видео из текста (без изображений)<br />Создание видео из изображения (с изображениями)                                 | Поддерживает только **1 изображение** → режим первого кадра                                        |
| **veo3-fast**              | Создание видео из текста (без изображений)<br />Создание видео из изображения (с изображениями)                                 | **1 изображение** → режим первого кадра<br />**3 изображения** → режим первого и последнего кадров |
| **veo31-fast**             | Создание видео из текста (без изображений)<br />Создание видео из изображения (с изображениями)                                 | **1 изображение** → режим первого кадра<br />**3 изображения** → режим первого и последнего кадров |
| **veo31-fast-ingredients** | ❌ Создание видео из текста (не поддерживается)<br />✅ **Обязательное слияние нескольких изображений** (изображения обязательны) | **1-3 изображения** → режим слияния нескольких изображений (максимум 3 изображения)                |
| **veo2**                   | Создание видео из текста (без изображений)<br />Создание видео из изображения (с изображениями)                                 | **1 изображение** → режим первого кадра<br />**3 изображения** → режим первого и последнего кадров |
| **veo3**                   | Создание видео из текста (без изображений)<br />Создание видео из изображения (с изображениями)                                 | **1 изображение** → режим первого кадра<br />**3 изображения** → режим первого и последнего кадров |
| **veo31**                  | Создание видео из текста (без изображений)<br />Создание видео из изображения (с изображениями)                                 | **1 изображение** → режим первого кадра<br />**3 изображения** → режим первого и последнего кадров |

***

### 🔑 Объяснение ключевых правил

1. **Общая логика**:
   * **Без ввода изображений** → автоматически активируется режим создания видео из текста.
   * **С вводом изображений** → активируется режим создания видео из изображения (конкретное действие зависит от количества изображений).
2. **Типы режима создания видео из изображения**:
   * **Режим первого кадра** (1 изображение): первый кадр фиксируется как входное изображение.
   * **Режим первого и последнего кадров** (2 изображения): первый и последний кадры фиксируются как входные изображения.
   * **Режим слияния нескольких изображений** (1-3 изображения): поддерживается только `veo31-fast-ingredients`, слияние содержимого нескольких изображений для генерации видео.
3. **Классификация режимов**:
   * **Быстрый режим**: `veo2-fast`, `veo3-fast`, `veo31-fast`, `veo31-fast-ingredients`.
   * **Качественный режим**: `veo2`, `veo3`, `veo31` (выше качество генерации).

***

### ⚠️ Важные замечания

* **Единственная модель, требующая обязательного ввода изображений**: `veo31-fast-ingredients` требует передачи изображений (1-3 изображения), иначе не сможет работать.
* **Ограничение на количество изображений**:
  * За исключением `veo31-fast-ingredients`, другие модели поддерживают максимум **3 изображения** для ввода.

После выбора вы также можете увидеть сгенерированный код справа, как показано на изображении:

<p>
  <img src="https://cdn.xhuoapi.ai/pmwh4y.png" width="500" className="m-auto" />
</p>

Нажмите кнопку «Try», чтобы провести тестирование, как показано на изображении выше, и мы получили следующий результат:

```json theme={null}
{
  "success": true,
  "task_id": "dd01fc69-e1f7-4b68-aa8c-463f6b748d11",
  "trace_id": "9906dac0-1516-41dc-9fe3-067ca1ba8269",
  "data": [
    {
      "id": "253eedc47f1c4eb2a370ed2312168f4b",
      "video_url": "https://platform.cdn.xhuoapi.ai/veo/dd01fc69-e1f7-4b68-aa8c-463f6b748d11.mp4",
      "created_at": "2025-07-25 16:07:43",
      "complete_at": "2025-07-25 16:10:28",
      "state": "succeeded"
    }
  ]
}
```

Возвращаемый результат содержит несколько полей, описание которых представлено ниже:

* `success`，в данный момент состояние задачи по генерации видео.
* `task_id`，в данный момент ID задачи по генерации видео.
* `data`，в данный момент результат задачи по генерации видео.
  * `id`，в данный момент ID видео задачи по генерации видео.
  * `video_url`，в данный момент ссылка на видео задачи по генерации видео.
  * `created_at`，в данный момент время создания задачи по генерации видео.
  * `complete_at`，в данный момент время завершения задачи по генерации видео.
  * `state`，в данный момент состояние задачи по генерации видео.

Можно увидеть, что мы получили удовлетворительную информацию о видео, нам нужно только получить сгенерированное видео Veo по ссылке на видео в результате `data`.

Кроме того, если вы хотите сгенерировать соответствующий код интеграции, вы можете просто скопировать его, например, код CURL выглядит следующим образом:

```shell theme={null}
curl -X POST 'https://api.xhuoapi.ai/v1/veo/videos' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "action": "text2video",
  "model": "veo2",
  "prompt": "Белая керамическая кружка с кофе на блестящем мраморном столешнице при утреннем свете из окна. Камера медленно вращается на 360 градусов вокруг кружки, на мгновение останавливаясь на ручке."
}'
```

## Функция генерации видео из изображений

Если вы хотите сгенерировать видео на основе изображений начального и конечного кадров, вы можете установить параметр `action` в `image2video` и ввести массив ссылок на изображения начального и конечного кадров `image_urls`.

Далее нам необходимо заполнить следующий шаг, чтобы расширить подсказки для настройки генерации видео, можно указать следующее содержимое:

* `model`：модель для генерации видео, в основном это `veo2`, `veo2-fast`, `veo3` и `veo3-fast`.
* `image_urls`：при выборе действия генерации видео из изображений `image2video` необходимо загрузить ссылки на изображения начального и конечного кадров.
* `prompt`：подсказка.

Пример заполнения выглядит следующим образом:

<p>
  <img src="https://cdn.xhuoapi.ai/8wvlqd.png" width="500" className="m-auto" />
</p>

После заполнения автоматически сгенерировался следующий код:

<p>
  <img src="https://cdn.xhuoapi.ai/tgzfxi.png" width="500" className="m-auto" />
</p>

Соответствующий код на Python:

```python theme={null}
import requests

url = "https://api.xhuoapi.ai/v1/veo/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "action": "image2video",
    "model": "veo2",
    "prompt": "Пусть танцует",
    "image_urls": ["https://cdn.xhuoapi.ai/7p1jhy.png"]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

Нажав "Запустить", можно увидеть результат, как показано ниже:

```json theme={null}
{
  "success": true,
  "task_id": "98e309f3-35bc-438d-8cb3-4015fc864b87",
  "trace_id": "8bc68066-36de-41ef-ae5e-b7d61ff6aee8",
  "data": [
    {
      "id": "59f12222b1fa4fbe9331ff2400ad1583",
      "video_url": "https://platform.cdn.xhuoapi.ai/veo/98e309f3-35bc-438d-8cb3-4015fc864b87.mp4",
      "created_at": "2025-07-25 16:13:07",
      "complete_at": "2025-07-25 16:16:12",
      "state": "succeeded"
    }
  ]
}
```

Можно увидеть, что содержимое результата совпадает с вышеупомянутым, что и реализует функцию генерации видео из изображений.

## Функция получения видео в 1080p

Если вы хотите получить 1080p для уже сгенерированного видео Veo, вы можете установить параметр `action` в `get1080p` и ввести ID видео, для которого нужно получить 1080p. ID видео можно получить на основе базового использования, как показано на следующем изображении:

<p>
  <img src="https://cdn.xhuoapi.ai/hacabc.png" width="500" className="m-auto" />
</p>

В этот момент можно увидеть, что ID видео равен:

```json theme={null}
"id": "59f12222b1fa4fbe9331ff2400ad1583"
```

> Обратите внимание, что здесь `video_id` видео является ID сгенерированного видео. Если вы не знаете, как сгенерировать видео, вы можете обратиться к базовому использованию, описанному выше.

Далее нам необходимо заполнить следующий шаг, чтобы расширить подсказки для настройки генерации видео, можно указать следующее содержимое:

* `model`：модель для генерации видео, в основном это `veo2`, `veo2-fast`, `veo3` и `veo3-fast`.
* `video_id`：ID видео для получения 1080p.

Пример заполнения выглядит следующим образом:

<p>
  <img src="https://cdn.xhuoapi.ai/k56fhn.png" width="500" className="m-auto" />
</p>

После заполнения автоматически сгенерировался следующий код:

<p>
  <img src="https://cdn.xhuoapi.ai/8gn4cr.png" width="500" className="m-auto" />
</p>

Нажав "Запустить", можно увидеть результат, как показано ниже:

```json theme={null}
{
  "success": true,
  "task_id": "47a51cfe-2e24-4aba-93b3-546c2dc52984",
  "trace_id": "a8922eec-6f50-4f77-8104-00ded071d59d",
  "data": [
    {
      "id": "59f12222b1fa4fbe9331ff2400ad1583",
      "video_url": "https://platform.cdn.xhuoapi.ai/veo/47a51cfe-2e24-4aba-93b3-546c2dc52984.mp4",
      "created_at": "2025-07-25 16:13:07",
      "complete_at": "2025-07-25 16:16:12",
      "state": "succeeded"
    }
  ]
}
```

Можно увидеть, что содержимое результата совпадает с вышеупомянутым, что и реализует функцию получения видео в 1080p.

## Генерация видео с заданными размерами

Если вы хотите задать пользовательский размер для сгенерированного видео Veo, вы можете установить параметр `aspect_ratio` на желаемый размер. Далее нам необходимо заполнить следующий шаг, чтобы расширить подсказки для настройки генерации видео, можно указать следующее содержимое:

* `model`：модель для генерации видео, в основном это `veo2`, `veo2-fast`, `veo3` и `veo3-fast`.
* `aspect_ratio`：размер видео, в настоящее время поддерживаются: `16:9`, `16:9`, `3:4`, `4:3`, `1:1`, по умолчанию `16:9`.
* `translation`：включить ли автоматический перевод подсказок, по умолчанию `false`.
  Пример заполнения выглядит следующим образом:

<p>
  <img src="https://cdn.xhuoapi.ai/xau4cm.png" width="500" className="m-auto" />
</p>

После заполнения автоматически сгенерировался следующий код:

<p>
  <img src="https://cdn.xhuoapi.ai/55r589.png" width="500" className="m-auto" />
</p>

Нажав "Запустить", можно увидеть результат, как показано ниже:

```json theme={null}
{
  "success": true,
  "task_id": "d2b93290-ab0e-4d20-ae45-60c062a32687",
  "trace_id": "9834e64d-c8fe-43ae-8114-ee2b5f93d886",
  "data": [
    {
      "id": "fc667e7d3b8f44beaa61a3c339af0e50",
      "video_url": "https://platform.cdn.xhuoapi.ai/veo/d2b93290-ab0e-4d20-ae45-60c062a32687.mp4",
      "created_at": "2025-08-24 20:09:06",
      "complete_at": "2025-08-24 20:10:45",
      "state": "succeeded"
    }
  ]
}
```

Можно увидеть, что содержимое результата соответствует вышеупомянутому, что также реализует функцию генерации видео заданного размера.

## Асинхронный обратный вызов

Поскольку время генерации видео с помощью API Veo Videos Generation относительно долгое, примерно 1-2 минуты, если API долго не отвечает, HTTP-запрос будет поддерживать соединение, что приведет к дополнительному потреблению системных ресурсов, поэтому этот API также предоставляет поддержку асинхронных обратных вызовов.

Общий процесс таков: когда клиент инициирует запрос, дополнительно указывается поле `callback_url`, после того как клиент инициирует API-запрос, API немедленно возвращает результат, содержащий информацию о поле `task_id`, представляющем текущий идентификатор задачи. Когда задача завершена, результат генерации видео будет отправлен на указанный клиентом `callback_url` в формате POST JSON, который также включает поле `task_id`, таким образом, результат задачи можно связать по ID.

Ниже мы рассмотрим пример, чтобы понять, как именно это работает.

Во-первых, Webhook обратный вызов — это служба, которая может принимать HTTP-запросы, разработчики должны заменить его на URL своего собственного HTTP-сервера. Здесь для удобства демонстрации используется публичный сайт примера Webhook [https://webhook.site/](https://webhook.site/), открыв этот сайт, вы получите URL Webhook, как показано на изображении:

![](https://cdn.xhuoapi.ai/tbcnai.png)

Скопировав этот URL, вы можете использовать его в качестве Webhook, пример здесь: `https://webhook.site/aed5cd28-f8aa-4dca-9480-8ec9b42137dc`.

Далее мы можем установить поле `callback_url` на указанный выше URL Webhook, одновременно заполнив соответствующие параметры, конкретное содержимое показано на изображении:

<p>
  <img src="https://cdn.xhuoapi.ai/rgivs2.png" width="500" className="m-auto" />
</p>

Нажав "Запустить", можно сразу получить результат, как показано ниже:

```json theme={null}
{
  "task_id": "1ebe4f2b-59ba-4385-a4ea-0ce8a3fe12ed"
}
```

Подождав немного, мы можем наблюдать результат генерации видео на `https://webhook.site/aed5cd28-f8aa-4dca-9480-8ec9b42137dc`, как показано на изображении:

![](https://cdn.xhuoapi.ai/238i32.png)

Содержимое следующее:

```json theme={null}
{
  "success": true,
  "task_id": "1ebe4f2b-59ba-4385-a4ea-0ce8a3fe12ed",
  "trace_id": "d1d53c04-58c5-4c40-bb63-f00188540e56",
  "data": [
    {
      "id": "2f43ceed37944b4d836e1a1899dad0a1",
      "video_url": "https://platform.cdn.xhuoapi.ai/veo/1ebe4f2b-59ba-4385-a4ea-0ce8a3fe12ed.mp4",
      "created_at": "2025-07-25 17:19:20",
      "complete_at": "2025-07-25 17:21:45",
      "state": "succeeded"
    }
  ]
}
```

Можно увидеть, что в результате есть поле `task_id`, остальные поля аналогичны вышеупомянутым, с помощью этого поля можно связать задачи.

## Обработка ошибок

При вызове API, если возникает ошибка, API возвращает соответствующий код ошибки и информацию. Например:

* `400 token_mismatched`: Неверный запрос, возможно, из-за отсутствия или недействительных параметров.
* `400 api_not_implemented`: Неверный запрос, возможно, из-за отсутствия или недействительных параметров.
* `401 invalid_token`: Неавторизован, недействительный или отсутствующий токен авторизации.
* `429 too_many_requests`: Слишком много запросов, вы превысили лимит частоты.
* `500 api_error`: Внутренняя ошибка сервера, что-то пошло не так на сервере.

### Пример ответа об ошибке

```json theme={null}
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## Заключение

С помощью этого документа вы узнали, как использовать API Veo Videos Generation для генерации видео с помощью ввода подсказок и изображения первого кадра. Надеемся, что этот документ поможет вам лучше интегрировать и использовать этот API. Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь обращаться в нашу техническую поддержку.
