Fábrica de Videos
Eres el editor. Los scripts se encargan del trabajo mecánico: análisis, corte, subtítulos, mezcla y renderizado. Tú tomas las decisiones creativas: qué conservar, en qué orden y por qué.
En los comandos a continuación, SKILL_DIR significa la carpeta que contiene este archivo. Escribe la ruta real al ejecutarlos.
1. Verificar las herramientas
python3 "SKILL_DIR/scripts/doctor.py"
Si falta algo necesario, detente y dale al usuario el comando de instalación que imprimió doctor. Que falte faster-whisper no es un bloqueo: todo funciona sin él excepto las transcripciones y los subtítulos.
2. Obtener el resumen
Determina cuatro cosas. Pregunta solo sobre lo que el usuario no te haya dicho ya, en un solo mensaje de no más de tres preguntas:
- Dónde se publicará. Esto define la relación de aspecto y una duración sensata.
- Cuánto debe durar.
- De qué trata, y cualquier momento que deba incluirse u omitirse.
- Música. La ruta a una pista para la que tenga derechos, o ninguna.
Si el usuario dice que "hagas algo", usa estos valores predeterminados y di cuáles usaste:
| Destino | aspecto | Duración |
|---|---|---|
| TikTok, Reels, Shorts | 9:16 | 20–45 s |
| YouTube | 16:9 | lo que el material permita |
| Feed de Instagram | 4:5 | 15–30 s |
| No indicado | 9:16 si la mayoría de los clips son verticales, si no 16:9 | 30–60 s |
3. Analizar el material
python3 "SKILL_DIR/scripts/analyze.py" CLIPS --out RUN_DIR
CLIPS son uno o más archivos o carpetas de clips. Agrega --recursive para incluir subcarpetas. Elige RUN_DIR como factory-output/<nombre-corto> dentro de la carpeta de trabajo del usuario. El script imprime RUN_DIR=... cuando termina. El análisis se almacena en caché, por lo que ejecutarlo de nuevo sobre los mismos clips es rápido.
4. Observar el material
- Lee
RUN_DIR/index.mdpor completo. - Abre cada hoja de contactos en
RUN_DIR/sheets/. Cada fotograma está etiquetado con su número y su tiempo en segundos. - Para ver más de cerca un momento (para juzgar un recorte, un rostro o texto en pantalla), guarda un fotograma a tamaño completo:
python3 "SKILL_DIR/scripts/frame.py" RUN_DIR c03 12.5
Para cada clip, anota lo que muestra, sus mejores momentos y cualquier cosa inutilizable: movido, desenfocado, demasiado oscuro, accidental o una toma más débil de algo que tengas en otro lugar.
5. Planificar la edición
Lee references/editing-principles.md. Luego escribe RUN_DIR/plan.md con:
- Ángulo: una frase sobre de qué trata el video.
- Gancho: qué sucede en los primeros dos segundos.
- Estructura: los momentos en orden, con los clips y tiempos para cada uno.
- Omitido: lo que cortaste y por qué, para que el usuario pueda pedirlo de vuelta.
6. Escribir la EDL
Lee references/edl-format.md, luego escribe RUN_DIR/edl.json y valídala:
python3 "SKILL_DIR/scripts/validate_edl.py" RUN_DIR/edl.json
Corrige todos los errores. Corrige todas las advertencias "corta dentro de la palabra" con los tiempos que sugiere. Trata otras advertencias como incentivos para reconsiderar, no como órdenes.
7. Renderizar un borrador y revisarlo
python3 "SKILL_DIR/scripts/render.py" RUN_DIR/edl.json
python3 "SKILL_DIR/scripts/review.py" RUN_DIR/draft.mp4 --edl RUN_DIR/edl.json
Luego verifica el resultado tú mismo:
- Corrige todo lo que aparezca en "Problemas encontrados".
- Abre la hoja de contactos de
RUN_DIR/review/. Verifica el encuadre, que los subtítulos y el texto no cubran rostros, y que el fotograma inicial funcione como gancho. - Si los subtítulos están activados, lee
RUN_DIR/draft.srtde principio a fin. Debe leerse como ideas completas, sin que ninguna oración se corte a mitad.
Revisa edl.json y renderiza de nuevo, como máximo dos veces más. Detente cuando la revisión esté limpia y cualquier cambio restante sea cuestión de gusto.
8. Mostrar al usuario
Dale la ruta a draft.mp4, su duración, dos o tres frases sobre la edición que hiciste y las opciones que podría querer cambiar (gancho, orden, duración, nivel de música). Pregunta antes de renderizar la versión final a menos que te haya dicho que sigas directamente.
Cuando pida cambios, edita edl.json y renderiza el borrador de nuevo. No empieces de cero a menos que te lo pida.
9. Renderizar la versión final
python3 "SKILL_DIR/scripts/render.py" RUN_DIR/edl.json --quality final
python3 "SKILL_DIR/scripts/review.py" RUN_DIR/final.mp4 --edl RUN_DIR/edl.json
Informa las rutas a final.mp4 y, si hay subtítulos, final.srt. La mayoría de las plataformas aceptan el .srt como pista de subtítulos subida.
Reglas
- Nunca modifiques, muevas, renombres o elimines los clips del usuario. Todo lo que crees va en
RUN_DIR. - Basa cada punto de corte en el índice (habla, tomas o tramos silenciosos) o en un fotograma que hayas mirado. Nunca adivines un tiempo.
- No uses un clip cuya hoja de contactos no hayas mirado, y no describas material que no hayas visto.
- Usa solo música que el usuario haya proporcionado o a la que te haya indicado. Nunca descargues música.
- Si el material no puede soportar la duración o historia solicitada, dilo. No alargues el video con tomas débiles para alcanzar un objetivo.
- Si un script falla, lee su mensaje de error: dice qué corregir. Ejecuta
doctor.pysi parece faltar una herramienta.
Sin transcripción
Si los clips no se transcribieron (faster-whisper no está instalado, o no se pudo descargar el modelo), index.md lo indica. Aún puedes editar usando las tomas, tramos silenciosos y hojas de contactos, pero no habrá subtítulos y no puedes estar seguro de que un corte no caiga a mitad de una frase. Informa al usuario y menciónale que python3 -m pip install faster-whisper seguido de ejecutar analyze.py de nuevo agrega las transcripciones.
Archivos en una carpeta de ejecución
| Archivo | Escrito por | Qué es |
|---|---|---|
clip-index.json | analyze.py | Análisis completo, incluyendo tiempos de palabras |
index.md | analyze.py | El resumen para leer al planificar |
sheets/<id>.jpg | analyze.py | Una hoja de contactos por clip |
plan.md | tú | El plan editorial |
edl.json | tú | La edición en sí |
draft.mp4, final.mp4 | render.py | Videos renderizados |
draft.srt, final.srt | render.py | Subtítulos como archivo separado |
review/ | review.py | Hojas de contactos y comprobaciones para cada renderizado |
stills/ | frame.py | Fotogramas a tamaño completo |