Communitygithub.com

i0wU/claude-autocut

Edición de video con IA para grabaciones de personas hablando, ejecutada localmente. Cortes inteligentes automáticos que eliminan pausas largas, palabras de relleno y tomas repetidas, edición de entrevistas y podcasts, videos verticales para Reels, TikTok y Shorts, subtítulos automáticos (SRT e incrustados), y un modo de podcast animado / caricatura donde una escena recortada en papel sigue la narración sobre el orador.

¿Qué es claude-autocut?

Claude AutoCut es una habilidad de edición de video impulsada por transcripciones a nivel de palabra que se ejecuta completamente en la máquina del usuario, sin necesidad de API keys ni servicios de pago. Utiliza Whisper (faster-whisper) para reconocimiento de voz, FFmpeg para procesamiento de medios, Pillow para subtítulos y, en el modo caricatura, HyperFrames (Node.js) para renderizar animaciones. El asistente puede realizar ediciones automáticas conservadoras que eliminan pausas, sonidos de relleno y tomas fallidas, pero nunca modifica el significado del habla, requiriendo aprobación explícita del usuario para cortes de alto impacto. También puede generar subtítulos, crear animaciones de podcast con escenas recortadas que siguen la narración, y verificar la edición comparando la transcripción original con la editada, reportando resultados sin pretender escuchar el video.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/i0wU/Claude-AutoCut-Skill/tree/HEAD/.claude/skills/claude-autocut

Preguntar en tu IA favorita

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

Documentación

Claude AutoCut

Edición de video local impulsada por una transcripción a nivel de palabra. Todo se ejecuta en la máquina del usuario: Whisper (faster-whisper) para el habla, FFmpeg para los medios, Pillow para los subtítulos y, solo en el modo caricatura, HyperFrames (Node.js) para renderizar la animación. Sin clave API, sin servicio pago, nada se sube.

La línea de comandos es scripts/autocut.py dentro de esta carpeta de habilidad. Ejecútala con el Python que tenga los requisitos instalados (ver "Configuración"):

python "<directorio-habilidad>/scripts/autocut.py" <comando> ...

<directorio-habilidad> es el directorio base de esta habilidad (se muestra cuando la habilidad se carga).

Elige el modo

El usuario quiereModoComando
"editar este video", "cortar las pausas", "eliminar los 'um'", "limpiar mis tomas repetidas"Edición Automáticaedit VIDEO -o PROYECTO
subtítulos en un video sin cortarloSolo Subtítuloscaptions VIDEO -o CARPETA
una escena animada sobre el orador, manteniendo toda la grabaciónAnimación Completacartoon init VIDEO -o PROYECTO, guion gráfico, cartoon render
editar primero, luego animar el video editadoCompletocomplete VIDEO -o CARPETA, guion gráfico, cartoon render
"caricatura", "podcast animado" sin decir si cortarpreguntar una vez: ¿mantener todo (Animación Completa) o cortar primero (Completo)?

Si la solicitud es ambigua, pregunta qué modo en una pregunta breve y recomienda uno. Antes de cualquier otra cosa, ejecuta doctor una vez en la sesión: indica qué modos están listos en esta máquina.

Configuración (una vez por máquina)

  1. python -m venv .venv y actívalo, luego pip install -r "<directorio-habilidad>/requirements.txt".
  2. FFmpeg (ffmpeg y ffprobe) en PATH.
  3. Solo modos caricatura: Node.js 18+ (npx y npm). HyperFrames 0.8.79 se obtiene mediante npx en el primer uso y nunca se actualiza automáticamente; cada proyecto de caricatura instala GSAP con npm.
  4. python "<directorio-habilidad>/scripts/autocut.py" doctor

La primera transcripción descarga el modelo Whisper (--model tiny ~75 MB, small ~480 MB, el predeterminado). Usa --language cuando se conozca el idioma; --model medium o large-v3 para audio difícil.

Edición Automática

python "<directorio-habilidad>/scripts/autocut.py" edit input.mp4 -o edits/mi-video [--language en] [--model small]

Pasos: transcripción → análisis → plan → renderización → verificación (la edición se transcribe nuevamente y se compara) → subtítulos → REPORT.md. Salidas en la carpeta del proyecto: renders/cut_vN.mp4 (edición limpia), renders/final_vN.mp4 (con subtítulos incrustados), captions_vN.srt, decisions.md (cada segmento eliminado con su tipo y razón), analysis.md, verify_vN.json. Nada se sobrescribe nunca: cada renderización es una nueva versión. El video fuente solo se lee.

Lo que el plan hace por sí solo (conservador a propósito):

  • recorta el silencio antes de la primera y después de la última palabra;
  • acorta pausas más largas de 0.7 s pero nunca las elimina; una pausa después del final de una oración retiene más (una posible pausa para énfasis);
  • elimina sonidos de relleno y una toma incompleta que se repite justo después;
  • de dos tomas completas de la misma oración, conserva la más limpia según la evidencia, nunca "la última" o "la más corta"; si la evidencia es pareja, ambas se quedan y el caso se lista bajo "Para revisión";
  • conserva el sonido audible que la transcripción omitió y descarta texto que Whisper inventó sobre silencio.

El control (cortes de alto impacto)

Un corte que elimina palabras no dichas en ningún otro lugar (incluyendo negaciones) es de alto impacto. El plan automático nunca hace uno; provienen solo de overrides.json (cortes que añades a solicitud del usuario). La renderización se detiene hasta que cada corte de alto impacto tenga una aprobación. Para aprobar, muestra al usuario el intervalo exacto y las palabras de decisions.md, obtén un sí explícito, luego:

python "<directorio-habilidad>/scripts/autocut.py" approve PROYECTO --start 12.0 --end 18.5 --by "usuario" --reason "pidió eliminar la digresión"
python "<directorio-habilidad>/scripts/autocut.py" edit input.mp4 -o PROYECTO     # la transcripción se reutiliza, nueva versión renderizada

Nunca registres una aprobación que el usuario no dio. plan PROYECTO vuelve a ejecutar análisis y plan sin renderizar.

overrides.json (en la carpeta del proyecto)

{"cuts":  [{"start": 12.0, "end": 18.5, "reason": "digresión fuera de tema"}],
 "keep":  [{"start": 3.0, "end": 4.2, "reason": "el relleno es parte del chiste"}],
 "pauses": {"p04": {"action": "keep"}, "p07": {"keep_s": 0.8}}}

Los ids de pausas (p04) provienen de analysis.md. Lee references/editing.md para saber cómo se clasifican las decisiones.

Informar al usuario

Lee REPORT.md y decisions.md e informa al usuario, brevemente: duración antes y después, qué se eliminó y por qué, cualquier cosa bajo "Para revisión", si la verificación pasó (palabras faltantes, negaciones conservadas). Di que no puedes escuchar ni ver el video: el ritmo y el gusto son para que el usuario los juzgue con sonido.

Solo Subtítulos

python "<directorio-habilidad>/scripts/autocut.py" captions input.mp4 -o captions/mi-video [--no-burn] [--caption-y 0.75]

Escribe captions.srt, captions.json y captioned.mp4. Los videos verticales obtienen subtítulos grandes en mayúsculas al 70% de la altura; los horizontales se colocan cerca de la parte inferior. Cada palabra hablada aparece una vez, en orden.

Caricatura (Animación Completa y Completo)

  1. cartoon init VIDEO -o PROYECTO (Completo hace edit primero y crea el proyecto de caricatura sobre la edición).
  2. Lee PROYECTO/speech.md (bloques de habla con tiempos) y escribe PROYECTO/storyboard.json: escenas que cubren todo el video sin espacios, cada una con un escenario, las poses y caras del presentador, objetos y palabras en pantalla. El esquema, el catálogo (escenarios, poses, caras, objetos, transiciones) y las reglas de diseño están en references/cartoon.md. Léelo antes de escribir el primer guion gráfico.
  3. cartoon check PROYECTO hasta que no reporte errores. El texto en pantalla solo puede usar palabras que se hablan.
  4. cartoon snapshot PROYECTO --at 1.5,8,20 y mira los fotogramas en reviews/.
  5. cartoon render PROYECTO (o --range 0-6 para una prueba rápida). Salida: renders/cartoon_vN.mp4 con el audio fuente copiado sin cambios; renders/cartoon_vN.qc.json verifica duración y audio.

La animación lee el significado del habla solo a través del guion gráfico que escribes: el código no entiende el habla por sí mismo.

Reglas

  • Nunca modifiques ni elimines el video fuente o renderizaciones anteriores.
  • Nunca agregues un corte que cambie el significado del habla; nunca apruebes un corte de alto impacto por el usuario.
  • El texto en pantalla y los subtítulos usan solo palabras que se hablan.
  • Ejecuta las renderizaciones una a la vez; la renderización de caricatura es pesada (ver references/troubleshooting.md).
  • No afirmes que el resultado "suena bien": no puedes escucharlo. Reporta lo que se midió.

Cuando algo falla

Consulta references/troubleshooting.md (FFmpeg faltante, descarga del modelo, Node/npx, HyperFrames, memoria, idioma incorrecto, transcripción deficiente).

Skills relacionados