Communitygithub.com

skulitom/cutbolt-plugin

Genera subtítulos a partir de transcripciones alineadas con el origen en una línea de tiempo editada de Cutbolt y adjunta clips de escena editables sin necesidad de una película intermedia.

¿Qué es cutbolt-plugin?

Este skill automatiza el proceso de añadir subtítulos a una línea de tiempo de video editada con Cutbolt, utilizando una transcripción fuente ya sincronizada (transcript.json). Está diseñado para agentes de IA que trabajan con proyectos de edición de video, permitiendo desde el borrador de subtítulos hasta su renderizado y aplicación final, todo sin generar un archivo de vídeo intermedio. Soporta los sistemas operativos Windows y Linux, y requiere FFmpeg/ffprobe externos, además de un runtime de reconocimiento de voz configurado aparte si se necesita. El flujo de trabajo se divide en pasos: borrador, renderizado (con control de desbordamiento de texto), espera del trabajo, y aplicación de las operaciones resultantes, asegurando que los clips de subtítulos mantengan recetas de escena editables y se rendericen directamente sobre el metraje original.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/skulitom/cutbolt-plugin/tree/HEAD/skills/captions

Preguntar en tu IA favorita

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

Documentación

Subtitular el corte actual

Usa un proyecto guardado con pistas colocadas y un documento de transcripción en transcript.json. $PROJECT_ID y $REVISION se refieren al corte actual. Haz el borrador después de los ajustes de sincronización. Reemplaza $MARCADORES con valores reales; envía las llamadas cutbolt_* listadas sin comando, o usa cutbolt_run con comando/argumentos. Mantén el renderizado bloqueante en job.start.

{"command":"captions.draft","project":{"project_id":"$PROJECT_ID"},"transcripts":[{"file":"transcript.json"}]}

Revisa el texto de las pistas y la sincronización en el documento devuelto, luego consérvalo como $DOCUMENTO_SUBTITULOS. Corrige los errores de reconocimiento antes de renderizar. $FUENTE es un objeto de identidad/ruta de fuente (por ejemplo {"path":"font.ttf"}) o un nombre instalado sin ambigüedad de fonts.find. $TAMANO_FUENTE, $ALTURA_LINEA y $RECTANGULO_SUBTITULOS son valores de diseño en píxeles que se ajustan al proyecto. Elige suficiente espacio para las pistas reales. El desbordamiento se rechaza, por lo que el texto cortado no puede pasar desapercibido.

{"command":"job.start","request_id":"caption-render","run":"captions.render","arguments":{"document":"$DOCUMENTO_SUBTITULOS","project":{"project_id":"$PROJECT_ID"},"layouts":{"default":{"fonts":["$FUENTE"],"size":"$TAMANO_FUENTE","rect":"$RECTANGULO_SUBTITULOS","line_height":"$ALTURA_LINEA","letter_spacing":0,"wrap":"none","overflow":"reject"}},"output":"caption-edits.json","mode":"generated","track_id":"captions","asset_id":"caption"}}

$ID_TRABAJO es el ticket devuelto.

{"command":"job.wait","job_id":"$ID_TRABAJO","timeout_seconds":120}

Continúa solo cuando el estado sea completado. Conserva result.operations como $OPERACIONES_SUBTITULOS (una referencia a archivo) y result.expected_revision como $REVISION_SUBTITULOS. Aplica esa propuesta en la revisión registrada. El comando crea la pista de subtítulos si está ausente. Si ya contiene subtítulos superpuestos, elimina explícitamente los clips antiguos deseados y prepara de nuevo contra la nueva cabeza. No dupliques subtítulos ni sobrescribas gráficos no relacionados.

{"command":"session.apply","project_id":"$PROJECT_ID","expected_revision":"$REVISION_SUBTITULOS","request_id":"attach-captions","operations":"$OPERACIONES_SUBTITULOS"}

Conserva la nueva revisión. Exporta e inspecciona los subtítulos reales en tiempos representativos, incluyendo la primera y última pista. Un cambio de sincronización después de este paso necesita subtítulos regenerados. Los clips guardados conservan recetas de escena editables y se renderizan directamente con el metraje; no se compila una película de subtítulos intermedia. Conserva el documento de subtítulos para futuros cambios de texto/sincronización.

Para una fuente local suministrada, usa un objeto de ruta; las cadenas nombran familias de fuentes instaladas. Las fuentes instaladas faltantes o ambiguas necesitan una identidad utilizable de fonts.find. Para desbordamiento de texto, ajusta el diseño de la caja/fuente/pista y usa un nuevo nombre de archivo de salida. Para una revisión obsoleta, verifica si la sincronización de la línea de tiempo cambió antes de adjuntar. Reutiliza el ID de solicitud de una edición incierta e inspecciona session.receipt; job.wait devolviendo un ticket no es prueba de un renderizado completado.

Este flujo de trabajo funciona en Windows y Linux con FFmpeg/ffprobe externos. El reconocimiento de voz, cuando es necesario, requiere un runtime local configurado por separado y un modelo. La grabación y descodificación por hardware no tienen backend en Linux. El plugin no incluye motor, fuentes, modelos ni herramientas multimedia.

Skills relacionados