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
updatespara movimientos, recortes y cambios de pista comunes.
Forma raw de adición de edit_item:
- El nuevo elemento va dentro del array
addsde la transacciónjson:{ "json": "{\"adds\":[{...}]}" }. - Usa
edit_itempara 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_itemcon untrackIdexplí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_asseten el MCP externo solo acepta URLs públicas http(s) comofilePath. 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_assetya no acepta un argumentocodeen línea. - Copiar medios locales en el espacio de trabajo no es la solución para importaciones de video/audio/imagen/GIF; usa
asset-importeimport_mediaen 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 tracksounknown_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")requierewidth,height, ydurationodurationInFrames.- El código MG debe pasar el validador de OpenChatCut.
AbsoluteFillraíz no es válido para código MG generado; usa undivraíz con escalado.- Evita declarar una variable local de nivel superior llamada
scaledentro del código MG. El validador/tiempo de ejecución puede ya tener ese identificador reservado; usa un nombre específico comouiScale.
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, editor5177y view-syncer4850están intencionalmente aislados del stack anterior3000/5173/4848.
Advertencia sobre el renderizador de fotogramas en línea de tiempo:
- Si
view_timeline_framesfalla 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 quetrack_progresstarget=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.