altrouter.ai
ОСНОВНОЕ

Видео

Генерация видео через /videos. Единственная асинхронная поверхность: запрос возвращается сразу, а готовность вы опрашиваете — рендер занимает минуты.

Как это работает

Создание рендера возвращает объект video со статусом queued и идентификатором vid_… . Дальше вы опрашиваете GET /videos/{id}, пока статус не станет completed (в поле url — готовый mp4) или failed (в поле error — причина). Деньги резервируются в момент создания и списываются только за удавшийся рендер; неудачный не стоит ничего.

PythoncURLJSON
import time, requests

h = {"Authorization": "Bearer ar-..."}

job = requests.post("https://api.altrouter.ai/v1/videos", headers=h, json={
    "model": "veo-3.1-fast",
    "prompt": "a drone shot over a rocky coastline at sunrise",
    "seconds": 8,
}).json()

while job["status"] in ("queued", "in_progress"):
    time.sleep(10)
    job = requests.get(f"https://api.altrouter.ai/v1/videos/{job['id']}", headers=h).json()

print(job["url"])

Оживление кадра

Передайте опорный кадр в поле image (URL или base64; для одного кадра принимается и input_reference) — роутер сам выберет image-to-video вариант модели. Некоторые модели (Hailuo 2.3) работают только так и без кадра вернут 400.

JSON
{
  "model": "hailuo-2.3",
  "prompt": "the dog turns its head and smiles at the camera",
  "seconds": 6,
  "image": ["https://example.com/dog.jpg"]
}

Длительность и цена

Длительность задаётся полем seconds (синоним — duration). Допустимые значения у каждой модели свои и указаны на её странице; значение вне диапазона обрезается до ближайшего допустимого. Большинство моделей тарифицируются посекундно, Veo — фиксированно за клип независимо от длины. Остальные ручки (разрешение, соотношение сторон, звук) — собственные параметры модели, см. её страницу в каталоге.

Скачивание

Готовый файл лежит по ссылке из url; тот же файл отдаёт GET /videos/{id}/content редиректом (302) — удобно, когда ссылку нужно отдать прямо в плеер или в загрузчик.

i
Ссылки провайдеров на сгенерированные видео живут около суток, поэтому мы сразу перекладываем результат в собственное хранилище и возвращаем постоянный URL на api.altrouter.ai/media. Он не протухает — см. Хранение данных.
ДалееОшибки