# API de Aprimoramento de Vídeo

> Aprimore um arquivo de vídeo da plataforma ou um arquivo enviado para 1080p, 2K ou 4K, com nitidez de texto opcional e um trecho de até 10 minutos.

## API de Aprimoramento de Vídeo

Envie um vídeo que já está na plataforma, ou um arquivo que você carregou, e receba uma versão aprimorada em 1080p, 2K ou 4K. A nitidez do texto na tela pode ser ligada ou desligada. Você pode aprimorar o vídeo inteiro ou um trecho de até 10 minutos.

## Fontes de vídeo compatíveis

Informe uma URL de arquivo da plataforma ou o `identity` retornado pela [API de Upload](https://wayin.ai/pt/api-docs/upload/). O upload local exige um plano **Starter** ou superior.

### Fluxo

1. **Envie** uma tarefa de aprimoramento com o vídeo de origem e a resolução de destino
2. **Consulte** o resultado até `status` ser `DONE` ou `ERROR`
3. Quando `status` for `DONE`, leia `output_url`

---

## Endpoints

| Método | Caminho                               | Descrição                         |
| ------ | ------------------------------------- | --------------------------------- |
| `POST` | `/api/v2/video-enhancer`              | Enviar uma tarefa de aprimoramento |
| `GET`  | `/api/v2/video-enhancer/results/{id}` | Obter o resultado da tarefa       |

Todas as solicitações exigem:

```http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
x-wayinvideo-api-version: v2
```

---

## Enviar tarefa de aprimoramento

```http
POST https://wayinvideo-api.wayin.ai/api/v2/video-enhancer
```

### Corpo da solicitação

| Parâmetro        | Tipo    | Obrigatório | Padrão | Descrição                                                                                                                                                                                    |
| ---------------- | ------- | ----------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `video_url`      | string  | Sim         | —      | URL de arquivo da plataforma ou o `identity` retornado pela [API de Upload](https://wayin.ai/pt/api-docs/upload/).                                                                                             |
| `target_res`     | string  | Sim         | —      | Resolução de saída. Valores permitidos: `1080p`, `2k`, `4k`.                                                                                                                                |
| `enable_text_hd` | boolean | Não         | `true` | Melhorar o texto na tela. Se o campo for omitido, o padrão é `true`.                                                                                                                        |
| `start_ms`       | integer | Não         | —      | Início do trecho, em milissegundos. Omita `start_ms` e `end_ms` para processar o vídeo inteiro, ainda sujeito ao máximo de 10 minutos. Enviar apenas um dos dois campos é recusado.       |
| `end_ms`         | integer | Não         | —      | Fim do trecho, em milissegundos. Deve ser maior que `start_ms` e não pode ultrapassar a duração da origem.                                                                                  |

O intervalo processado não pode passar de 10 minutos. A cobrança usa esse intervalo, arredondado para cima até o próximo segundo inteiro. As tarifas estão em [Faturamento](https://wayin.ai/pt/api-docs/pricing/).

### Exemplo de solicitação

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/video-enhancer \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -d '{
    "video_url": "EF_up_06wguq1afbwg1",
    "target_res": "1080p",
    "enable_text_hd": true,
    "start_ms": 0,
    "end_ms": 8000
  }'
```

```python
import requests

requests.post(
    "https://wayinvideo-api.wayin.ai/api/v2/video-enhancer",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "x-wayinvideo-api-version": "v2",
    },
    json={
        "video_url": "EF_up_06wguq1afbwg1",
        "target_res": "1080p",
        "enable_text_hd": True,
        "start_ms": 0,
        "end_ms": 8000,
    },
)
```

```javascript
await fetch('https://wayinvideo-api.wayin.ai/api/v2/video-enhancer', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer YOUR_API_KEY',
    'x-wayinvideo-api-version': 'v2',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    video_url: 'EF_up_06wguq1afbwg1',
    target_res: '1080p',
    enable_text_hd: true,
    start_ms: 0,
    end_ms: 8000,
  }),
});
```

### Resposta

Uma tarefa recém-enviada costuma estar em `PENDING` (na fila) ou `IN_PROGRESS` (já em execução).

```json
{
  "data": {
    "id": "proj_01HQ2X8J3K4L5M6N7O8P9Q0R",
    "status": "IN_PROGRESS"
  }
}
```

| Campo        | Tipo   | Descrição                                                                                      |
| ------------ | ------ | ---------------------------------------------------------------------------------------------- |
| `id`         | string | Id do projeto. Use-o no caminho de resultados.                                                |
| `status`     | string | `PENDING` (na fila), `IN_PROGRESS` (em execução), `DONE` (concluído) ou `ERROR` (falhou).     |
| `output_url` | string | URL do vídeo aprimorado. Presente apenas quando `status` é `DONE`.                            |

---

## Obter o resultado

Consulte com o `id` da resposta de envio até `status` ser `DONE` ou `ERROR`. Quando `status` for `DONE`, leia `output_url`.

```http
GET https://wayinvideo-api.wayin.ai/api/v2/video-enhancer/results/{id}
```

### Exemplo de solicitação

```bash
curl -X GET https://wayinvideo-api.wayin.ai/api/v2/video-enhancer/results/proj_01HQ2X8J3K4L5M6N7O8P9Q0R \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2"
```

### Resposta

```json
{
  "data": {
    "id": "proj_01HQ2X8J3K4L5M6N7O8P9Q0R",
    "status": "DONE",
    "output_url": "https://cdn.viralhub.ai/user/video_0_8000_1080p.mp4"
  }
}
```

Os campos são os mesmos da resposta de envio. `output_url` é incluído quando a tarefa termina.

---

## Faturamento

O aprimoramento de vídeo consome **API Units** pelo intervalo processado, arredondado para cima até o próximo segundo inteiro. Menos de 1 segundo conta como 1 segundo.

| Resolução de destino | API Units       |
| -------------------- | --------------- |
| 1080p                | 1 por segundo   |
| 2K (`2k`)            | 2 por segundo   |
| 4K (`4k`)            | 4 por segundo   |

Se a conta não tiver API Units suficientes, a tarefa não é criada e nenhuma unidade é debitada. Consulte [Faturamento](https://wayin.ai/pt/api-docs/pricing/) e [Códigos de Status](https://wayin.ai/pt/api-docs/status-codes/).

---

## Erros

Solicitações com falha usam os códigos de status e formatos de resposta padrão. Consulte [Códigos de Status](https://wayin.ai/pt/api-docs/status-codes/).
