---
title: "Vídeo"
description: "Texto para vídeo, com ou sem som, pago por segundo."
source_url: "https://hypio.doti.gg/docs/video"
updated: "2026-11-11"
---

# Vídeo

Texto para vídeo, com ou sem som, pago por segundo.

`kind: "video"`. O preço é por segundo de vídeo, multiplicado pela duração pedida. Proporções: `16:9`, `9:16`, `1:1`.

## Requisição

cURL:

```bash
curl -X POST https://hypio.doti.gg/api/v1/generations \
  -H "Authorization: Bearer $HYPIO_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "kind": "video",
  "model": "seedance-2.0-mini",
  "prompt": "Uma xícara de café numa mesa de madeira, luz da manhã, câmera lenta",
  "ratio": "16:9",
  "resolution": "480p",
  "durationSeconds": 5
}'

curl https://hypio.doti.gg/api/v1/generations/<id> \
  -H "Authorization: Bearer $HYPIO_API_KEY"
```

JavaScript:

```javascript
const API = "https://hypio.doti.gg/api/v1";
const headers = {
  Authorization: `Bearer ${process.env.HYPIO_API_KEY}`,
  "Content-Type": "application/json",
};

let generation = await fetch(`${API}/generations`, {
  method: "POST",
  headers: { ...headers, "Idempotency-Key": crypto.randomUUID() },
  body: JSON.stringify({
    "kind": "video",
    "model": "seedance-2.0-mini",
    "prompt": "Uma xícara de café numa mesa de madeira, luz da manhã, câmera lenta",
    "ratio": "16:9",
    "resolution": "480p",
    "durationSeconds": 5
  }),
}).then((res) => res.json());

while (generation.status === "queued" || generation.status === "running") {
  await new Promise((resolve) => setTimeout(resolve, 5000));
  generation = await fetch(`${API}/generations/${generation.id}`, { headers })
    .then((res) => res.json());
}

console.log(generation.status, generation.outputs);
```

Python:

```python
import os, time, uuid
import requests

API = "https://hypio.doti.gg/api/v1"
headers = {"Authorization": f"Bearer {os.environ['HYPIO_API_KEY']}"}

generation = requests.post(
    f"{API}/generations",
    headers={**headers, "Idempotency-Key": str(uuid.uuid4())},
    json={
      "kind": "video",
      "model": "seedance-2.0-mini",
      "prompt": "Uma xícara de café numa mesa de madeira, luz da manhã, câmera lenta",
      "ratio": "16:9",
      "resolution": "480p",
      "durationSeconds": 5
    },
).json()

while generation["status"] in ("queued", "running"):
    time.sleep(5)
    generation = requests.get(f"{API}/generations/{generation['id']}", headers=headers).json()

print(generation["status"], generation["outputs"])
```

## Parâmetros

| Campo | Tipo | Regra |
| --- | --- | --- |
| `kind` | string | `"video"` |
| `model` | string | Um dos modelos abaixo. |
| `prompt` | string | Obrigatório. Até 2000 caracteres. |
| `ratio` | string | Proporção. Vazio usa o padrão do modelo. |
| `resolution` | string | Uma das resoluções do modelo. |
| `durationSeconds` | inteiro | Dentro da faixa do modelo, em [Modelos](https://hypio.doti.gg/docs/modelos). |
| `audio` | booleano | Gera o som junto. Padrão `true`. |

## Modelos

| Modelo | `model` | A partir de |
| --- | --- | --- |
| Seedance 2.5 | `seedance-2.5` | R$ 0,926 |
| Seedance 2.0 Fast | `seedance-2.0-fast` | R$ 0,504 |
| Seedance 2.0 Mini | `seedance-2.0-mini` | R$ 0,316 |
| Wan 3.0 | `wan-3.0` | R$ 0,45 |

## Preços

O preço sai do mesmo catálogo que cobra a geração. Ele fica reservado no envio e é devolvido se a geração falhar.

| `model` | Resolução | Preço |
| --- | --- | --- |
| `seedance-2.5` | `480p` | R$ 0,926 por segundo |
| `seedance-2.5` | `720p` | R$ 2,078 por segundo |
| `seedance-2.5` | `1080p` | R$ 5,112 por segundo |
| `seedance-2.0-fast` | `480p` | R$ 0,504 por segundo |
| `seedance-2.0-fast` | `720p` | R$ 1,088 por segundo |
| `seedance-2.0-mini` | `480p` | R$ 0,316 por segundo |
| `seedance-2.0-mini` | `720p` | R$ 0,68 por segundo |
| `wan-3.0` | `480p` | R$ 0,45 por segundo |
| `wan-3.0` | `720p` | R$ 0,899 por segundo |
| `wan-3.0` | `1080p` | R$ 1,798 por segundo |
