/auto-video-edit: de metraje bruto a video terminado
Ejecuta todo el proceso sin detenerse a preguntar. Corrige errores y vuelve a ejecutar hasta que haya un final-video.mp4 de calidad.
SKILL_DIR abajo se refiere a la carpeta donde se encuentra este archivo (normalmente ~/.claude/skills/auto-video-edit).
1. Verificar la configuración (una vez)
ls SKILL_DIR/.venv/bin/python SKILL_DIR/remotion/node_modules/.bin/remotion
Si falta alguno, ejecuta el install.sh del repositorio, o hazlo manualmente:
python3 -m venv SKILL_DIR/.venv && SKILL_DIR/.venv/bin/pip install -r SKILL_DIR/requirements.txt
cd SKILL_DIR/remotion && npm install && npx remotion browser ensure
También necesita ffmpeg, ffprobe y node en el PATH (macOS: brew install ffmpeg node).
2. Ejecutar el pipeline
En la carpeta con el metraje (se usa el archivo de video más grande a menos que se especifique uno):
bash SKILL_DIR/scripts/run_all.sh # o: run_all.sh mi-toma.mov
Ejecuta tres pasos, cada uno también se puede ejecutar por separado con SKILL_DIR/.venv/bin/python SKILL_DIR/scripts/<step>.py:
| Paso | Qué hace | Escribe |
|---|---|---|
edit.py | encuentra el habla, corta silencios > 0.5 s (mantiene 0.15 s de aire), divide en tomas de ~4.5 s, elige tomas normales / con zoom (1.3×) / ajustadas (1.5×) por toma a partir de las palabras, centra los zooms en el rostro detectado, gradúa el color, masteriza la voz a -14 LUFS, fundidos de 10 ms en cada corte | edited-video.mp4, work/transcript.json, work/edit_report.json |
animate.py | encuentra momentos que necesitan un visual: números con unidades → Contador, "A vs B" / "en lugar de" / antes-después → Comparación, 3+ frases "primero / luego / finalmente" → Diagrama de flujo, afirmaciones contundentes ("la verdad es", "la mayoría de la gente", …) → Tarjeta de texto; aproximadamente 1 tarjeta cada 15 s, nunca en los primeros 2.5 s; renderiza cada tarjeta al tamaño y fps del video | work/animation_plan.json, animations/*.mp4, work/animation_manifest.json |
finalize.py | inserta cada tarjeta en su momento con fundidos suaves; si existe una carpeta broll/, inserta clips cuyos nombres de archivo coincidan con palabras habladas (broll/coffee.mp4 → "café") durante 3 s | final-video.mp4, work/finalize_report.json |
Flags útiles: edit.py --no-zoom, --whisper small (mejor transcripción, más lento), --silence-db -35 (sala silenciosa) / -25 (sala ruidosa), --min-silence 0.35 (cortes más ajustados). animate.py --max 3, --min-gap 8.
3. Hacer las tarjetas inteligentes (hacer esto cada vez)
El plan automático usa reglas. Mejóralo con la transcripción antes del render final:
SKILL_DIR/.venv/bin/python SKILL_DIR/scripts/animate.py --plan-only- Lee
work/transcript.jsonywork/animation_plan.json. Edita el plan:- Reescribe cada
headline/label/steps/valueen 2–6 palabras contundentes que digan lo que el orador quiere decir (no un fragmento de la oración). Corrige números que la transcripción malinterpretó. - Elimina tarjetas que no ayuden a la comprensión; añade una tarjeta donde un número clave, lista o contraste no tenga ninguna. Tipos de tarjeta y propiedades:
Counter:{"to": 75, "decimals": 0, "prefix": "$", "suffix": "%", "label": "..."}Comparison:{"left": {"label": "Antes", "value": "4 hours"}, "right": {"label": "Después", "value": "10 min"}}Flowchart:{"steps": ["Grabar", "Subir", "Publicar"]}(2–5 pasos)TextCard:{"headline": "Nadie habla de esto", "body": ""}
- Cada tarjeta necesita
"start"(segundos en edited-video.mp4) y"seconds"(3–5).
- Reescribe cada
SKILL_DIR/.venv/bin/python SKILL_DIR/scripts/animate.py --from-planSKILL_DIR/.venv/bin/python SKILL_DIR/scripts/finalize.py
4. Verificar el resultado
- Lee
work/edit_report.jsonywork/finalize_report.json: la duración se redujo de manera sensata, sin advertencias. - Captura fotogramas para revisar:
ffmpeg -ss 5 -i final-video.mp4 -frames:v 1 -y work/check.jpg(y al inicio de cada tarjeta + 1 s). Revísalos: rostro en el encuadre en tomas con zoom, tarjetas legibles, nada recortado. - Si un zoom recorta mal el rostro, vuelve a ejecutar
edit.py --no-zoom. Si los cortes se sienten bruscos, usa--min-silence 0.8.
Si algo falla
Cada paso escribe su salida completa de ffmpeg / Remotion en work/*.log. Lee las últimas líneas, corrige la causa, vuelve a ejecutar solo ese paso. Comunes:
whisper unavailable→ falta el venv; instálalo (paso 1). La edición aún se ejecuta sin elecciones de zoom.- Remotion
Could not find a browser→cd SKILL_DIR/remotion && npx remotion browser ensure. - Una tarjeta no se renderiza → se reintenta como Tarjeta de texto simple, luego se omite; el video aún se completa.
Informe
--- VIDEO EDIT COMPLETE ---
Input / Output / Duración antes → después / cortes / mezcla de zoom / tarjetas / b-roll / tamaño del archivo
Luego nombra cualquier cosa que no hayas podido solucionar.