Skip to content

Video

Используйте POST /v1/video/generations для синхронной генерации видео. HTTP connection остается открытым, пока provider рендерит результат.

text
POST https://api.rout.my/v1/video/generations

Запрос

bash
curl --max-time 900 https://api.rout.my/v1/video/generations \
  -H "Authorization: Bearer $ROUTMY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "provider/video-model-id",
    "prompt": "A slow camera move across a glass cube on a white table",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "n": 1
  }'

Поля запроса

ПолеТипОбязательноеПримечания
modelstringДаТочный video model ID из /v1/models.
promptstring or objectДаText prompt или { "text": "...", "image": "..." } для image-to-video.
input_imagestringНетURL, data URI или raw base64 image для image-to-video.
input_image_b64stringНетЯвный base64 image input.
image, image_url, input_image_urlstringНетАлиасы для image input.
input_videostringНетURL, data URI или raw base64 source video для edit mode.
input_video_b64stringНетЯвный base64 source video input.
durationnumberНетДлительность в секундах. Максимум ограничивается server-side.
resolutionstringНет480p, 720p, 1080p, 4K или WIDTHxHEIGHT.
aspect_ratiostringНет16:9, 9:16, 1:1, 4:3, 3:4.
nintegerНетКоличество output videos. По умолчанию 1.
audiobooleanНетЯвное включение/выключение audio.
qualitystringНетdraft, std или pro.
negative_promptstringНетЧто избегать.
seedintegerНетSeed для deterministic generation, если поддерживается.
provider_optionsobjectНетProvider-specific options, пробрасываются дальше.
userstringНетClient-side user identifier.

Image-to-video

json
{
  "model": "provider/video-model-id",
  "prompt": {
    "text": "Animate this product with a slow turntable movement.",
    "image": "https://example.com/source.png"
  },
  "duration": 5,
  "resolution": "720p"
}

Base64 и data URI images временно публикуются как URL, если upstream provider требует URL input.

Video editing

json
{
  "model": "provider/video-model-id",
  "prompt": "Make the camera movement smoother and keep the same subject.",
  "input_video": "https://example.com/source.mp4",
  "duration": 5,
  "resolution": "720p"
}

input_video включает video-input accounting. Base64 videos можно передавать через input_video_b64; они временно хостятся, если нужно.

Ответ

json
{
  "created": 1744000000,
  "model": "provider/video-model-id",
  "duration": 5,
  "videos": [
    {
      "url": "https://api.rout.my/public/media/generated.mp4",
      "mime_type": "video/mp4"
    }
  ]
}

Generated video URLs временные. Если приложению нужно долгосрочное хранение, скачайте и перехостите видео.

Расход квоты

Video requests используют duration-based формулу:

text
tokens = duration_sec x 60,000 x resolution x audio x quality x video_input x n x token_multiplier

Частые коэффициенты:

FactorValueMultiplier
resolution480p0.7
resolution720p или 1K1.0
resolution1080p или 2K1.8
resolution4K2.5
audiooff1.0
audioon1.3
qualitydraft0.3
qualitystd или optimized1.0
qualitypro или lossless1.5
video inputabsent1.0
video inputpresent1.7

Перед вызовом провайдера rout.my оценивает worst-case cost по отсутствующим параметрам. Если квоты не хватает, запрос вернет 429 до начала генерации.

API documentation for rout.my.