Генерация видео
Генерация коротких видео через поддерживаемые видео-модели.
Скачать инструкцию для агента .mdМаршрут видео принимает любую доступную видео-модель из каталога. Формат запроса общий: текст, картинка на входе, видео на входе и дополнительные параметры передаются в один и тот же путь. Конкретные значения длительности, разрешения, звука и качества зависят от выбранной модели.
Маршрут
POST https://api.aigate.shop/v1/video/generationsAuthorization: Bearer sk-your-api-keyContent-Type: application/jsonТакже принимается совместимый путь POST /v1/videos. Для новых подключений используйте /v1/video/generations: после завершения генерации в ответе приходит массив videos со ссылкой на готовый файл.
Видео по тексту
curl --max-time 900 https://api.aigate.shop/v1/video/generations \ -H "Authorization: Bearer sk-your-api-key" \ -H "Content-Type: application/json" \ -d '{ "model": "provider/video-model-id", "prompt": "A cinematic shot of a glass sphere floating over a neon city", "duration": 5, "resolution": "720p", "aspect_ratio": "16:9", "audio": false, "n": 1 }'Kling
Для моделей Kling используйте тот же маршрут /v1/video/generations. Standard/Pro можно передавать через tier, mode или quality. Для motion-control передайте картинку персонажа и видео движения: input_video, character_orientation и keep_original_sound передаются как параметры модели.
curl --max-time 900 https://api.aigate.shop/v1/video/generations \ -H "Authorization: Bearer sk-your-api-key" \ -H "Content-Type: application/json" \ -d '{ "model": "klingai/kling-v3.0-t2v", "prompt": "A realistic cinematic product shot, slow dolly camera movement, natural light", "duration": 5, "resolution": "720p", "aspect_ratio": "16:9", "audio": false, "quality": "std", "negative_prompt": "text, watermark, blurry, distorted hands", "seed": 42, "n": 1, "provider_options": { "cfg_scale": 0.65 } }'curl --max-time 900 https://api.aigate.shop/v1/video/generations \ -H "Authorization: Bearer sk-your-api-key" \ -H "Content-Type: application/json" \ -d '{ "model": "klingai/kling-v3.0-motion-control", "prompt": { "text": "Make the character follow the reference motion.", "image": "https://example.com/character.png" }, "input_video": "https://example.com/reference-motion.mp4", "tier": "pro", "character_orientation": "image", "keep_original_sound": false, "camera_control": "simple", "cfg_scale": 0.65 }'Видео по картинке
Исходную картинку можно передать двумя способами. Удобный вариант - объект prompt с text и image. Если клиенту проще держать prompt строкой, используйте input_image, input_image_url, image_url, image или input_image_b64.
curl --max-time 900 https://api.aigate.shop/v1/video/generations \ -H "Authorization: Bearer sk-your-api-key" \ -H "Content-Type: application/json" \ -d '{ "model": "provider/video-model-id", "prompt": { "text": "Animate this frame: slow camera push-in, soft light, smooth motion", "image": "https://picsum.photos/seed/aigate-video-frame/1024/768" }, "duration": 5, "resolution": "720p", "aspect_ratio": "16:9", "audio": false, "n": 1 }'curl --max-time 900 https://api.aigate.shop/v1/video/generations \ -H "Authorization: Bearer sk-your-api-key" \ -H "Content-Type: application/json" \ -d '{ "model": "provider/video-model-id", "prompt": "Turn the reference image into a short looping product shot", "input_image": "https://picsum.photos/seed/aigate-video-product/1024/1024", "duration": 5, "resolution": "720p", "aspect_ratio": "1:1", "audio": false }'Видео на входе
Для моделей, которые умеют менять или продолжать видео, передавайте один исходный ролик через input_video. Если нужно дать несколько видео-референсов, используйте reference_videos. Если модель не поддерживает видео на входе, API вернет ошибку по параметрам.
curl --max-time 900 https://api.aigate.shop/v1/video/generations \ -H "Authorization: Bearer sk-your-api-key" \ -H "Content-Type: application/json" \ -d '{ "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", "aspect_ratio": "16:9", "provider_options": { "style": "cinematic" } }'Несколько референсов и аудио
Если модель поддерживает несколько референсов, используйте reference_images, reference_videos или reference_urls. Для видео-референса передавайте input_video, когда нужен один клип, или reference_videos, когда клипов несколько. Для внешней аудиодорожки используйте input_audio, input_audio_b64 или audio_url. Поддержка зависит от выбранной модели: если режим не поддерживается, API вернет ошибку параметров.
curl --max-time 900 https://api.aigate.shop/v1/video/generations \ -H "Authorization: Bearer sk-your-api-key" \ -H "Content-Type: application/json" \ -d '{ "model": "bytedance/seedance-2.0-fast", "prompt": "Use the image references for characters, the video reference for motion, and sync the result to the audio.", "reference_images": [ "https://example.com/character.png", "https://example.com/background.png" ], "reference_videos": [ "https://example.com/motion.mp4" ], "input_audio": "https://example.com/music.mp3", "duration": 5, "resolution": "480p", "aspect_ratio": "16:9", "n": 1 }'Ответ
{ "created": 1780047578, "model": "provider/video-model-id", "duration": 5, "videos": [ { "url": "https://api.aigate.shop/v1/videos/task_qZj21ARTSQzsyHoh82QBs7oPwnKvCOIu/content", "mime_type": "video/mp4" } ]}Сохранить файл
import { writeFile } from "node:fs/promises";const videoUrl = response.videos[0].url;const file = await fetch(videoUrl);if (!file.ok) { throw new Error(await file.text());}writeFile("aigate-video.mp4", Buffer.from(await file.arrayBuffer()));Поля запроса
| Поле | Обяз. | Что значит |
|---|---|---|
| model | да | Точный id видео-модели из каталога или /v1/models. |
| prompt | да | Описание ролика. Можно передать строку или объект { text, image } для картинки на входе. |
| input_image / image_url / image / input_image_url | нет | Картинка на входе: ссылка, data URL или значение, которое поддерживает выбранная модель. Для Seedance image + audio лучше используйте reference_images. |
| input_image_b64 | нет | Картинка в base64 без отдельной ссылки. |
| input_video | нет | Видео на входе для моделей, которые умеют менять или продолжать ролик. |
| input_video_b64 | нет | Видео в base64 без отдельной ссылки. |
| input_audio / audio_url | нет | Внешняя аудиодорожка для моделей, которые умеют синхронизировать звук. Для Seedance по текущему каналу используйте аудио 1-15 секунд; длиннее 15 секунд не проходит. |
| input_audio_b64 | нет | Аудио в base64 без отдельной ссылки. |
| reference_images | нет | Одна или несколько картинок-референсов, если выбранная модель поддерживает такой режим. |
| reference_videos | нет | Один или несколько видео-референсов, если модель принимает видео на входе. |
| reference_urls | нет | Универсальный список ссылок на референсы для reference-to-video моделей. |
| last_frame_image / image_tail | нет | Финальный кадр для моделей first/last-frame. |
| duration | нет | Длина ролика в секундах. Пределы зависят от модели. |
| resolution | нет | Например 480p, 720p, 1080p, 4K или WIDTHxHEIGHT. Поддержка зависит от модели. |
| aspect_ratio | нет | 16:9, 9:16, 1:1, 4:3, 3:4 |
| n | нет | Количество роликов. Если не указано, обычно создается один. |
| audio | нет | Включить или выключить звук, если модель это поддерживает. |
| sound | нет | Строковый переключатель звука для моделей, где провайдер использует on/off. |
| quality / mode / tier | нет | Качество или режим: draft, std, pro, 4k, single, multi и похожие значения, если модель принимает такой параметр. |
| camera_control / camera_control_config | нет | Управление камерой для моделей Kling, которые принимают camera control. |
| character_orientation | нет | Ориентация персонажа для Kling motion-control: обычно image или video. |
| keep_original_sound | нет | Сохранить звук из исходного видео для motion-control, если модель поддерживает. |
| voice_list | нет | Голоса для Kling voice-control. В prompt используйте маркеры <<<voice_1>>>. |
| poll_timeout_ms / poll_interval_ms | нет | Настройка ожидания долгой задачи у провайдера. |
| negative_prompt | нет | Что не нужно добавлять в ролик. |
| seed | нет | Число для повторяемой генерации, если модель поддерживает. |
| user | нет | Ваш идентификатор пользователя на стороне клиента. Нужен только если вы сами ведете такой учет. |
| provider_options / metadata | нет | Дополнительные параметры конкретной модели. metadata принимается как совместимый вариант. |
Ошибки
| Status | code | Причина | Что делать |
|---|---|---|---|
| 401 | http_401 | Ключ неверный или не передан. | Проверьте Authorization: Bearer sk-... |
| 404 | not_found | Неверный путь, id задачи или модель не найдена. | Проверьте маршрут, id модели и ссылку. |
| 410 | http_410 | Ссылка на файл истекла. | Сгенерируйте ролик заново или скачайте его в течение 20 минут. |
| 429 | insufficient_quota | Недостаточно баланса или лимита для запроса. | Пополните баланс или уменьшите параметры генерации. |
| 500/502/503 | api_error | Модель временно не смогла обработать видео. | Повторите позже, уменьшите параметры или выберите другую доступную модель. |
{ "error": { "message": "Video link expired", "type": "invalid_request_error", "code": "http_410", "status": 410 }}