# API de Búsqueda de Momentos

> Identifica y extrae momentos clave de vídeos usando consultas en lenguaje natural.

## API de Búsqueda de Momentos

La API de Búsqueda de Momentos te permite describir los momentos que deseas en lenguaje natural — como `"reacciones graciosas"` o `"demostraciones de producto"` — y la API encuentra y extrae clips con timestamps, títulos, descripciones y hashtags de vídeos de cualquier duración.

Puedes publicar clips generados por Buscar Momentos directamente en cuentas de redes sociales conectadas. Consulta la [API de Publicación en Redes Sociales](https://wayin.ai/es/api-docs/social-media-publishing/) para conectar cuentas y crear tareas de publicación.

## Fuentes de Vídeo Compatibles

YouTube, Vimeo, Dailymotion, Kick, Twitch, TikTok, Facebook, Zoom, Rumble y otras.

También puedes buscar en [archivos de video locales que subas](https://wayin.ai/es/api-docs/upload/) — la subida local requiere un plan de suscripción **Starter** o superior.

---

## Enviar Tarea de Búsqueda de Momentos

```
POST https://wayinvideo-api.wayin.ai/api/v2/clips/find-moments
```

### 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. |
| `query` | string | Sí | `""` | Consulta en lenguaje natural (ej.: `"reacciones graciosas"`, `"demostraciones de producto"`) |
| `project_name` | string | No | `""` | Nombre personalizado para esta tarea |
| `source_lang` | string | No | `null` | Idioma de origen. Cuando `null`, se detecta automáticamente. |
| `target_lang` | string | No | `null` | Idioma de destino para títulos, descripciones y subtítulos. |
| `limit` | number | No | `null` | Número máximo de clips a devolver. |
| `enable_export` | boolean | No | `false` | `false`: solo metadatos; `true`: renderiza inmediatamente. |
| `resolution` | string | No | `SD_480` | Resolución: `SD_480`, `HD_720`, `FHD_1080`, `QHD_2K`, `UHD_4K`. |
| `enable_caption` | boolean | No | `false` | Añadir subtítulos animados. |
| `caption_display` | string | No | `original` | Modo de subtítulos: `both`, `original`, `translation`. |
| `cc_style_tpl` | string | No | `temp-7` | ID de plantilla de estilo de subtítulos. |
| `enable_ai_hook` | boolean | No | `false` | Añadir texto de gancho generado por IA. |
| `ai_hook_script_style` | string | No | `serious` | Estilo del gancho: `serious`, `casual`, `informative`, `conversational`, `humorous`, `parody`, `inspirational`, `dramatic`, `empathetic`, `persuasive`, `neutral`, `excited`, `calm`. |
| `ai_hook_position` | string | No | `beginning` | Posición: `beginning`, `end`. |
| `enable_ai_reframe` | boolean | No | `false` | Activar Reencuadre con IA. |
| `ratio` | string | Obligatorio cuando `enable_ai_reframe` es `true` | — | Proporción: `RATIO_9_16`, `RATIO_1_1`, `RATIO_4_5`, `RATIO_16_9`. |
| `reframe_layout` | string | No | `Auto` | Diseño del Reencuadre con IA. |

<div class="tabs" data-labels="Con exportación|Sin exportación" data-group="export-mode"></div>

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/clips/find-moments \
  -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", "query": "sample query", "enable_export": true, "resolution": "FHD_1080", "enable_ai_reframe": true, "ratio": "RATIO_9_16"}'
```

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

<div class="tab-divider"></div>

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/clips/find-moments \
  -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", "query": "sample query"}'
```

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

<div class="tabs-end"></div>

---

## Ejemplos

Escenarios comunes de Find Moments. Reemplaza `YOUR_API_KEY` con una clave del [API Dashboard](https://wayin.ai/wayinvideo/api-dashboard).

### Encontrar momentos divertidos en un video de YouTube

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/clips/find-moments \
  -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",
    "query": "funny reactions"
  }'
```

### Extraer segmentos de demostración de producto de un video de marketing largo

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/clips/find-moments \
  -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",
    "query": "product demos and feature walkthroughs",
    "limit": 10
  }'
```

### Encontrar momentos destacados deportivos y exportarlos como clips verticales con subtítulos

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/clips/find-moments \
  -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",
    "query": "goal moments and key plays",
    "enable_export": true,
    "resolution": "FHD_1080",
    "enable_caption": true,
    "enable_ai_reframe": true,
    "ratio": "RATIO_9_16"
  }'
```

---

## Obtener Resultados de Búsqueda de Momentos

```
GET https://wayinvideo-api.wayin.ai/api/v2/clips/find-moments/results/{id}
```

> **Resultados incrementales:** Cuando `status` es `ONGOING`, cada llamada devuelve los clips generados hasta el momento.

<div class="tabs" data-labels="Con exportación|Sin exportación" data-group="export-mode"></div>

```json
{"data": {"id": "proj_moment_789", "status": "SUCCEEDED", "expire_at": 1775831883112, "cost_usage": 120.0,
          "clips": [{"idx": 0, "title": "sample title", "begin_ms": 120000, "end_ms": 185000,
                     "tags": ["product"], "desc": "sample description", "score": 81,
                     "export_link": "https://cdn.example.com/export/moment_001.mp4"}]}}
```

<div class="tab-divider"></div>

```json
{"data": {"id": "proj_moment_456", "status": "SUCCEEDED", "expire_at": 1775831883112, "cost_usage": 120.0,
          "clips": [{"idx": 0, "title": "sample title", "begin_ms": 120000, "end_ms": 185000,
                     "tags": ["product"], "desc": "sample description", "score": 81}]}}
```

<div class="tabs-end"></div>

### Campos de la Respuesta y Objeto de Clip

Misma estructura que [API de Clipping con IA](https://wayin.ai/es/api-docs/ai-clipping/#response-fields) — incluyendo `idx`, `title`, `begin_ms`, `end_ms`, `thumbnail`, `tags`, `desc`, `score` y opcionalmente `export_link`.

---

## Reexportar Clips Existentes

Usa la [API de Exportación de Clips](https://wayin.ai/es/api-docs/clips-export/) para renderizar clips posteriormente con diferentes configuraciones.


---

## Preguntas frecuentes

### ¿En qué se diferencia Find Moments de AI Clipping?

[AI Clipping](https://wayin.ai/es/api-docs/ai-clipping/) devuelve clips clasificados por potencial viral de forma automática — sin necesidad de consulta. **Find Moments** te permite describir lo que quieres en lenguaje natural (ej. `"funny reactions"`, `"product demos"`, `"goal moments"`) y devuelve solo los clips coincidentes.

### ¿Puedo limitar el número de momentos devueltos?

Sí. Pasa `limit: N` para devolver solo las N coincidencias principales clasificadas por relevancia. Útil cuando el video de origen es largo y solo quieres las coincidencias más fuertes.

### ¿Find Moments admite resultados parciales?

Sí — al consultar, los segmentos con `status: ONGOING` ya contienen los clips generados hasta el momento, por lo que puedes comenzar el procesamiento posterior sin esperar a que termine toda la tarea.
