Endpoint
Генерация видео
/api/video/jobsСоздаёт задачу генерации видео. UI дальше показывает jobId и опрашивает статус.
Проверка connect
Кнопка отправляет тестовый запрос и показывает реальный ответ. Если backend ещё не готов — можно вывести рыбный пример.
Тестовый request body
{
"brandId": "brand_123",
"postId": "post_456",
"mode": "regular"
}Что сайт отправляет
- brandId
- postId или script
- mode
- optional brief/referenceVideoId
Frontend логика
- Создать job
- Показать прогресс
- Опрашивать статус
- Подставить videoUrl в пост
Backend логика
- Проверить готовность бренда
- Создать video job
- Поставить задачу в очередь AI
- Вернуть jobId
Input
- brandId
- postId или script
- mode: avatar | regular
- Bearer accessToken
Success
- jobId
- status: queued | running
- estimatedSeconds
Errors
- brand_not_ready
- avatar_training
- quota_exceeded
- provider_unavailable
Пример curl
curl -X POST http://localhost:3000/api/video/jobs \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"brandId":"brand_123","postId":"post_456","mode":"regular"}'Пример fetch
const res = await fetch("/api/video/jobs", {
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ brandId: "brand_123", postId: "post_456", mode: "regular" }),
});
const data = await res.json();
console.log(res.ok, data.jobId ?? data);