GGateYourWay API
SDK и клиенты EN Создать ключ
Video API

Генерация видео

Асинхронный API для Text-to-Video и Image-to-Video генерации на базе моделей Kling AI, WanX, MiniMax, Grok и Seedance. Запуск задачи, опрос готовности и скачивание MP4.

01

Модели и возможности

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

Модель и вендорРежимДлительностьРазрешение и форматЗвук / АудиоРеференсыТариф
kling-3.0Kling AIText-to-Video
Image-to-Video
3–15 сек720p, 1080p16:9, 9:16 (до 1080p)Родной AI-звук
settings.audio: "native"
До 2 фотоfirst_frame, last_frame$0.14 / сек
kling-3.0-omniKling AIT2V, Multi-ref, I2V3–15 сек720p, 1080p16:9, 9:16 (до 1080p)Родной AI-звук
settings.audio: "native"
До 4 фотопервый/последний + 3 референса$0.145 / сек
wan3.0-t2vAlibaba (WanX)Text-to-Video2–30 сек480p, 720p, 1080p16:9, 9:16Без звука—$0.038 / сек
wan3.0-i2vAlibaba (WanX)Image-to-Video2–30 сек480p, 720p, 1080p16:9, 9:16Без звука1 фотоfirst_frame (начало)$0.038 / сек
wan3.0-prime-t2vAlibaba (WanX Prime)Prime Text-to-Video2–30 сек480p, 720p, 1080p16:9, 9:16Без звука—$0.044 / сек
wan3.0-prime-i2vAlibaba (WanX Prime)Prime Image-to-Video2–30 сек480p, 720p, 1080p16:9, 9:16Без звука1 фотоfirst_frame (начало)$0.044 / сек
minimax_h3MiniMax (Hailuo H3)Мультимодальный T2V/I2V4–15 сек(по умолч. 5)480p, 768p, 1080p16:9, 9:16, 1:1, 3:4, 4:3, 21:9Аудио-референс
type: "audio"
До 9 фото, 3 видео, 3 аудио$0.024 / сек
grok-imagine-video-1.5xAI (Grok)Text-to-Video, I2V6–15 сек(по умолч. 6)480p, 720p16:9, 9:16, 1:1Без звукаДо 7 фотопервый/последний + референсы$0.180 / ген
seedance2.5-01-720ByteDance (Seedance)Длинное видео (Text/Multi-ref)30 сек(фиксированно)720p16:9, 9:16, 1:1, 3:4, 4:3, 21:9Без звукаДо 9 фото$0.480 / ген
02

Жизненный цикл задачи

Генерация видео выполняется асинхронно в три этапа.

  1. Создание задачи (POST /v1/videos): запрос валидирует параметры, рассчитывает стоимость и холдирует баланс. Возвращается JSON с id (например, task_01jvideo_example), статусом queued, а также ссылками poll_url и content_url.
  2. Опрос готовности (GET /v1/videos/{task_id}): клиент опрашивает статус каждые 10–15 секунд. Возможные статусы: queued, in_progress, completed, failed. При переходе в completed происходит окончательное списание средств. Если генерация не удалась, холд автоматически снимается без списания с баланса.
  3. Скачивание видео (GET /v1/videos/{task_id}/content): стриминг готового MP4 файла с поддержкой HTTP Range (код 206 Partial Content) для видеоплееров и потокового воспроизведения.
03

Управление звуком и аудио

Как указать синтез звука или передать референсный саундтрек.

  • Kling AI (kling-3.0, kling-3.0-omni): поддерживает синтез собственного звукового ряда (шум мотора, звуки природы, плеск воды, шаги, диалоги), согласованного с происходящим на видео. Для включения звука передайте в теле запроса:
    "settings": {"audio": "native"}.
    По умолчанию звук выключен ("settings": {"audio": "off"}). Также поддерживается кинематографичный режим нескольких планов: "settings": {"multi_shot": true}.
  • MiniMax Hailuo H3 (minimax_h3): поддерживает внешнее аудио-кондиционирование. Вы можете передать саундтрек или голосовую дорожку в массиве references с type: "audio":
    "references": [{"type": "audio", "url": "https://example.com/track.mp3"}]
    (Поддерживается до 3 аудиофайлов длительностью 2–15 секунд, размер до 15 МБ).
  • Alibaba WanX, ByteDance Seedance, xAI Grok: генерируют видео без звуковой дорожки (тихий MP4). При необходимости аудиоряда рекомендуется выбирать Kling 3.0 со звуком или накладывать аудиодорожку на готовый ролик.
04

Параметры запроса

Поля тела запроса для POST /v1/videos.

ПараметрТипОписание
modelstringОбязательное. ID видеомодели из каталога.
promptstringТекстовое описание сцены, движений объектов и камеры (обязательно для Text-to-Video).
secondsintegerДлительность видео в секундах. Kling: 3–15; WanX: 2–30; MiniMax: 4–15 (умолч. 5); Grok: 6–15 (умолч. 6); Seedance: 30 (фиксированно).
size / resolutionstringРазрешение видео: 480p, 720p, 768p, 1080p или точные размеры (1280x720, 1920x1080).
aspect_ratio / ratiostringСоотношение сторон: 16:9 (ландшафт), 9:16 (портрет/Reels/Shorts), 1:1, 3:4, 4:3, 21:9.
settingsobjectНастройки модели Kling AI: audio ("native" для AI-звука или "off") и multi_shot (boolean).
referencesarrayМассив референсов. Объекты с полями type ("image", "audio"), role ("first_frame", "last_frame", "reference") и url.
prompt_extendbooleanДля моделей WanX: автоматическое расширение промпта моделью переписывания (по умолчанию false).
05

Примеры запросов

Готовые примеры для cURL и Python.

bash
curl https://api.gateyourway.com/v1/videos \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer gyw-sk-YOUR_KEY" \
  -d '{
    "model": "kling-3.0",
    "prompt": "A cinematic aerial shot of ocean waves crashing on dark rocks at sunset with seagulls flying",
    "seconds": 5,
    "size": "1920x1080",
    "settings": {
      "audio": "native",
      "multi_shot": false
    }
  }'

json
{
  "id": "task_01jvideo_example",
  "status": "queued",
  "model": "kling-3.0",
  "seconds": 5,
  "poll_url": "/v1/videos/task_01jvideo_example",
  "content_url": "/v1/videos/task_01jvideo_example/content"
}
bash
curl https://api.gateyourway.com/v1/videos \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer gyw-sk-YOUR_KEY" \
  -d '{
    "model": "wan3.0-i2v",
    "prompt": "The camera slowly zooms in as gentle wind blows through cherry blossom petals",
    "seconds": 5,
    "size": "720p",
    "ratio": "16:9",
    "prompt_extend": false,
    "references": [
      {
        "type": "image",
        "role": "first_frame",
        "url": "https://example.com/start_frame.jpg"
      }
    ]
  }'
bash
curl https://api.gateyourway.com/v1/videos \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer gyw-sk-YOUR_KEY" \
  -d '{
    "model": "minimax_h3",
    "prompt": "A cyberpunk street market in neo-Tokyo with rain reflections and neon signs",
    "seconds": 6,
    "size": "768p",
    "aspect_ratio": "16:9",
    "references": [
      {
        "type": "audio",
        "url": "https://example.com/synthwave_bgm.mp3"
      }
    ]
  }'
bash
# 1. Проверка статуса (поллинг раз в 10-15 секунд):
curl https://api.gateyourway.com/v1/videos/task_01jvideo_example \
  -H "Authorization: Bearer gyw-sk-YOUR_KEY"

# Ответ при готовности:
# {
#   "id": "task_01jvideo_example",
#   "status": "completed",
#   "content_url": "/v1/videos/task_01jvideo_example/content"
# }

# 2. Скачивание готового MP4:
curl -L https://api.gateyourway.com/v1/videos/task_01jvideo_example/content \
  -H "Authorization: Bearer gyw-sk-YOUR_KEY" \
  --output video.mp4
python
import os
from pathlib import Path
import time
import requests

api_base = "https://api.gateyourway.com/v1"
user_key = os.getenv("GATEYOURWAY_API_KEY", "gyw-sk-YOUR_KEY")
req_headers = {
    "Authorization": f"Bearer {user_key}",
    "Content-Type": "application/json",
}

# 1. Запуск генерации видео с родным звуком (Kling 3.0)
payload = {
    "model": "kling-3.0",
    "prompt": "A vintage sports car driving fast along a scenic coastal highway at sunset",
    "seconds": 5,
    "size": "1920x1080",
    "settings": {
        "audio": "native",
        "multi_shot": False,
    },
}

resp = requests.post(f"{api_base}/videos", json=payload, headers=req_headers)
resp.raise_for_status()
task = resp.json()
task_id = str(task["id"])
print(f"Task created: {task_id}, status: {task.get('status')}")

# 2. Опрос статуса задачи
while True:
    time.sleep(10)
    poll_resp = requests.get(f"{api_base}/videos/{task_id}", headers=req_headers)
    poll_resp.raise_for_status()
    data = poll_resp.json()
    status = data.get("status")
    print(f"Current status: {status}")
    if status == "completed":
        break
    elif status == "failed":
        raise RuntimeError(f"Generation failed: {data.get('error')}")

# 3. Скачивание готового MP4 файла
print("Downloading MP4 video...")
video_resp = requests.get(f"{api_base}/videos/{task_id}/content", headers=req_headers)
video_resp.raise_for_status()
Path("video.mp4").write_bytes(video_resp.content)
print("Saved to video.mp4 successfully!")