# API de Upload

> Envie arquivos de vídeo locais para AI Clipping, Summarization, Video Notes, Transcription, Find Moments e Video Enhancer.

## API de Upload

A API de Upload permite enviar arquivos de vídeo locais para a WayinVideo. Após o upload, use o identificador de arquivo retornado como `video_url` em outros endpoints da API (Clipping com IA, Buscar Momentos, Resumo de Vídeo, Notas de Vídeo, Transcrição de Vídeo, Aprimoramento de Vídeo).

**Limite de Tamanho do Arquivo:** O limite para cada arquivo em uploads locais é de 5 GB. Se precisar de um limite maior, entre em contato conosco em [wayinvideo@wayin.ai](mailto:wayinvideo@wayin.ai).

**Formatos suportados:** Você deve enviar um arquivo de vídeo válido. Os formatos compatíveis atualmente são **avi**, **mp4**, **mov** e **webm**. O envio de outros formatos pode fazer com que o processamento da tarefa falhe após o envio.

### Fluxo de Upload

1. **Solicite** uma URL de upload pré-assinada fornecendo os metadados do arquivo
2. **Envie** o arquivo diretamente para a URL pré-assinada usando uma requisição `PUT`
3. **Use** o valor `identity` retornado como `video_url` nas chamadas de API subsequentes

---

## Obter URL de Upload

Solicite uma URL de upload temporária para um arquivo local.

```
POST https://wayinvideo-api.wayin.ai/api/v2/upload/single-file
```

### Corpo da Requisição

| Parâmetro | Tipo   | Obrigatório | Padrão | Descrição                                            |
| --------- | ------ | ----------- | ------ | ---------------------------------------------------- |
| `name`    | string | Sim         | —      | Nome do arquivo com extensão (ex.: `"my-video.mp4"`) |

### Exemplo de Requisição

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/upload/single-file \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -d '{"name": "sample-video.mp4"}'
```

### Resposta

```json
{
  "data": {
    "upload_url": "https://storage.example.com/upload/presigned-url...",
    "identity": "file_abc123"
  }
}
```

| Campo        | Tipo   | Descrição                                                                                                                                          |
| ------------ | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `upload_url` | string | URL pré-assinada para upload do arquivo. Esta URL expira após **1 hora** — conclua o upload dentro desse prazo. Se expirar, solicite uma nova URL. |
| `identity`   | string | Identificador do arquivo para usar como `video_url` em outras APIs                                                                                 |

---

## Enviar o Arquivo

Use o `upload_url` para enviar seu arquivo com uma requisição `PUT`:

```bash
curl -X PUT "https://storage.example.com/upload/presigned-url..." \
  -H "Content-Type: video/mp4" \
  --data-binary @/Users/me/Videos/sample-video.mp4
```

> **Nota:** Se você enviar novamente usando o mesmo `upload_url`, o novo arquivo substituirá o anterior. Cada arquivo não pode exceder **5 GB**.

---

## Usar o Arquivo Enviado

Após o upload, passe o valor `identity` como `video_url` ao enviar tarefas.

> **Nota:** Cada `identity` é válido por **24 horas**. Com cota suficiente, você pode usar o mesmo `identity` para enviar múltiplas tarefas dentro de 24 horas.

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/clips \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -d '{"video_url": "THE_IDENTITY_VALUE", "enable_export": false}'
```

---

## Perguntas Frequentes

### Quando devo enviar um arquivo local em vez de passar uma URL de origem?

Se seu vídeo já existe em uma plataforma suportada (YouTube, Vimeo, TikTok, Zoom etc.), passe a URL diretamente para o endpoint de processamento — não é necessário fazer upload. Use a API de Upload apenas para arquivos que ainda não estão hospedados em uma fonte suportada.

### Qual é o tamanho máximo do arquivo de upload?

5 GB por arquivo. Entre em contato em [wayinvideo@wayin.ai](mailto:wayinvideo@wayin.ai) se seu caso de uso exigir um limite maior.

### Quais formatos de arquivo são suportados?

`mp4`, `mov`, `webm`, `avi`. Outros formatos podem falhar durante o processamento.

### O upload conta na cota de armazenamento do meu plano?

Sim — os arquivos enviados consomem armazenamento do seu plano de assinatura. Consulte [Planos de Assinatura](https://wayin.ai/wayinvideo/settings/plan) para os limites de armazenamento e de tamanho por arquivo de cada plano.

### Como uso o arquivo enviado em outras chamadas de API?

Após o upload, passe o identificador de arquivo retornado como campo `video_url` em qualquer endpoint de processamento compatível — [AI Clipping](https://wayin.ai/pt/api-docs/ai-clipping/), [Find Moments](https://wayin.ai/pt/api-docs/find-moments/), [Video Summarization](https://wayin.ai/pt/api-docs/video-summarization/), [Video Notes](https://wayin.ai/pt/api-docs/video-notes/), [Video Transcription](https://wayin.ai/pt/api-docs/video-transcription/) ou [Video Enhancer](https://wayin.ai/pt/api-docs/video-enhancer/).
