API de Clipping con IA

April 1, 2026

API de Clipping con IA

Envía un vídeo de cualquier duración y recibe todos los clips clasificados por potencial viral. Cada clip incluye timestamps de inicio/fin detectados automáticamente, títulos, descripciones y hashtags generados por IA. Si la exportación está habilitada, la respuesta también incluye enlaces de descarga de vídeos renderizados con reencuadre automático y subtítulos animados opcionales.

Fuentes de Vídeo Compatibles

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

También puedes usar archivos subidos localmente. La subida local requiere un plan Standard o superior. Consulta la API de Subida.


Enviar Tarea de Clipping

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

Cuerpo de la Solicitud

ParámetroTipoRequeridoPredeterminadoDescripción
video_urlstringURL del vídeo de origen o identificador del archivo de la API de Subida.
project_namestringNo""Nombre personalizado para esta tarea
source_langstringNonullIdioma de origen del vídeo. Cuando null, se detecta automáticamente.
target_langstringNonullIdioma de destino para títulos, descripciones y subtítulos. Cuando null, corresponde al source_lang.
target_durationstringNoDURATION_0_90Duración esperada por clip: DURATION_0_30, DURATION_0_90, DURATION_30_60, DURATION_60_90, DURATION_90_180, DURATION_180_300.
limitnumberNonullNúmero máximo de clips a devolver. Cuando null, devuelve todos.
enable_exportbooleanNofalsefalse: solo metadatos; true: renderiza inmediatamente con enlace de descarga.
resolutionstringNoSD_480Resolución: SD_480, HD_720, FHD_1080, QHD_2K, UHD_4K. Solo cuando enable_export es true.
enable_captionbooleanNofalseAñadir subtítulos animados. Solo cuando enable_export es true.
caption_displaystringNooriginalModo de subtítulos: both, original, translation.
cc_style_tplstringNotemp-7ID de plantilla de estilo de subtítulos (ver Estilos de Subtítulos).
enable_ai_hookbooleanNofalseAñadir texto de gancho generado por IA al inicio o al final.
ai_hook_script_stylestringNoseriousEstilo del gancho: serious, casual, informative, conversational, humorous, parody, inspirational, dramatic, empathetic, persuasive, neutral, excited, calm.
ai_hook_positionstringNobeginningPosición: beginning, end.
enable_ai_reframebooleanNofalseActivar Reencuadre con IA. Cuando true, ratio es obligatorio.
ratiostringObligatorio cuando enable_ai_reframe es trueProporción: RATIO_9_16, RATIO_1_1, RATIO_4_5, RATIO_16_9.
reframe_layoutstringNoAutoDiseño del Reencuadre con IA. Ver Valores de diseño.
enable_more_resultsbooleanNofalseProducir más clips. Solo con suscripción Enterprise.
enable_express_modebooleanNofalseModo Express: consume la mitad de API Units. Solo con suscripción Enterprise.

Valores de Diseño de Reencuadre

ratioValores permitidos de reframe_layout
RATIO_16_9Auto, Full, Fit, Grid 4, Split 2, Trio, PiP, OTS, Screen First
RATIO_9_16Auto, Full, Fit, Grid 4, Split 2, Trio, PiP, Screen First, Gameplay A, Gameplay B
RATIO_1_1Auto, Full, Fit, Grid 4, Trio
RATIO_4_5Auto, Full, Fit, Grid 4, Split 2, Trio, PiP, Screen First, Gameplay A, Gameplay B

enable_export establecido en true. Clips renderizados con export_link.

Solicitud

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": "https://www.youtube.com/watch?v=example", "project_name": "sample project name", "target_duration": "DURATION_30_60", "enable_export": true, "resolution": "HD_720", "enable_caption": true, "enable_ai_reframe": true, "ratio": "RATIO_9_16"}'

Respuesta de Envío

{"data": {"id": "proj_xyz789", "name": "sample project name", "status": "CREATED"}}

enable_export omitido o false. Solo metadatos, sin renderización.

Solicitud

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": "https://www.youtube.com/watch?v=example", "project_name": "sample project name", "target_duration": "DURATION_30_60"}'

Respuesta de Envío

{"data": {"id": "proj_abc123", "name": "sample project name", "status": "CREATED"}}

Obtener Resultados de Clipping

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

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

{
  "data": {"id": "proj_xyz789", "status": "SUCCEEDED", "expire_at": 1741824000000, "cost_usage": 120.0,
           "clips": [{"idx": 0, "title": "sample title", "begin_ms": 15000, "end_ms": 75000,
                      "thumbnail": "https://cdn.example.com/thumb/clip_001.jpg",
                      "tags": ["insight"], "desc": "sample description", "score": 81,
                      "export_link": "https://cdn.example.com/export/clip_001.mp4"}]}
}
{
  "data": {"id": "proj_abc123", "status": "SUCCEEDED", "expire_at": 1741824000000, "cost_usage": 120.0,
           "clips": [{"idx": 0, "title": "sample title", "begin_ms": 15000, "end_ms": 75000,
                      "thumbnail": "https://cdn.example.com/thumb/clip_001.jpg",
                      "tags": ["insight"], "desc": "sample description", "score": 81}]}
}

Campos de la Respuesta

CampoTipoDescripción
idstringIdentificador único de la tarea
namestringNombre de la tarea
statusstringCREATED, QUEUED, ONGOING, SUCCEEDED, FAILED
error_messagestringMotivo del error (solo cuando FAILED)
expire_atintegerTimestamp de expiración en milisegundos
cost_usagenumberAPI Units consumidas
clipsarrayLista de objetos de clip

Objeto de Clip

CampoTipoDescripción
idxintegerÍndice del clip (base 0, clasificado por potencial viral)
titlestringTítulo generado por IA
begin_msnumberTiempo de inicio en milisegundos
end_msnumberTiempo de fin en milisegundos
thumbnailstringURL de la miniatura
tagsstring[]Hashtags generados por IA
descstringDescripción generada por IA
scorenumberPuntuación de potencial viral (0–100)
export_linkstringURL de descarga del vídeo renderizado. Expira después de 24 horas.

Reexportar Clips Existentes

Usa la API de Exportación de Clips para renderizar clips posteriormente o reexportarlos con diferentes configuraciones.