Communitygithub.com

eduardogalbiati/fabrica-videos-corte

Corte automático de una grabación hablada. Elimina silencios, errores, tartamudeos y tomas repetidas, dejando la mejor versión de cada frase, con un informe de lo que se eliminó.

¿Qué es fabrica-videos-corte?

Esta skill forma parte de la **Fábrica de Vídeos Agéntica** y se encarga de limpiar grabaciones habladas de manera automática. Su función principal es detectar y eliminar silencios, errores, tartamudeos y tomas repetidas, conservando únicamente la mejor versión de cada frase, sin modificar el archivo original. Es especialmente útil cuando el cliente pide "limpiar", "cortar pausas" o "quitar errores" de un video. El proceso se ejecuta en el terminal mediante scripts de Node.js (como `npm run cortar`) y está diseñado para integrarse en un flujo de trabajo más amplio con otras skills como `fabrica-videos-rapido` y `fabrica-videos-reels`. La skill soporta formatos de estudio (grabaciones profesionales) y también graba desde celular (conversión automática a 1080×1920, 30 fps, vertical). Incluye pasos de transcripción, análisis de cortes, decisión manual de qué eliminar (basada en un informe detallado), aplicación de cortes y verificación final. Además, permite ajustes finos como la duración mínima de pausas, el margen antes/después de cada corte y la sensibilidad al ruido ambiente. El script maneja las pausas automáticamente y provee un informe en markdown de todo lo eliminado, con duraciones y motivos.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/eduardogalbiati/fabrica-de-video-skills/tree/HEAD/.claude/skills/fabrica-videos-corte

Preguntar en tu IA favorita

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

Documentación

/fabrica-videos-corte — corte automático

Skill de la Fábrica de Vídeos Agéntica. Limpia una grabación hablada: elimina los silencios, errores, tartamudeos y tomas repetidas, y deja solo la mejor versión de cada frase. El original nunca se modifica.

Eres el editor de vídeo. Comandos en el terminal, en la raíz del proyecto. TRABAJO = la carpeta trabajo.

Cuándo usar

  • El cliente envía una grabación y dice "limpia", "corta las pausas", "quita los errores".
  • Dentro de la skill fabrica-videos-rapido y la skill fabrica-videos-reels, antes de sincronizar las animaciones.

Cómo funciona

Las pausas se eliminan solas: el script detecta los silencios mediante el audio. Lo que es error o toma repetida es decisión de quien lee el texto: tú. El cliente lo verifica a través del informe y escuchando el resultado.

Paso a paso

  1. Grabación en el formato del estudio. Si llegó del celular: copia el original a TRABAJO\originais\ y ejecuta npm run converter -- "<original>" <slug> (genera TRABAJO\public\gravacao-<slug>.mp4). También vale para grabación que no es 4K HDR: el conversor gira el vídeo vertical, recorta a 1080×1920 y lo convierte a 30 fps. Extrae un fotograma del convertido y del original (ffmpeg -ss 20 -i <archivo> -frames:v 1 ...) y compáralos: rotación y color deben coincidir.
  2. Transcribir: npm run legendar -- "trabajo\public\gravacao-<slug>.mp4" (en segundo plano; ~1 min para 2 min de grabación).
  3. Analizar: npm run cortar -- analizar "trabajo\public\gravacao-<slug>.mp4" → cortes\gravacao-<slug>.cortes.json y cortes\gravacao-<slug>.falas.md (la grabación como tabla de frases con tiempo, pausas y el aviso "parece repetir en la frase N").
  4. Decidir qué se elimina. Lee la tabla de frases completa y completa la lista remover del .cortes.json:
    • toma repetida: se queda la última toma completa (la persona reinicia cuando se equivoca); las anteriores se eliminan: { "falas": [2, 3], "motivo": "errou e recomeçou" };
    • la misma frase dicha completa dos veces, con una pausa larga en medio (en la grabación real fue el CTA final): repitió porque no le gustó la primera. Se queda la última, y en el mensaje dile cuál se eliminó, para que pueda intercambiarlas;
    • calentamiento antes de empezar ("vamos allá", "vale", conversación) y todo después del CTA: se elimina;
    • tartamudeo o palabra suelta en medio de una frase: npm run cortar -- palavras cortes\gravacao-<slug>.cortes.json <nº> muestra los tiempos palabra por palabra; usa { "de": 12.30, "ate": 13.10, "motivo": "gaguejou" };
    • comentario fuera del guion ("no, espera", "otra vez", "corta"): se elimina;
    • pausa que es intencional (suspense antes de un número): ponla en mantener, ej.: { "de": 20.1, "ate": 21.4 };
    • si existe guion (roteiros\<slug>.md), compara: la toma que se queda es la que dice el texto del guion, o la más completa si cambió la frase. Ante la duda entre dos tomas buenas que dicen cosas diferentes, no cortes: pregúntale.
  5. Aplicar: npm run cortar -- aplicar cortes\gravacao-<slug>.cortes.json → TRABAJO\public\gravacao-<slug>-limpa.mp4 y cortes\gravacao-<slug>.relatorio.md (lo eliminado, cuánto tiempo, por qué y el texto que estaba allí).
  6. Verificar sin escuchar: transcribe el vídeo limpio (npm run legendar -- "<...-limpa.mp4>") y lee npm run falas -- legendas\gravacao-<slug>-limpa.json. Tres cosas:
    • el texto debe ser lo que quiso decir, sin palabras cortadas por la mitad y sin restos de errores (en la primera pasada real sobró un "Vale." del calentamiento: así se descubrió el defecto);
    • la columna "pausa después" no debe tener nada por encima de ~0,8 s: una pausa grande en el vídeo limpio es un trozo sobrante entre dos cortes;
    • el inicio y el final: extrae una hoja de fotogramas del limpio (ffmpeg -i <limpio> -vf "fps=1/2.5,scale=180:-1,tile=7x2" -frames:v 1 <hoja.jpg>) y comprueba que aparece en el cuadro y hablando desde el primer hasta el último fotograma. Si sobra algo, ajusta remover y vuelve a aplicar; si el defecto es del script, corrige cortar.mjs y anótalo aquí.
  7. Mostrarle el resultado: envía el vídeo limpio con el resumen del informe: duración antes y después, cuántos cortes, las frases que eliminaste por decisión tuya (no las pausas) y el segundo de cada empalme en el vídeo limpio (suma la duración de los fragmentos que se quedan, en resultado.fica del .cortes.json). La verificación auditiva es suya.

Ajustes (en el config del .cortes.json, luego vuelve a aplicar)

CampoValor por defectoQué hace
pausaMin0.5 sEl silencio a partir de ese tamaño se corta. Más alto = más natural, menos cortes.
folga0.12 sRespiro que queda antes y después de cada corte. Si las frases quedan demasiado pegadas, sube a 0.18.
folgaFinal0.35 sSilencio que queda al final del vídeo.
ruidoDbautomáticoLímite de lo que se considera silencio. Sala ruidosa: ejecuta analizar de nuevo con un valor más alto al final del comando (ej.: -32).

Cómo el script encaja los cortes (revisado con la primera grabación real)

  • Pausas: mediante el silencio medido en el audio. Trozos de una misma pausa separados por un chasquido de hasta 0.1 s se convierten en una pausa única.
  • Inicio y final: se elimina todo antes de la primera palabra y después de la última (ajustes, salida de plano), dejando 0.12 s al inicio y folgaFinal al final.
  • Frase marcada en remover: el corte va desde la primera pausa después de la última palabra que se queda hasta la última pausa antes de la siguiente palabra que se queda. Quien manda es el silencio del audio, no el tiempo de Whisper.

Límites conocidos

  • Tiempos de Whisper: en la grabación real, el inicio de una frase después de una pausa larga llegó hasta 0.4 s retrasado y el final de una palabra hasta 0.25 s de más o de menos. El corte de una frase completa roza el silencio y no sufre esto. En cambio, el corte en medio de una frase (tartamudeo, sin silencio a ambos lados) solo tiene el tiempo de Whisper: verifica esos puntos con más cuidado y pídele que lo escuche. Este caso aún no ha aparecido en una grabación real.
  • Pausa menor que pausaMin se queda (es el respiro natural entre frases).
  • Corte seco en la imagen: en pantalla dividida esto es normal. Si el salto molesta, avísale en lugar de inventar una transición.
  • Más de 150 fragmentos en una pasada, el script lo rechaza: aumenta pausaMin.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Skills relacionados