Communitygithub.com

0xsline/openchatcut

Úsalo cuando una llamada a herramienta de OpenChatCut falle o devuelva una forma inesperada.

¿Qué es openchatcut?

Este skill es una guía de referencia rápida para desarrolladores que trabajan con la API de OpenChatCut, especialmente cuando las operaciones fallan debido a formas de datos incorrectas, conflictos de línea de tiempo, restricciones de rutas de trabajo, fallos de conversión de video o requisitos de gráficos en movimiento. Proporciona ejemplos correctos de formato JSON para las operaciones `edit_item` (actualización y adición), explica cómo manejar errores de superposición en la línea de tiempo (por ejemplo, reasignando un `trackId` explícito), detalla las limitaciones del endpoint `push_asset` (solo acepta URLs http(s) públicas) y diferencia entre la importación de medios locales (usando `import_media`) y assets de gráficos en movimiento (usando `create_motion_graphic_from_code` con un root `div` escalable). También cubre casos esquina como ejecuciones de backend en puertos no estándar que requieren configuración del view-syncer Zero, y recomendaciones para depurar fallos de `view_timeline_frames` (reintentar con menos fotogramas, esperar a que finalicen las subidas antes de informar).

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/0xsline/openchatcut/tree/HEAD/src/agent/skills/known-errors

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Errores Conocidos

Forma raw de actualización de edit_item:

  • Incorrecto: { "id": "abc", "fromFrame": 30 }
  • Correcto: { "json": "{\"updates\":[{\"id\":\"abc\",\"fromFrame\":30}]}" }
  • Usa esta misma forma updates para movimientos, recortes y cambios de pista comunes.

Forma raw de adición de edit_item:

  • El nuevo elemento va dentro del array adds de la transacción json: { "json": "{\"adds\":[{...}]}" }.
  • Usa edit_item para colocaciones simples de video, por ejemplo { "json": "{\"adds\":[{\"type\":\"video\",\"assetId\":\"...\",\"fromFrame\":0}]}" }.

Superposición en la línea de tiempo:

  • Texto de error: Overlap: updated item at ... would overlap existing item at ... on this track.
  • No fuerces la escritura ni elimines el elemento conflictivo en silencio.
  • Reintenta la transacción edit_item con un trackId explícito disponible, por ejemplo una actualización que contenga "trackId":"V2", o pregunta al usuario qué capa debe ganar.

Restricciones de rutas del espacio de trabajo:

  • push_asset en el MCP externo solo acepta URLs públicas http(s) como filePath. Rechaza rutas locales, rutas del espacio de trabajo y rutas de archivos adjuntos del chat.
  • Para assets de gráficos en movimiento, pasa el código JSX mediante create_motion_graphic_from_code({ code:"...", name, width, height, durationInFrames }). push_asset ya no acepta un argumento code en línea.
  • Copiar medios locales en el espacio de trabajo no es la solución para importaciones de video/audio/imagen/GIF; usa asset-import e import_media en su lugar.
  • Usa import_media action=create_session, luego ejecuta el auxiliar de importación de medios de OpenChatCut una vez con el token devuelto para archivos retenidos por el cliente.

Fallo de conversión de video en navegador:

  • El texto de error a menudo incluye Unable to convert video without dropping audio/video tracks o unknown_source_codec.
  • Vuelve a ejecutar el auxiliar de importación de medios de OpenChatCut; él gestiona la conversión alineada con el frontend y mostrará un error accionable si la conversión es imposible.
  • No pidas al usuario que reimporte el mismo archivo a través de la interfaz del editor como solución alternativa — la ruta de conversión es la misma, el error se repetirá. Arregla la fuente (re-codifica localmente con ffmpeg) o elige un archivo diferente.
  • Después de que el asset de reemplazo se haya subido/transcrito, elimina el asset original fallido si no se usa. El pool de medios final limpio debe parecerse a una importación exitosa, no a una importación fallida más un reemplazo.

Requisitos de gráficos en movimiento:

  • push_asset(type:"motion-graphic") requiere width, height, y duration o durationInFrames.
  • El código MG debe pasar el validador de OpenChatCut.
  • AbsoluteFill raíz no es válido para código MG generado; usa un div raíz con escalado.
  • Evita declarar una variable local de nivel superior llamada scale dentro del código MG. El validador/tiempo de ejecución puede ya tener ese identificador reservado; usa un nombre específico como uiScale.

Advertencia sobre Zero en desarrollo local:

  • Cuando el backend se ejecuta en un puerto no predeterminado, usa una configuración de view-syncer de Zero acorde.
  • En esta POC, backend 3010, editor 5177 y view-syncer 4850 están intencionalmente aislados del stack anterior 3000/5173/4848.

Advertencia sobre el renderizador de fotogramas en línea de tiempo:

  • Si view_timeline_frames falla para un fotograma, la ruta de escritura del proyecto aún puede estar sana — reintenta con menos fotogramas o un momento diferente antes de concluir algo.
  • Los assets que aún usan placeholders blob: (subida en curso) se renderizan vacíos; espera a que track_progress target=upload antes de tratar un fotograma en blanco como un error.
  • No informes éxito de prueba visual a menos que la herramienta devuelva contenido de imagen que confirme visiblemente el fotograma objetivo.

Individual skills in this repo

This repo contains 11 individual skills — each has its own dedicated page.

0xsline/openchatcut

Connect an MCP-capable coding agent to OpenChatCut and edit local video projects. Use when the user asks to install, connect, or set up OpenChatCut; inspect or edit an OpenChatCut project; work with its timeline, transcript, captions, media, generation, motion graphics, audio, color, or export tools; or recover from an OpenChatCut MCP error.

0xsline/openchatcut

Use when acquiring or importing media into a OpenChatCut project asset library for video editing or creation, including local/attached videos, user-provided paths, public media URLs, web video/audio/image assets, upload fallback decisions, and deciding between import_media, download_media, or manual user action.

0xsline/openchatcut

Use when a OpenChatCut video editing or creation workflow needs export, render, download, share, final delivery, subtitle-file export, render choice, local-only asset handling, or export fallback explanation.

0xsline/openchatcut

AI image generation via Fal.ai, gpt-image-2, nano-banana, MiniMax image-01, and xAI Grok Imagine. Use when the user wants to generate or create an image / picture / still.

0xsline/openchatcut

Music generation via Mureka, MiniMax, Atlas Cloud, and Sonilo. Use for instrumentals, songs, soundtracks, track/stem generation, covers, or video-conditioned scoring of the finished cut through `submit_music`.

0xsline/openchatcut

OpenChatCut product knowledge — UI layout, editor features, and how generation providers are configured. Use when the user asks about the product interface, how to use a feature, where to find something, or needs GUI guidance for something the agent cannot do directly. Also use as fallback when a task fails and the user needs to complete it manually in the UI. NOT for live project-state queries ("where are my folders?", "what's on my timeline?", "where is clip X?") — those are answered by `read_project`, not by this skill.

0xsline/openchatcut

AI shader generator for WebGL video effects, transitions, masks, and color grading (LUT / 调色 / 电影感 / film look). Use when the user wants a video effect (滤镜 / 特效), a transition (转场 / crossfade / wipe / cube / 3d), a mask (蒙版 / 遮罩 / reveal), a zoom / push-in (推近 / 推镜头), or a color grade — try the built-in effects (zoom, builtin LUTs) before generating a new shader.

0xsline/openchatcut

Use when checking whether agent edits are reflected in the OpenChatCut project and editor.

0xsline/openchatcut

AI video generation via Fal.ai, Seedance 2.0, Kling, MiniMax Hailuo, xAI Grok Imagine, and OFox. Use when the user wants to generate a video clip — text-to-video, image-to-video, first/last-frame transitions, reference-guided generation, multi-shot, or generatively editing / extending an existing clip.

0xsline/openchatcut

Text-to-Speech (TTS), voiceover, narration placement/sync, and custom sound effects (SFX) generator. Use when the user wants generated speech from text, wants to add/replace/align narration or voiceover for an existing video/timeline, wants to keep existing voiceover synced after visual retiming edits, needs voice audition/selection, or explicitly wants a newly generated/custom sound effect that is not available in the Sound Effects library.

0xsline/openchatcut

Use when the agent should ask the user for structured input with an in-chat form, including single-select, multi-select, text fields, style pickers, or voice audition choices.

Skills relacionados