# API de Subida

> Sube archivos de vídeo locales para AI Clipping, Summarization, Video Notes, Transcription, Find Moments y Video Enhancer.

## API de Subida

La API de Subida te permite subir archivos de vídeo locales a WayinVideo. Después de subirlos, usa el identificador de archivo devuelto como `video_url` en otros endpoints de la API (Clipping con IA, Buscar Momentos, Resumen de Vídeo, Notas de Vídeo, Transcripción de Vídeo y Mejora de Vídeo).

**Límite de Tamaño de Archivo:** El límite para un archivo individual subido localmente es de 5 GB. Si necesitas un límite mayor, contáctanos en [wayinvideo@wayin.ai](mailto:wayinvideo@wayin.ai).

**Formatos Compatibles:** Debes subir un archivo de vídeo válido. Los formatos compatibles actualmente son **avi**, **mp4**, **mov** y **webm**. Subir otros formatos puede provocar que falle el procesamiento de la tarea después de enviarla.

### Flujo de Subida

1. **Solicita** una URL de subida prefirmada proporcionando los metadatos del archivo
2. **Sube** el archivo directamente a la URL prefirmada usando una solicitud `PUT`
3. **Usa** el valor `identity` devuelto como `video_url` en llamadas posteriores

---

## Obtener URL de Subida

Solicita una URL de subida temporal para un archivo local.

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

### Cuerpo de la Solicitud

| Parámetro | Tipo   | Requerido | Predeterminado | Descripción                                                 |
| --------- | ------ | --------- | -------------- | ----------------------------------------------------------- |
| `name`    | string | Sí        | —              | Nombre del archivo con extensión (p. ej., `"my-video.mp4"`) |

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

### Respuesta

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

| Campo        | Tipo   | Descripción                                                                                                                                  |
| ------------ | ------ | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `upload_url` | string | URL prefirmada para subir el archivo. Caduca después de **1 hora**; completa la subida durante ese plazo. Si caduca, solicita una URL nueva. |
| `identity`   | string | Identificador del archivo para usar como `video_url`                                                                                         |

---

## Subir el Archivo

Usa `upload_url` para subir el archivo mediante una solicitud `PUT`. Después de `@` en `--data-binary`, indica la ruta del archivo local:

```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:** Si vuelves a subir un archivo usando el mismo `upload_url`, el archivo nuevo sobrescribirá el anterior. Cada archivo individual debe tener un tamaño máximo de **5 GB**.

---

## Usar el Archivo Subido

Después de subir el archivo, pasa el valor `identity` como `video_url` al enviar tareas.

> **Nota:** Cada `identity` es válido durante **24 horas**. Si tienes cuota suficiente, puedes usar el mismo `identity` para enviar varias tareas durante esas 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
  }'
```

---

## Preguntas frecuentes

### ¿Cuándo debo subir un archivo local frente a pasar una URL de origen?

Si tu video ya está en una plataforma compatible (YouTube, Vimeo, TikTok, Zoom, etc.), pasa la URL directamente al endpoint de procesamiento — no se requiere subida. Usa la API de Subida solo para archivos que aún no estén alojados en una fuente compatible.

### ¿Cuál es el tamaño máximo de archivo de subida?

5 GB por archivo. Contacta a [wayinvideo@wayin.ai](mailto:wayinvideo@wayin.ai) si tu caso de uso requiere un límite mayor.

### ¿Qué formatos de archivo se admiten?

`mp4`, `mov`, `webm`, `avi`. Otros formatos pueden fallar durante el procesamiento.

### ¿La subida cuenta para la cuota de almacenamiento de mi plan?

Sí — los archivos subidos consumen almacenamiento en tu plan de suscripción. Consulta los [Planes de Suscripción](https://wayin.ai/wayinvideo/settings/plan) para ver los límites de almacenamiento y tamaño de archivo por plan.

### ¿Cómo uso el archivo subido en otras llamadas a la API?

Después de subir, pasa el identificador de archivo devuelto como campo `video_url` en cualquier endpoint de procesamiento compatible — [AI Clipping](https://wayin.ai/es/api-docs/ai-clipping/), [Find Moments](https://wayin.ai/es/api-docs/find-moments/), [Video Summarization](https://wayin.ai/es/api-docs/video-summarization/), [Video Notes](https://wayin.ai/es/api-docs/video-notes/), [Video Transcription](https://wayin.ai/es/api-docs/video-transcription/) o [Video Enhancer](https://wayin.ai/es/api-docs/video-enhancer/).
