# Видео

> POST /v1/videos — асинхронная генерация видео: создать задачу, опрашивать статус, скачать ролик.

Видео генерируется асинхронно: вы ставите задачу, опрашиваете её статус и
скачиваете готовый ролик. Работает только с моделями видео из
[каталога](https://ai-seller.vibe-codes.ru/docs/models); в примерах ниже подставьте их ID вместо `VIDEO_MODEL_ID`.

## 1. Создать задачу

```bash
curl https://ai-seller.vibe-codes.ru/v1/videos \
  -H "Authorization: Bearer $AISELLER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "VIDEO_MODEL_ID",
    "prompt": "Волны разбиваются о маяк на закате",
    "seconds": 8
  }'
```

Ответ — `202` с объектом задачи:

```json
{"id": "vid_...", "object": "video", "model": "VIDEO_MODEL_ID", "status": "queued", "progress": 0, "created_at": 1790000000}
```

## 2. Опрашивать статус

```bash
curl https://ai-seller.vibe-codes.ru/v1/videos/vid_... \
  -H "Authorization: Bearer $AISELLER_API_KEY"
```

Опрашивайте раз в несколько секунд, пока `status` не станет `completed` или
`failed`. Промежуточные статусы — `queued` и `in_progress`.

```json
{"id": "vid_...", "object": "video", "status": "completed", "seconds": "8", "data": [{"url": "https://.../v1/videos/vid_.../content"}]}
```

У проваленной задачи `status: "failed"` и `error.code: "video_generation_failed"`;
списания за неё нет.

## 3. Скачать видео

Ссылка из `data[0].url` ведёт на `GET /v1/videos/{id}/content`. Скачивайте с
тем же ключом:

```bash
curl -L https://ai-seller.vibe-codes.ru/v1/videos/vid_.../content \
  -H "Authorization: Bearer $AISELLER_API_KEY" \
  -o video.mp4
```

До готовности этот адрес отвечает `404 not_found`.

## Особенности

- **Списание** — за длительность ролика в секундах из ответа провайдера (если он
  её не назвал — за запрошенные секунды), один раз, когда задача завершилась.
  Резерв баланса на время генерации не ставится.
- **Параметры:** `prompt`, `seconds` (или `duration`, `duration_seconds`),
  `size`, `aspect_ratio`, `resolution`, `negative_prompt`, `seed`; референсы —
  `image`, `images`, `video`, `input_reference`. Лимит тела запроса — 70 МиБ.
- Задача видна только ключам вашего аккаунта; чужой `id` отвечает `404 not_found`.
- Ограничение одновременных запросов на видео-задачи не распространяется.
