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
}'Поля запроса
| Поле | Тип | Обязательное | Примечания |
|---|---|---|---|
model | string | Да | Точный video model ID из /v1/models. |
prompt | string or object | Да | Text prompt или { "text": "...", "image": "..." } для image-to-video. |
input_image | string | Нет | URL, data URI или raw base64 image для image-to-video. |
input_image_b64 | string | Нет | Явный base64 image input. |
image, image_url, input_image_url | string | Нет | Алиасы для image input. |
input_video | string | Нет | URL, data URI или raw base64 source video для edit mode. |
input_video_b64 | string | Нет | Явный base64 source video input. |
duration | number | Нет | Длительность в секундах. Максимум ограничивается server-side. |
resolution | string | Нет | 480p, 720p, 1080p, 4K или WIDTHxHEIGHT. |
aspect_ratio | string | Нет | 16:9, 9:16, 1:1, 4:3, 3:4. |
n | integer | Нет | Количество output videos. По умолчанию 1. |
audio | boolean | Нет | Явное включение/выключение audio. |
quality | string | Нет | draft, std или pro. |
negative_prompt | string | Нет | Что избегать. |
seed | integer | Нет | Seed для deterministic generation, если поддерживается. |
provider_options | object | Нет | Provider-specific options, пробрасываются дальше. |
user | string | Нет | 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Частые коэффициенты:
| Factor | Value | Multiplier |
|---|---|---|
| resolution | 480p | 0.7 |
| resolution | 720p или 1K | 1.0 |
| resolution | 1080p или 2K | 1.8 |
| resolution | 4K | 2.5 |
| audio | off | 1.0 |
| audio | on | 1.3 |
| quality | draft | 0.3 |
| quality | std или optimized | 1.0 |
| quality | pro или lossless | 1.5 |
| video input | absent | 1.0 |
| video input | present | 1.7 |
Перед вызовом провайдера rout.my оценивает worst-case cost по отсутствующим параметрам. Если квоты не хватает, запрос вернет 429 до начала генерации.