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

# Інструкція з інтеграції API генерації відео Veo

> Veo Video Generation API guide - Ace Data Cloud

У цій статті буде представлено інструкцію з інтеграції API генерації відео Veo, яка дозволяє генерувати офіційні відео Veo за допомогою введення користувацьких параметрів.

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

Щоб використовувати API генерації відео Veo, спочатку перейдіть до [консолі Ace Data Cloud](https://platform.acedata.cloud/console/applications), щоб отримати ваш API Token, зберігши його для подальшого використання.

![](https://cdn.acedata.cloud/5hmkdg.jpg)

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

**Один API Token дозволяє викликати всі послуги платформи, не потрібно окремо подавати заявку на кожну послугу.** Перший запит на отримання токена надає безкоштовний ліміт, щоб ви могли безкоштовно протестувати; якщо ліміт вичерпано, ви можете поповнити загальний баланс в [консолі](https://platform.acedata.cloud/console/coin).

> 📘 Повна документація: [API генерації відео Veo →](https://platform.acedata.cloud/documents/veo-videos)

## Основне використання

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

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

Ми бачимо, що тут налаштовані заголовки запиту, включаючи:

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

Також налаштовано тіло запиту, яке включає:

* `model`: модель для генерації відео, основні моделі - `veo31-fast`, `veo3`, `veo31`, `veo3-fast` та `veo31-fast-ingredients`.
* `action`: дія для завдання генерації відео, основні дії: генерація відео з тексту (`text2video`), генерація відео з зображення (`image2video`), отримання відео 1080p (`get1080p`).
* `image_urls`: при виборі дії генерації відео з зображення `image2video` необхідно завантажити посилання на зображення. `veo31-fast-ingredients` підтримує до 3 зображень (змішування кількох зображень), інші моделі - до 2 зображень (режим початкового та кінцевого кадрів).
* `resolution`: вибір роздільної здатності генерованого відео, модель veo31 підтримує 4k, інші моделі не підтримують, всі моделі підтримують 1080p та gif роздільну здатність, якщо це значення не передано, за замовчуванням використовується 720p, основні варіанти: `1080p`, `gif`, `4k`.
* `prompt`: підказка.
* `callback_url`: URL для отримання результатів.
* `async`: необов'язковий, якщо встановити в `true`, інтерфейс негайно поверне `task_id`, не потрібно надавати `callback_url`, потім через відповідний інтерфейс запиту завдань можна опитувати для отримання результатів.

### 📌 Підсумок опису моделей

| **Назва моделі**           | **Підтримувані режими**                                                                                                           | **Правила введення зображень**                                                                          |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| **veo3-fast**              | Генерація відео з тексту (без зображень)<br />Генерація відео з зображення (з зображеннями)                                       | **1 зображення** → режим початкового кадру<br />**2 зображення** → режим початкового та кінцевого кадру |
| **veo31-fast**             | Генерація відео з тексту (без зображень)<br />Генерація відео з зображення (з зображеннями)                                       | **1 зображення** → режим початкового кадру<br />**2 зображення** → режим початкового та кінцевого кадру |
| **veo31-fast-ingredients** | ❌ Генерація відео з тексту (не підтримується)<br />✅ **Обов'язкове змішування кількох зображень** (необхідно передати зображення) | **1-3 зображення** → режим змішування кількох зображень (максимум 3 зображення)                         |
| **veo3**                   | Генерація відео з тексту (без зображень)<br />Генерація відео з зображення (з зображеннями)                                       | **1 зображення** → режим початкового кадру<br />**2 зображення** → режим початкового та кінцевого кадру |
| **veo31**                  | Генерація відео з тексту (без зображень)<br />Генерація відео з зображення (з зображеннями)                                       | **1 зображення** → режим початкового кадру<br />**2 зображення** → режим початкового та кінцевого кадру |

***

### 🔑 Опис ключових правил

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

* **Швидкісний режим**: `veo3-fast`, `veo31-fast`, `veo31-fast-ingredients`.
* **Якісний режим**: `veo3`, `veo31` (генерація з вищою якістю).

***

### ⚠️ Зверніть увагу

* **Єдиний обов'язковий режим з введенням зображень**: `veo31-fast-ingredients` обов'язково вимагає введення зображень (1-3 зображення), інакше не зможе працювати.
* **Обмеження на кількість зображень**:
  * `veo31-fast-ingredients` підтримує **1-3 зображення** (режим змішування кількох зображень).
  * Інші моделі підтримують максимум **2 зображення** (режим початкового та кінцевого кадру).

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

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

Натисніть кнопку «Спробувати», щоб провести тестування, як показано на малюнку, ми отримали наступний результат:

```json theme={null}
{
  "success": true,
  "task_id": "697ea2fc-58fd-48c8-8191-29041ff23c3c",
  "trace_id": "70e1cb12-c619-4292-a416-90191205996b",
  "data": [
    {
      "id": "24ac06a5-9cc7-448f-802e-0b4db19f6e96",
      "video_url": "https://platform2.cdn.acedata.cloud/veo/f5389ec0-2eb5-4212-b4a8-04b513b0129a.mp4",
      "created_at": "2026-06-30T04:01:50.364Z",
      "complete_at": "2026-06-30T04:03:20.495Z",
      "state": "succeeded"
    }
  ]
}
```

Повернене значення містить кілька полів, опис яких наведено нижче:

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

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

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

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

## Функція створення відео з зображень

Якщо ви хочете створити відео на основі зображень з початку та кінця, ви можете встановити параметр `action` на `image2video` і ввести масив посилань на зображення `image_urls`.

Далі нам потрібно заповнити наступний крок, щоб розширити підказки для налаштування створення відео, можна вказати такі параметри:

* `model`：модель для створення відео, основні варіанти: `veo31-fast`、`veo3`、`veo31`、`veo3-fast` та `veo31-fast-ingredients`.
* `image_urls`：коли вибирається дія створення відео `image2video`, потрібно завантажити посилання на референсні зображення.
* `prompt`：підказка.

Приклад заповнення виглядає так:

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

Після заповнення автоматично згенерувався код, як показано нижче:

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

Відповідний код на Python:

```python theme={null}
import requests

url = "https://api.acedata.cloud/veo/videos"

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

payload = {
    "action": "image2video",
    "model": "veo31-fast",
    "prompt": "Нехай танцює",
    "image_urls": ["https://cdn.acedata.cloud/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.acedata.cloud/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.acedata.cloud/hacabc.png" width="500" className="m-auto" />
</p>

Тоді можна побачити, що ID відео:

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

> Зверніть увагу, що тут `video_id` у відео є ID згенерованого відео, якщо ви не знаєте, як згенерувати відео, ви можете звернутися до попереднього базового використання для створення відео.

Далі нам потрібно заповнити наступний крок, щоб розширити підказки для налаштування створення відео, можна вказати такі параметри:

* `model`：модель для створення відео, основні варіанти: `veo31-fast`、`veo3`、`veo31`、`veo3-fast` та `veo31-fast-ingredients`.
* `video_id`：ID референсного відео, використовується для отримання 1080p відео.

Приклад заповнення виглядає так:

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

Після заповнення автоматично згенерувався код, як показано нижче:

<p>
  <img src="https://cdn.acedata.cloud/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.acedata.cloud/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`：модель для створення відео, основні варіанти: `veo31-fast`、`veo3`、`veo31`、`veo3-fast` та `veo31-fast-ingredients`.
* `aspect_ratio`：розмір відео, наразі підтримуються: `16:9`、`16:9`、`3:4`、`4:3`、`1:1`，за замовчуванням `16:9`.
* `translation`：чи включити автоматичний переклад підказок, за замовчуванням `false`.
  Приклад заповнення виглядає так:

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

Після заповнення автоматично згенерувався код, як показано нижче:

<p>
  <img src="https://cdn.acedata.cloud/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.acedata.cloud/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`, яке представляє поточний ID завдання. Коли завдання завершено, результати генерації відео будуть надіслані на вказаний клієнтом `callback_url` у форматі POST JSON, в якому також буде включено поле `task_id`, таким чином результати завдання можна буде пов'язати за ID.

Далі ми розглянемо приклад, щоб зрозуміти, як саме це працює.

По-перше, Webhook зворотний виклик — це сервіс, який може приймати HTTP запити, розробники повинні замінити його на URL свого власного HTTP сервера. Для зручності демонстрації використовується публічний сайт з прикладом Webhook [https://webhook.site/](https://webhook.site/), відкривши цей сайт, ви отримаєте URL Webhook, як показано на малюнку:

![](https://cdn.acedata.cloud/tbcnai.png)

Скопіюйте цей URL, і ви зможете використовувати його як Webhook, приклад тут: `https://webhook.site/aed5cd28-f8aa-4dca-9480-8ec9b42137dc`.

Далі ми можемо встановити поле `callback_url` на вказаний Webhook URL, одночасно заповнивши відповідні параметри, конкретний зміст, як показано на малюнку:

<p>
  <img src="https://cdn.acedata.cloud/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.acedata.cloud/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.acedata.cloud/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, вводячи підказки та зображення першого кадру для генерації відео. Сподіваємося, що цей документ допоможе вам краще інтегрувати та використовувати цей API. Якщо у вас є будь-які питання, будь ласка, звертайтеся до нашої команди технічної підтримки.
