# API de Notas de Vídeo

> Genera notas estructuradas con IA a partir de vídeos, con instrucciones personalizadas, marcas de tiempo, control de longitud y fotogramas opcionales.

## API de Notas de Vídeo

Envía la URL de un vídeo o un archivo subido para generar información de resumen y, opcionalmente, una nota estructurada con IA. Puedes personalizar las instrucciones de la nota, el idioma de salida, la longitud deseada, las marcas de tiempo y si se incluyen fotogramas relevantes del vídeo de origen.

Cada respuesta incluye una descripción general estructurada, hashtags y momentos destacados de la línea de tiempo. Cuando la generación de notas con IA está habilitada, la respuesta también incluye la nota en formato Markdown y como texto sin formato. Cuando no está habilitada, la respuesta contiene únicamente la información relacionada con el resumen.

## Fuentes de Vídeo Compatibles

La API acepta URLs de vídeos de YouTube, Vimeo, Dailymotion, Kick, Twitch, TikTok, Facebook, Zoom, Rumble y más.

También puedes procesar [archivos de vídeo locales que subas](https://wayin.ai/es/api-docs/upload/) — la subida local requiere un plan **Starter** o superior.

### Flujo de Trabajo

1. **Envía** una tarea de Notas de Vídeo mediante una URL de vídeo o el identificador de un archivo subido
2. **Consulta** el endpoint de resultados hasta que `status` sea `SUCCEEDED`

---

## Enviar una Tarea de Notas de Vídeo

Crea una tarea con o sin generación de notas con IA. Incluye `note_params` para generar una nota con IA; omítelo si solo necesitas el resumen, los hashtags y los momentos destacados de la línea de tiempo.

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

### Cuerpo de la Solicitud

| Parámetro     | Tipo   | Requerido | Predeterminado | Descripción                                                                                                                                                                                                    |
| ------------- | ------ | --------- | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `video_url`   | string | Sí        | —              | URL del vídeo de origen o identificador del archivo subido                                                                                                                                                     |
| `source_lang` | string | No        | `null`         | Idioma de origen del vídeo (consulta [Idiomas Compatibles](https://wayin.ai/es/api-docs/supported-languages/)). Cuando es `null`, el sistema detecta automáticamente el idioma original.                                          |
| `target_lang` | string | No        | `null`         | Idioma de destino del resumen y los momentos destacados generados (consulta [Idiomas Compatibles](https://wayin.ai/es/api-docs/supported-languages/)). Cuando es `null`, el idioma de salida sigue el idioma de origen detectado. |
| `note_params` | object | No        | `null`         | Configuración para generar notas con IA. Omite este objeto para no generar una nota con IA.                                                                                                                    |

### Parámetros de la Nota

| Parámetro         | Tipo    | Requerido                               | Predeterminado | Descripción                                        |
| ----------------- | ------- | --------------------------------------- | -------------- | -------------------------------------------------- |
| `enable_note`     | boolean | Sí, cuando se proporciona `note_params` | —              | Establécelo en `true` para generar una nota con IA |
| `generate_params` | object  | Sí, cuando se proporciona `note_params` | —              | Configuración para generar la nota con IA          |

### Parámetros de Generación de la Nota

| Parámetro           | Tipo    | Requerido | Predeterminado | Descripción                                                                                                                                                           |
| ------------------- | ------- | --------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `prompt`            | string  | Sí        | —              | Instrucciones que describen la estructura, el contenido o el enfoque deseados para la nota                                                                            |
| `language`          | string  | No        | `null`         | Idioma de salida únicamente para la nota con IA; no afecta al resumen ni a los momentos destacados (consulta [Idiomas Compatibles](https://wayin.ai/es/api-docs/supported-languages/))   |
| `length_option`     | string  | Sí        | —              | Longitud deseada de la nota: `short`, `medium` o `long`                                                                                                               |
| `include_timestamp` | boolean | Sí        | —              | Indica si se añaden marcas de tiempo del vídeo de origen a las secciones y puntos clave relevantes, para ayudar a localizar los momentos correspondientes en el vídeo |
| `image_visual`      | boolean | No        | `false`        | Indica si se incluyen fotogramas relevantes extraídos del vídeo de origen                                                                                             |

### Ejemplo de Solicitud

```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,
      },
    },
  }),
});
```

### Respuesta al Envío

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

| Campo    | Tipo   | Descripción                                                 |
| -------- | ------ | ----------------------------------------------------------- |
| `id`     | string | Identificador de la tarea usado para obtener los resultados |
| `name`   | string | Nombre de la tarea derivado del vídeo de origen             |
| `status` | string | Estado inicial; las tareas aceptadas devuelven `CREATED`    |

---

## Ejemplos

Los siguientes ejemplos muestran casos de uso habituales de Notas de Vídeo. Sustituye `YOUR_API_KEY` por una clave del [API Dashboard](https://wayin.ai/wayinvideo/api-dashboard).

### Generar notas concisas con marcas de tiempo

```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
      }
    }
  }'
```

### Generar notas de reunión orientadas a la acción

```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
      }
    }
  }'
```

### Procesar un vídeo sin una nota con IA

Omite `note_params` para obtener el resumen, los hashtags y los momentos destacados de la línea de tiempo sin datos de notas.

```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"
  }'
```

---

## Obtener los Resultados de Notas de Vídeo

Después de enviar una tarea, consulta este endpoint hasta que `status` sea `SUCCEEDED`. La respuesta correcta contiene la información del resumen y, cuando se haya solicitado, la nota generada con IA.

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

### Parámetros de Ruta

| Parámetro | Tipo   | Requerido | Descripción                                      |
| --------- | ------ | --------- | ------------------------------------------------ |
| `id`      | string | Sí        | ID de la tarea devuelto por el endpoint de envío |

### Solicitud 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',
    },
  }
);
```

### Ejemplo de Respuesta Correcta

```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 de la Respuesta

| Campo             | Tipo     | Descripción                                                                                                           |
| ----------------- | -------- | --------------------------------------------------------------------------------------------------------------------- |
| `summary_id`      | string   | Identificador del resumen generado                                                                                    |
| `status`          | string   | Estado de la tarea: `CREATED`, `QUEUED`, `ONGOING`, `SUCCEEDED` o `FAILED`                                            |
| `error_message`   | string   | Motivo del error; solo aparece cuando `status` es `FAILED`                                                            |
| `title`           | string   | Título generado por IA                                                                                                |
| `video_thumbnail` | string   | URL de la miniatura del vídeo de origen                                                                               |
| `summary`         | string   | Descripción general estructurada del vídeo                                                                            |
| `note_data`       | string   | Nota con IA que conserva la estructura Markdown, adecuada para renderizarse como Markdown; se omite si no se solicita |
| `note_text`       | string   | Versión de texto sin formato de la nota con IA, sin sintaxis Markdown; se omite si no se solicita                     |
| `tags`            | string[] | Hashtags generados por IA                                                                                             |
| `highlights`      | array    | Secciones de la línea de tiempo con marcas de tiempo y eventos clave                                                  |
| `cost_usage`      | number   | API Units consumidas por la tarea                                                                                     |

### Objeto de Momento Destacado

| Campo    | Tipo   | Descripción                         |
| -------- | ------ | ----------------------------------- |
| `start`  | number | Tiempo de inicio en milisegundos    |
| `end`    | number | Tiempo de fin en milisegundos       |
| `desc`   | string | Título o descripción de la sección  |
| `events` | array  | Eventos clave del momento destacado |

### Objeto de Evento

| Campo       | Tipo   | Descripción                       |
| ----------- | ------ | --------------------------------- |
| `timestamp` | number | Tiempo del evento en milisegundos |
| `desc`      | string | Descripción del evento            |

---

## Preguntas Frecuentes

### ¿Cuál es la diferencia entre Notas de Vídeo y Resumen de Vídeo?

La [API de Resumen de Vídeo](https://wayin.ai/es/api-docs/video-summarization/) genera una descripción general, hashtags y momentos destacados de la línea de tiempo. La API de Notas de Vídeo devuelve la misma información de resumen y, además, puede generar una nota personalizable en Markdown y texto sin formato.

### ¿Es obligatorio generar una nota con IA?

No. Omite `note_params` para obtener la información del resumen sin una nota con IA. Para generar una nota, proporciona `note_params`, establece `enable_note` en `true` e incluye `generate_params.prompt`.

### ¿Cuál es la diferencia entre `note_data` y `note_text`?

`note_data` conserva la estructura Markdown generada para renderizar encabezados, listas, énfasis y otros formatos. `note_text` contiene la misma nota sin sintaxis Markdown, por lo que resulta adecuado para indexación de búsquedas, embeddings, vistas previas o almacenamiento como texto sin formato.

### ¿Puedo controlar el formato de la nota?

Sí. Usa `generate_params.prompt` para las instrucciones, `language` para el idioma de la nota, `length_option` para la longitud deseada, `include_timestamp` para las marcas de tiempo e `image_visual` para incluir fotogramas relevantes del vídeo.

### ¿Qué fuentes de vídeo son compatibles?

URLs de YouTube, Vimeo, Dailymotion, Kick, Twitch, TikTok, Facebook, Zoom, Rumble y más, además de archivos locales subidos mediante la [API de Subida](https://wayin.ai/es/api-docs/upload/).
