# API de Notas de Vídeo

> Gere notas estruturadas com IA a partir de vídeos, com prompts personalizados, timestamps, controle de extensão e frames de vídeo opcionais.

## API de Notas de Vídeo

Envie uma URL de vídeo ou um arquivo carregado para gerar informações de resumo e, opcionalmente, uma nota estruturada com IA. Você pode personalizar as instruções da nota, o idioma de saída, a extensão desejada, os timestamps e a inclusão de frames relevantes do vídeo de origem.

Cada resposta inclui uma visão geral estruturada, hashtags e destaques da linha do tempo. Quando a geração de notas com IA está ativada, a resposta também inclui a nota nos formatos Markdown e texto simples. Quando não está ativada, a resposta contém apenas as informações relacionadas ao resumo.

## Fontes de Vídeo Suportadas

A API aceita URLs de vídeo do YouTube, Vimeo, Dailymotion, Kick, Twitch, TikTok, Facebook, Zoom, Rumble e outras plataformas.

Você também pode processar [arquivos de vídeo locais enviados](https://wayin.ai/pt/api-docs/upload/) — o upload local requer um plano **Starter** ou superior.

### Fluxo de Trabalho

1. **Envie** uma tarefa de Notas de Vídeo usando uma URL de vídeo ou o identificador de um arquivo carregado
2. **Consulte** o endpoint de resultados até que `status` seja `SUCCEEDED`

---

## Enviar Tarefa de Notas de Vídeo

Crie uma tarefa com ou sem geração de nota por IA. Inclua `note_params` para gerar uma nota com IA; omita esse objeto quando precisar apenas do resumo, das hashtags e dos destaques da linha do tempo.

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

### Corpo da Requisição

| Parâmetro     | Tipo   | Obrigatório | Padrão | Descrição                                                                                                                                                                                     |
| ------------- | ------ | ----------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `video_url`   | string | Sim         | —      | URL do vídeo de origem ou identificador do arquivo carregado                                                                                                                                  |
| `source_lang` | string | Não         | `null` | Idioma de origem do vídeo (consulte [Idiomas Suportados](https://wayin.ai/pt/api-docs/supported-languages/)). Quando `null`, o sistema detecta automaticamente o idioma original.                                |
| `target_lang` | string | Não         | `null` | Idioma de destino do resumo e dos destaques gerados (consulte [Idiomas Suportados](https://wayin.ai/pt/api-docs/supported-languages/)). Quando `null`, o idioma de saída acompanha o idioma de origem detectado. |
| `note_params` | object | Não         | `null` | Configurações de geração de notas com IA. Omita esse objeto para não gerar uma nota com IA.                                                                                                   |

### Parâmetros da Nota

| Parâmetro         | Tipo    | Obrigatório                          | Padrão | Descrição                                     |
| ----------------- | ------- | ------------------------------------ | ------ | --------------------------------------------- |
| `enable_note`     | boolean | Sim quando `note_params` é fornecido | —      | Defina como `true` para gerar uma nota com IA |
| `generate_params` | object  | Sim quando `note_params` é fornecido | —      | Configurações de geração da nota com IA       |

### Parâmetros de Geração da Nota

| Parâmetro           | Tipo    | Obrigatório | Padrão  | Descrição                                                                                                                                                                  |
| ------------------- | ------- | ----------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `prompt`            | string  | Sim         | —       | Instruções que descrevem a estrutura, o conteúdo ou o foco desejado para a nota                                                                                            |
| `language`          | string  | Não         | `null`  | Idioma de saída apenas da nota com IA; não afeta o resumo nem os destaques (consulte [Idiomas Suportados](https://wayin.ai/pt/api-docs/supported-languages/))                                 |
| `length_option`     | string  | Sim         | —       | Extensão desejada da nota: `short`, `medium` ou `long`                                                                                                                     |
| `include_timestamp` | boolean | Sim         | —       | Se devem ser adicionados timestamps do vídeo de origem às seções e aos pontos principais relevantes, ajudando os leitores a localizar os momentos correspondentes no vídeo |
| `image_visual`      | boolean | Não         | `false` | Se devem ser incluídos frames relevantes extraídos do vídeo de origem                                                                                                      |

### Exemplo de Requisição

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/notes \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -d '{
    "video_url": "https://www.youtube.com/watch?v=EXAMPLE",
    "source_lang": "en",
    "target_lang": "en",
    "note_params": {
      "enable_note": true,
      "generate_params": {
        "prompt": "Organize the main ideas and action items",
        "language": "en",
        "length_option": "medium",
        "include_timestamp": true,
        "image_visual": false
      }
    }
  }'
```

```python
import requests

requests.post(
    "https://wayinvideo-api.wayin.ai/api/v2/notes",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "x-wayinvideo-api-version": "v2",
    },
    json={
        "video_url": "https://www.youtube.com/watch?v=EXAMPLE",
        "target_lang": "en",
        "note_params": {
            "enable_note": True,
            "generate_params": {
                "prompt": "Organize the main ideas and action items",
                "language": "en",
                "length_option": "medium",
                "include_timestamp": True,
            },
        },
    },
)
```

```javascript
await fetch('https://wayinvideo-api.wayin.ai/api/v2/notes', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer YOUR_API_KEY',
    'x-wayinvideo-api-version': 'v2',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    video_url: 'https://www.youtube.com/watch?v=EXAMPLE',
    target_lang: 'en',
    note_params: {
      enable_note: true,
      generate_params: {
        prompt: 'Organize the main ideas and action items',
        language: 'en',
        length_option: 'medium',
        include_timestamp: true,
      },
    },
  }),
});
```

### Resposta do Envio

```json
{
  "data": {
    "id": "note_proj_001",
    "name": "sample project name",
    "status": "CREATED"
  }
}
```

| Campo    | Tipo   | Descrição                                                    |
| -------- | ------ | ------------------------------------------------------------ |
| `id`     | string | Identificador da tarefa usado para obter os resultados       |
| `name`   | string | Nome da tarefa derivado do vídeo de origem                   |
| `status` | string | Status inicial da tarefa; tarefas aceitas retornam `CREATED` |

---

## Exemplos

Os exemplos abaixo mostram casos de uso comuns das Notas de Vídeo. Substitua `YOUR_API_KEY` por uma chave do [API Dashboard](https://wayin.ai/wayinvideo/api-dashboard).

### Gerar notas concisas com timestamps

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/notes \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -H "Content-Type: application/json" \
  -d '{
    "video_url": "https://www.youtube.com/watch?v=EXAMPLE",
    "note_params": {
      "enable_note": true,
      "generate_params": {
        "prompt": "Create concise notes covering the main ideas",
        "length_option": "short",
        "include_timestamp": true
      }
    }
  }'
```

### Gerar notas de reunião orientadas a ações

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/notes \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -H "Content-Type: application/json" \
  -d '{
    "video_url": "UPLOADED_FILE_ID",
    "note_params": {
      "enable_note": true,
      "generate_params": {
        "prompt": "Create meeting notes with decisions, owners, and action items",
        "length_option": "medium",
        "include_timestamp": true
      }
    }
  }'
```

### Processar um vídeo sem uma nota com IA

Omita `note_params` para retornar o resumo, as hashtags e os destaques da linha do tempo sem dados de nota.

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/notes \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -H "Content-Type: application/json" \
  -d '{
    "video_url": "https://www.youtube.com/watch?v=EXAMPLE",
    "target_lang": "en"
  }'
```

---

## Obter Resultados das Notas de Vídeo

Após enviar uma tarefa, consulte este endpoint até que `status` seja `SUCCEEDED`. A resposta bem-sucedida contém informações do resumo e, quando solicitada, a nota gerada por IA.

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

### Parâmetros de Caminho

| Parâmetro | Tipo   | Obrigatório | Descrição                                     |
| --------- | ------ | ----------- | --------------------------------------------- |
| `id`      | string | Sim         | ID da tarefa retornado pelo endpoint de envio |

### Requisição de Resultados

```bash
curl -X GET https://wayinvideo-api.wayin.ai/api/v2/notes/results/note_proj_001 \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2"
```

```python
import requests

requests.get(
    "https://wayinvideo-api.wayin.ai/api/v2/notes/results/note_proj_001",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "x-wayinvideo-api-version": "v2",
    },
)
```

```javascript
await fetch(
  'https://wayinvideo-api.wayin.ai/api/v2/notes/results/note_proj_001',
  {
    method: 'GET',
    headers: {
      Authorization: 'Bearer YOUR_API_KEY',
      'x-wayinvideo-api-version': 'v2',
    },
  }
);
```

### Exemplo de Resposta Bem-Sucedida

```json
{
  "data": {
    "summary_id": "vdsmr_001",
    "status": "SUCCEEDED",
    "title": "sample title",
    "video_thumbnail": "https://cdn.example.com/thumb/video_001.jpg",
    "summary": "sample summary text",
    "note_data": "# Main Ideas\n\n- **00:45** First key point\n- **03:20** Second key point",
    "note_text": "Main Ideas\n\n00:45 First key point\n03:20 Second key point",
    "tags": ["#topic1", "#topic2"],
    "highlights": [
      {
        "start": 0,
        "end": 196000,
        "desc": "sample section title",
        "events": [
          {
            "timestamp": 45000,
            "desc": "sample event description"
          }
        ]
      }
    ],
    "cost_usage": 54.0
  }
}
```

### Campos da Resposta

| Campo             | Tipo     | Descrição                                                                                                            |
| ----------------- | -------- | -------------------------------------------------------------------------------------------------------------------- |
| `summary_id`      | string   | Identificador do resumo gerado                                                                                       |
| `status`          | string   | Status da tarefa: `CREATED`, `QUEUED`, `ONGOING`, `SUCCEEDED` ou `FAILED`                                            |
| `error_message`   | string   | Motivo do erro; presente apenas quando `status` é `FAILED`                                                           |
| `title`           | string   | Título gerado por IA                                                                                                 |
| `video_thumbnail` | string   | URL da miniatura do vídeo de origem                                                                                  |
| `summary`         | string   | Visão geral estruturada do vídeo                                                                                     |
| `note_data`       | string   | Nota com IA que preserva a estrutura Markdown, adequada para renderização em Markdown; omitida quando não solicitada |
| `note_text`       | string   | Versão em texto simples da nota com IA, sem a sintaxe Markdown; omitida quando não solicitada                        |
| `tags`            | string[] | Hashtags geradas por IA                                                                                              |
| `highlights`      | array    | Seções da linha do tempo com timestamps e eventos principais                                                         |
| `cost_usage`      | number   | API Units consumidas pela tarefa                                                                                     |

### Objeto de Destaque

| Campo    | Tipo   | Descrição                             |
| -------- | ------ | ------------------------------------- |
| `start`  | number | Tempo de início em milissegundos      |
| `end`    | number | Tempo de término em milissegundos     |
| `desc`   | string | Título ou descrição da seção          |
| `events` | array  | Eventos principais dentro do destaque |

### Objeto de Evento

| Campo       | Tipo   | Descrição                        |
| ----------- | ------ | -------------------------------- |
| `timestamp` | number | Tempo do evento em milissegundos |
| `desc`      | string | Descrição do evento              |

---

## Perguntas Frequentes

### Qual é a diferença entre Notas de Vídeo e Resumo de Vídeo?

A [API de Resumo de Vídeo](https://wayin.ai/pt/api-docs/video-summarization/) gera uma visão geral, hashtags e destaques da linha do tempo. A API de Notas de Vídeo retorna as mesmas informações do resumo e também pode gerar uma nota personalizável nos formatos Markdown e texto simples.

### A geração de notas com IA é obrigatória?

Não. Omita `note_params` para retornar as informações do resumo sem uma nota com IA. Para gerar uma nota, forneça `note_params`, defina `enable_note` como `true` e inclua `generate_params.prompt`.

### Qual é a diferença entre `note_data` e `note_text`?

`note_data` preserva a estrutura Markdown gerada para renderizar títulos, listas, ênfase e outras formatações. `note_text` contém a mesma nota sem a sintaxe Markdown, o que a torna adequada para indexação de busca, embeddings, prévias ou armazenamento em texto simples.

### Posso controlar o formato da nota?

Sim. Use `generate_params.prompt` para fornecer instruções, `language` para definir o idioma da nota, `length_option` para a extensão desejada, `include_timestamp` para incluir timestamps e `image_visual` para incluir frames relevantes do vídeo.

### Quais fontes de vídeo são suportadas?

URLs do YouTube, Vimeo, Dailymotion, Kick, Twitch, TikTok, Facebook, Zoom, Rumble e outras plataformas, além de uploads de arquivos locais pela [API de Upload](https://wayin.ai/pt/api-docs/upload/).
