OpenClip: edición de video
edit_video realiza una operación por llamada sobre un archivo de video: recortar (crop), recortar por tiempo (trim), rotar, redimensionar, comprimir o silenciar. Es GRATIS, requiere una cuenta de OpenClip pero no necesita suscripción ni créditos.
Encadena llamadas para combinar operaciones: pasa la salida de una llamada como entrada de la siguiente.
Configuración (una vez)
OpenClip es un servidor MCP remoto en https://openclip.app/mcp. Inicia sesión con tu cuenta de OpenClip cuando aparezca el mensaje OAuth, no hay una clave API que copiar.
- Claude Code:
claude mcp add --transport http openclip https://openclip.app/mcp, luego/mcppara autorizar. - Claude Desktop / web: Configuración, Conectores, "Agregar conector personalizado", pega la URL, inicia sesión.
- Cursor (
.cursor/mcp.json):{ "mcpServers": { "openclip": { "url": "https://openclip.app/mcp" } } } - Clientes solo con cabecera: genera un token MCP en
openclip.app/settings/connecty conéctate ahttps://openclip.app/mcp/keyconAuthorization: Bearer <token>.
Verificación: llama a get_account.
Cómo obtener el archivo
create_upload(filename, content_type)devuelve unidy unaupload_url.- Realiza un PUT de los bytes sin procesar a
upload_url. - Pasa el
iddevuelto como el argumentovideo.
NO llames a complete_upload. Eso inicia el pipeline de recorte de pago. Las herramientas gratuitas leen el archivo subido directamente. Un video que ya esté en list_videos también sirve como entrada.
Operaciones
Cada llamada es edit_video(video, operation, ...params).
- crop - ya sea
aspect("1:1","9:16","16:9","4:5") o explícitosx,y,width,height. Usaaspect: "9:16"para reencuadrar metraje apaisado para TikTok, Reels, y Shorts. - trim -
start_msyend_ms, ambos obligatorios. Los tiempos están en milisegundos. - rotate -
degrees(90,180,270) y/oflip(none,horizontal,vertical). - resize -
widthyheighten píxeles. - compress - ya sea
target_mb(apunta a un tamaño de archivo) ocrf(de 18 a 32, menor es mejor calidad y archivo más grande). Usatarget_mbcuando el usuario mencione un límite de tamaño. - mute - sin parámetros, elimina la pista de audio.
Sondeo
edit_video devuelve un hashid tool_job con status: "queued". Sondea
get_tool_job_status(tool_job) cada 5 a 10 segundos:
queued/processing- sigue trabajando, continúa sondeando.completed- devuelve las URLs CDN permanentes deoutputsmásresult_meta.failed- devuelveerror.
Nunca asumas que una llamada finalizó de forma sincrónica.
Reglas
- Una operación por llamada. Para recortar y luego reencuadrar, ejecuta primero el recorte por tiempo (trim), luego pasa su salida a una llamada de recorte (crop).
- Los tiempos están en milisegundos en todas partes, no en segundos.
- Las URLs de salida son enlaces CDN permanentes, no firmados ni con caducidad.
- El uso gratuito tiene una limitación de tasa por día con un límite de tamaño por archivo. El texto de error explica cómo eliminar un límite.
Ejemplos de indicaciones a acciones
- "Corta esto a los primeros 30 segundos" -
create_upload, PUT bytes,edit_video(video, operation="trim", start_ms=0, end_ms=30000), sondear. - "Hazlo vertical para TikTok" -
edit_video(video, operation="crop", aspect="9:16"), sondear. - "Este archivo pesa 400MB, déjalo por debajo de 50" -
edit_video(video, operation="compress", target_mb=50), sondear. - "Elimina el audio" -
edit_video(video, operation="mute"), sondear. - "Recorta al minuto del medio y hazlo cuadrado" - recortar por tiempo (trim), sondear, luego recortar la salida con
aspect="1:1", sondear de nuevo.
Relacionado
Convertir entre formatos (mp4, gif, mp3) es convert_media, consulta la habilidad openclip-convert.
Convertir un video largo en clips cortos clasificados es el pipeline de pago, consulta
openclip-clipping.