Communitygithub.com

F0rger123/claude-video-editing-god-mode

Agente 1 del pipeline de edición de video. Elimina silencios y espacios muertos de una grabación de cabeza parlante. Se usa cuando se pide cortar silencios, recortar pausas, eliminar espacios muertos o ajustar el ritmo de un video en bruto, dado un transcripción a nivel de palabra. Produce una lista de edición (EDL), una transcripción re-sincronizada para agentes posteriores y, opcionalmente, el video editado mediante ffmpeg. NO corta errores, repeticiones ni falsos comienzos; eso es trabajo del agente de corte de errores.

¿Qué es claude-video-editing-god-mode?

Este agente constituye el primer paso de un pipeline automatizado de edición de video, diseñado específicamente para eliminar silencios y espacios muertos en grabaciones de tipo 'cabeza parlante'. Su función principal es procesar una grabación en bruto junto con su transcripción a nivel de palabra y recortar únicamente los silencios: el espacio muerto antes de la primera palabra y después de la última, así como las pausas entre palabras que superen un umbral determinado (recortadas a una respiración natural, nunca a un corte brusco). Es determinista y se basa exclusivamente en la transcripción, lo que garantiza que su salida (`*.silence-transcript.json`) se integre limpiamente con los agentes posteriores del pipeline, como el de corte de errores (Agente 2) y el validador de sincronización de ritmo. El agente soporta múltiples plataformas de transcripción, incluyendo ElevenLabs Scribe y formatos genéricos, y puede ejecutarse en modo plano (solo generar la EDL y la transcripción re-sincronizada) o con aplicación directa del corte mediante ffmpeg, manteniendo el audio y el video sincronizados. Su uso es ideal para flujos de trabajo de edición profesional donde se busca optimizar el ritmo de manera automática y precisa.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/F0rger123/claude-video-editing-god-mode/tree/HEAD/.agents/skills/cut-silences

Preguntar en tu IA favorita

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

Documentación

Cortar Silencios (Agente 1 del Pipeline)

Primer paso de la edición automatizada. Toma una grabación en bruto + su transcripción a nivel de palabra y elimina solo silencio: espacio muerto antes de la primera palabra y después de la última, además de pausas entre palabras que superen un umbral (recortadas a una respiración natural, nunca a un corte brusco). No modifica las palabras del hablante: los falsos comienzos, retomas y tartamudeos son trabajo del agente cortar-errores (Agente 2).

Este agente es determinista y se basa en la transcripción, por lo que su salida (*.silence-transcript.json) se integra limpiamente con los agentes posteriores y el validador de sincronización de ritmo.

Cuándo usarlo

  • "cortar los silencios", "recortar las pausas", "eliminar espacios muertos", "ajustar el ritmo"
  • Como la primera etapa del flujo de trabajo de edición principal, justo después de la transcripción.

Prerrequisitos

Un archivo JSON de transcripción a nivel de palabra. Puede tener el formato de ElevenLabs Scribe ({ words: [{ text, start, end, type }], audio_duration_secs }) o uno genérico { words: [{ text, start, end }] }. Puede generarlo con el transcriptor del espacio de trabajo:

node scripts/transcribe-elevenlabs.mjs ruta/al/raw.mp4    # -> ruta/al/raw.json

Uso

# 1) Solo planificar — calcular el corte, escribir EDL + transcripción re-sincronizada (sin tocar el video)
node .agents/skills/cut-silences/scripts/cut-silences.mjs <transcripcion.json> \
  --out-dir video-projects/<slug>/assets

# 2) Con un video — también escribir el comando ffmpeg (aún no renderiza)
node .agents/skills/cut-silences/scripts/cut-silences.mjs <transcripcion.json> \
  --video video-projects/<slug>/assets/raw.mp4 --out-dir video-projects/<slug>/assets

# 3) Renderizar el video recortado (ffmpeg local, re-codificar, A/V sincronizados)
#    agregar --apply para ejecutar ffmpeg realmente
node .agents/skills/cut-silences/scripts/cut-silences.mjs <transcripcion.json> \
  --video video-projects/<slug>/assets/raw.mp4 --apply \
  --output video-projects/<slug>/assets/edited-silenced.mp4

Opciones

BanderaPredeterminadoSignificado
--video <ruta>—Video fuente; habilita el comando ffmpeg / renderización
--out-dir <directorio>junto al transcripciónDonde se escriben los archivos de salida
--output <ruta><video-stem>.silenced.mp4Ruta del video recortado
--gap <s>0.55Pausa mínima considerada como silencio recortable
--head-pad <s>0.22Silencio mantenido antes de la primera palabra
--tail-pad <s>0.34Silencio mantenido después de la última palabra
--applydesactivadoEjecutar realmente ffmpeg para renderizar el corte

Cómo decide (las reglas de silencio)

  • Las pausas por debajo de --gap (0.55s) se mantienen sin cambios — ritmo natural del habla.
  • Para una pausa recortada, se mantiene una respiración natural, escalada según el contexto: 0.24s para pausas largas (≥2s), 0.20s después de un final de frase (. ! ?), 0.14s en otros casos. La respiración mantenida se desplaza ligeramente hacia el final de la frase anterior.
  • El espacio muerto al inicio/final se recorta a --head-pad / --tail-pad.
  • Los rangos a eliminar se fusionan; los rangos a mantener son el complemento. El corte se renderiza con un filtro ffmpeg trim/atrim + concat (escrito en un script *.silence-filter.txt y pasado mediante -/filter_complex), por lo que el video y el audio permanecen sincronizados.

Archivos de salida (escritos en --out-dir)

ArchivoPropósito
<stem>.silence-edl.jsonRangos de mantener/eliminar, duraciones, parámetros — la lista de edición
<stem>.silence-transcript.jsonPalabras re-sincronizadas en la línea de tiempo editada (alimenta al Agente 2 + ritmo)
<stem>.silence-decisions.mdResumen legible para humanos + las pausas más grandes recortadas
<stem>.silence-filter.txtEl filtro ffmpeg (solo con --video)
<video-stem>.silenced.mp4El video recortado (solo con --apply)

El resumen JSON impreso en stdout incluye removed, removedPct, conteos de rangos y rutas de salida — útil para que el flujo de trabajo principal registre y encadene.

Notas de ajuste

  • Por defecto para YouTube de cabeza parlante (--gap 0.55) se elimina aproximadamente un 15-20% de una toma en bruto típica como silencio puro. Reduzca --gap para un corte más rápido y enérgico; auméntelo para preservar un espacio de respiración más natural.
  • Si un corte se siente demasiado agresivo en los límites de las frases, aumente la respiración al final de la frase o aumente --gap.

Transferencia al siguiente agente

Pase <stem>.silence-transcript.json (y el silenced.mp4 si se renderizó) al agente cortar-errores. Dado que las marcas de tiempo ya están en la línea de tiempo editada, la sincronización de ritmo posterior y scripts/validate-beat-sync.mjs funcionan sin ajustes adicionales.

Individual skills in this repo

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

Skills relacionados