Communitygithub.com

learnaiwithhugo/video-editor-skills

Edita un clip de cabezas parlantes en crudo y lo convierte en un reel de Instagram terminado al estilo Kallaway (escenario negro punteado con un diagrama por idea, tarjeta facial redondeada con la cabeza asomando, subtítulos blancos de una palabra, rojo como único acento, cortes duros en inicios de palabra, efecto de sonido real en cada animación, música de fondo opcional baja). Solo herramientas gratuitas locales (ffmpeg, Whisper, HyperFrames). Se usa cuando alguien dice "/kallaway-edit", "edita esto como Kallaway", "haz este reel al estilo Kallaway" o suelta clips en bruto y pide una edición estilo Kallaway.

¿Qué es video-editor-skills?

Esta skill de agente de IA permite editar automáticamente un clip de una persona hablando a cámara y convertirlo en un reel vertical para Instagram (1080x1920, 30 fps, -14 LUFS) siguiendo el estilo visual y sonoro característico de Kallaway. Utiliza exclusivamente herramientas gratuitas y locales como ffmpeg, Whisper, HyperFrames y Python, sin APIs de pago. Está diseñada para usuarios no técnicos; se comunica en lenguaje claro y paso a paso. El flujo de trabajo incluye selección de tomas, corte de audio, extracción del fondo, planificación de escenas con gráficos animados, renderizado y verificación de calidad mediante scripts de Python. Soporta múltiples plataformas (Claude Code en terminal o IDE) y requiere macOS.

Compatible con✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/learnaiwithhugo/video-editor-skills/tree/HEAD/skills/kallaway-edit

Preguntar en tu IA favorita

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

Documentación

/kallaway-edit

Clips en bruto, reel vertical terminado (1080x1920, 30 fps, -14 LUFS), al estilo Kallaway. Todo se ejecuta en el Mac del usuario con herramientas gratuitas. La persona que usa esto normalmente NO es técnica: habla con ella en lenguaje sencillo, un mensaje corto por paso y nunca la hagas tocar código.

SK = ${CLAUDE_SKILL_DIR}, la carpeta de esta skill (nunca escribas en ella: una actualización la reemplaza). DATA = $HOME/.claude-video-editor, la carpeta propia del editor, que se conserva entre actualizaciones: la configuración del usuario (DATA/config.json), el Python del editor (DATA/venv), los efectos de sonido (DATA/sfx). ROOT = la carpeta del proyecto (tiene raw/, exports/): el projectRoot en DATA/config.json, guardado por el asistente de configuración (paso 0). WORK = ROOT/work/<slug>/ (una carpeta por reel; el slug es kebab-case corto, ej. opus-tips). Pon entre comillas cada ruta: a menudo contienen espacios. Ejecuta cada script a través de uno de estos dos, exactamente como está escrito, para que encuentre la configuración del usuario: PY = VIDEO_EDITOR_DATA="$HOME/.claude-video-editor" "$HOME/.claude-video-editor/venv/bin/python" -I (después de la configuración) SETUP = VIDEO_EDITOR_DATA="$HOME/.claude-video-editor" python3 -I "${CLAUDE_SKILL_DIR}/scripts/setup.py" Lee estos antes de construir: references/style-rules.md (el aspecto, como números), references/graphics-recipes.md (cómo una idea hablada se convierte en un diagrama), references/gotchas.md.

Reglas estrictas

  • Solo herramientas gratuitas. ffmpeg, Node 22+, Python, HyperFrames (npx hyperframes@<pinned>), faster-whisper, la eliminación de fondo local de HyperFrames, las fuentes OFL incluidas, los efectos de sonido grabados de HyperFrames media-use (descargados en la configuración, nunca incluidos: licencia Pixabay) y música CC0/CC BY de Openverse o la pista propia del usuario. Sin APIs de pago, sin inicio de sesión en HeyGen, sin generación de música, nada con derechos de autor.
  • Opciones que el usuario puede dar: music: on|off (por defecto: la elección guardada en la configuración), music: <ruta a su propia pista>, setup (re-ejecutar el asistente de configuración).
  • Nunca ejecutes npx hyperframes init o npx hyperframes skills (instalan skills en ~/.claude/skills). Cada llamada a HyperFrames: HYPERFRAMES_SKIP_SKILLS=1 HYPERFRAMES_NO_TELEMETRY=1. Siempre snapshot ... --describe false (de lo contrario los fotogramas se suben a Gemini).
  • Nunca toques el metraje original del usuario. Trabaja a partir de copias en raw/. Los archivos de trabajo van en WORK; solo los reels terminados van en exports/. Nunca borres los archivos del usuario.
  • Los subtítulos muestran lo que realmente se dijo, escrito correctamente ("Claude", "Opus 5.5"), dígitos para números.
  • Los gráficos nunca cubren la cara; el texto nunca debajo de y 1470 ni en los 100 px de la derecha debajo de y 1155.
  • Nada anima hacia afuera. El rojo #C41514 es el único acento. Una palabra en cursiva serif por título y por sección.
  • Muestra tu trabajo: guarda un PNG numerado en WORK/progress/ en cada paso (01-takes-picked.png, ...).
  • Verifica el render FINAL con qa.py, a tamaño completo, antes de decir que está listo. Sé honesto acerca de lo que no coincide.

El flujo de trabajo

0. Asistente de configuración (solo la primera vez, ~5-10 min)

Lee DATA/config.json. Si tiene "setupComplete": true y su carpeta projectRoot existe, ejecuta SETUP --check (segundos, no instala nada); en LISTO ve al paso 1, en NO LISTO corrige lo que nombre (después de una actualización que necesita una nueva versión de herramienta, eso es solo SETUP de nuevo: las carpetas y opciones del usuario se conservan). De lo contrario (primera ejecución, o el usuario dice "/kallaway-edit setup") ejecuta el asistente. Diles en qué paso estás en una línea corta ("Paso 2 de 5: comprobando tus herramientas").

  1. Bienvenida. "¡Bienvenido al editor Kallaway! Vamos a configurarlo. Esto toma unos 5-10 minutos y solo ocurre una vez."
  2. ¿Estamos en Claude Code? Esto necesita Claude Code (la aplicación de terminal, la pestaña Code en la aplicación de escritorio de Claude, o una extensión de IDE), abierto en una carpeta local, porque edita archivos de video reales. Si puedes ejecutar comandos de shell y leer archivos locales, lo estás. Si no puedes (un chat normal), di: "Abre la aplicación de escritorio de Claude, haz clic en Code, elige Local, selecciona una carpeta (o crea una llamada Editor de video AI), luego escribe /kallaway-edit de nuevo." Luego detente.
  3. Verificación de herramientas. SETUP --check. Muestra el resultado como una tabla corta: herramienta, encontrada sí/no, para qué sirve (ffmpeg corta y mezcla sonido; Node.js ejecuta HyperFrames; HyperFrames convierte la edición en un video; faster-whisper escucha cada palabra; Python ejecuta los scripts auxiliares; yt-dlp es opcional aquí, descarga reels de enlaces, y /new-edit-style lo necesita). Para cualquier cosa que el usuario deba instalar por sí mismo (ffmpeg, Node.js, Python), da la línea única con los nombres de su arreglo y di dónde pegarla: la aplicación Terminal (Mac: Comando + Espacio, escribe Terminal). Si pide la contraseña de su Mac, la escriben ellos mismos allí, nunca en este chat. Espera hasta que digan que está hecho, luego verifica de nuevo. Los elementos marcados como "la configuración completa lo instala" no necesitan nada de ellos.
  4. Dónde viven las cosas. Pregunta en un mensaje, cada uno con una respuesta sugerida:
    • "¿Dónde debería hacer tus videos?" Sugiere la carpeta actual si está vacía o ya es una carpeta de video (muestra su ruta completa), de lo contrario ~/Desktop/Editor de video AI.
    • "¿Dónde suele aterrizar tu metraje?" Sugiere ~/Downloads (donde AirDrop deja los clips del teléfono), o "Yo mismo pondré los clips en la carpeta raw".
    • "¿Música de fondo debajo de tu voz: activada o desactivada?" Sugiere activada (pueden cambiarla por video). Luego ofrece las carpetas: "¿Quieres que configure tu carpeta de proyecto? Crearé raw/ (tus clips), references/ (videos cuyo estilo te guste), exports/ (reels terminados), work/ (mis archivos de trabajo) y archive/ (versiones antiguas). Cualquier cosa que ya esté allí quedará intacta." Si dice sí: SETUP --project "<carpeta>" --clips-from "<carpeta u omitir>" --music on|off. Solo crea las carpetas que faltan y guarda las respuestas en DATA/config.json.
  5. Instalación. "Instalando las herramientas de edición gratuitas ahora (una vez, unos 5 minutos: un motor de transcripción, el renderizador de video, efectos de sonido y un modelo de voz)." Ejecuta SETUP en segundo plano y transmite sus líneas de progreso en palabras sencillas. Solo instala en DATA (nada global, nada en la carpeta de la skill, por lo que las actualizaciones nunca lo deshacen) y marca la configuración como completa cuando termine.
  6. Listo. Da los 4 consejos de filmación de references/filming-guide.md (cámara fija, plano general, habitación oscura con una luz cálida en tu cara, repite una línea hasta que funcione), luego: "Ya está. Pon tus clips en raw/ (o dime qué archivos en ) y di /kallaway-edit". Si ya dieron clips, continúa directamente al paso 1.

Toma en cada ejecución: los clips son los archivos que el usuario nombra; de lo contrario, pregunta, ofreciendo los archivos de video más nuevos en clipsFrom. Cópialos en ROOT/raw/ (nunca muevas ni modifiques los originales). La música sigue la opción music guardada a menos que el usuario diga lo contrario.

1. Encuentra cada toma (~1 min por minuto de metraje)

PY "SK/scripts/takes.py" "WORK" "ROOT/raw/clip1.MOV" "ROOT/raw/clip2.MOV" (añade --fast para un pase más rápido, menos preciso). Lee WORK/takes/*.takes.txt: cada intento con su rango de tiempo, las retomas marcadas. Pregunta por (o encuentra en los clips) el guion si lo hay. Di: "Escuchando tus clips y encontrando la mejor toma de cada línea."

2. Elige tomas y corta (~1 min)

Escribe WORK/edl.json (formato: SK/template/examples/edl.json): un segmento por línea, en orden de guion, normalmente la ÚLTIMA toma limpia completa. Usa {"clip","chunk"} o {"clip","start","end"} (para saltar un tropiezo dentro de un fragmento; verifica los tiempos de palabras con transcribe.py --range a-b --model medium.en --no-vad). Apunta a 20-30 s; pasarse un poco (hasta ~38 s) es mejor que romper una promesa que el gancho hace. Omite las llamadas a la acción a menos que se pidan. Luego PY "SK/scripts/assemble.py" "WORK": cut.mp4 (CFR, ajustado a la voz, comprimido, -14 LUFS), segments.json, words.json, words.txt. Lee words.txt: cada línea debe decir lo que se quiso decir. PY "SK/scripts/qa.py" "WORK" --takes escribe progress/01-takes-picked.png. Di: "Aquí está el corte: <las líneas>. segundos." Bloquea el corte antes de construir gráficos. Si recortas después: PY "SK/scripts/reindex.py" "WORK" "WORK/.prev/words.json" mantiene cada gráfico en su palabra.

3. Recorta al orador (~3-4 min, ejecutar en segundo plano)

PY "SK/scripts/cutout.py" "WORK": cutout.webm (coincidencia de fotogramas, bordes limpios) + headtrack.json. Mientras se ejecuta, planifica la edición (paso 4). Luego mira un fotograma compuesto sobre negro en busca de halos y guárdalo como progress/02-cutout-check.png.

3b. Música (a menos que music: off; ~2-6 min, ejecutar en segundo plano)

PY "SK/scripts/music.py" "WORK" (o --file "<su canción>", o --off). Elige un instrumental gratuito CC0/CC BY de Openverse, rechaza voces y escribe WORK/music-credit.txt. Informa al usuario qué eligió y, para CC BY, que la línea de crédito va en el pie de foto.

4. Planifica la edición, línea por línea

Escribe WORK/plan.json (formato: SK/template/examples/plan.json):

  • shots: dónde comienza cada diseño (0, "line:N" = primer fotograma de la línea N de EDL, "w:N" = inicio de la palabra N). Escenario para cualquier cosa que se pueda mostrar; completo para líneas de conexión/personales y el remate (16-29% del tiempo de ejecución). Corta en seco también entre escenas de escenario. Primer corte a ~3.5 s.
  • scenes: qué gráfico se reproduce cuándo (id, from, to, opcional src + vars para montar un archivo de escena varias veces, ej. un gráfico numerado recurrente de "inicio"). Una escena puede ejecutarse bajo un plano completo y volver (una revisita añade una cosa nueva en 0.6 s).
  • punch: zoom repentinos (x1.19, con crescendo) en una frase de cierre, como máximo uno o dos.
  • captions: fix (índice de palabra -> texto correcto), emphasis (una palabra serif por sección), keep_together (pares de índices de palabra, ej. "Número" + "1,"). Usa graphics-recipes.md: cada idea obtiene una forma, un título (negrita + un acento serif, la afirmación en un cuadro rojo) y golpes en sus palabras, algo nuevo cada ~1 s. Devuelve el plan en una línea por plano.

5. Construye las escenas (~15-25 min)

Cada escena es WORK/scenes/<nombre>.html, iniciada desde SK/template/scene-starter.html o el archivo más cercano en SK/template/examples/ (seis escenas reales). El kit (template/kit/kw.css, kw.js) proporciona el aspecto del escenario y ayudantes de movimiento (KW.title, blurIn, pill, pulse, draw, cam, type, strike, count, scramble; at(i) = inicio de la palabra i). CADA animación obtiene su indicación de sonido en el comentario <!--KW:SFX [...] --> de la escena, ej. {"t": "w:24-0.02", "s": "whoosh"}, siguiendo references/sound-map.md (movimiento de cámara = whoosh, píldora = pop, chasquido/tick = clic, texto escrito = escritura, gran momento = impacto, remate = chispa). Si tienes la herramienta Agent y más de ~3 escenas, entrega escenas a hasta 2 agentes en paralelo con: la lista de palabras exacta de la escena y sus tiempos, la idea, las referencias de esta skill y build.py ... --project WORK/project-<letra> para que nunca choquen. PY "SK/scripts/build.py" "WORK" escribe WORK/project/ (raíz: escenario punteado, tarjeta facial, capa emergente, pista de subtítulos, anfitriones de escena, carril de SFX, todo generado). Luego en WORK/project: npx -y hyperframes@<pin> lint (0 errores) y snapshot --at <tiempos> --no-end --describe false -o snaps/x, lee los PNG, corrige, repite. Guarda la hoja de cada escena como progress/03-scene-.png.

6. Renderiza (~1 min) y verifica (~1 min)

PY "SK/scripts/render.py" "WORK" --name draft (rápido), luego PY "SK/scripts/qa.py" "WORK" "WORK/renders/draft.mp4" y MIRA qa/cuts.png (fotograma antes/después de cada corte), qa/beats.png (cada fragmento de subtítulo), qa/report.txt (brechas de corte a voz, sonoridad). Verifica: la parte emergente no tiene halo ni deriva después de los cortes; la tarjeta muestra cabeza Y hombros (nunca un recorte de cara); ningún subtítulo o gráfico sobre la cara; los subtítulos coinciden con las palabras; cada corte de línea cae 0-80 ms antes del habla; nada en las zonas prohibidas de Instagram. Luego PY "SK/scripts/audiomap.py" "WORK" --out progress/NN-audio-map.png: música 18-24 dB por debajo de la voz, efectos ~10-16 dB por debajo de su pico local, sin golpes dobles; corrige cualquier indicación marcada con "db": -3. Coincidencia de estilo: PY "SK/scripts/match/fingerprint.py" score "SK/references/style-spec.json" "WORK/renders/draft.mp4" --out "WORK/progress/NN-style-match.md" mide la edición de la misma manera que los 3 reels de Kallaway fueron medidos (tasa de corte, cambios visuales por segundo, proporciones de diseño, posición de tarjeta y subtítulos, tamaño y ritmo de subtítulos, proporción de color de acento, sonoridad, efectos de sonido estéreo) y dice qué corregir para cada FALLO. Corrige lo que la edición controla; un FALLO causado por el metraje (un selfie cercano) va al usuario como nota de filmación. El informe en WORK/progress/ es el registro (SK/references/lock-log.md contiene el historial medido del estilo; déjalo como está). Corrige y vuelve a renderizar (una reconstrucción + re-render lleva ~1.5 min).

7. Entrega

PY "SK/scripts/render.py" "WORK" --final -> exports/<slug>-kallaway-vN.mp4 (1080x1920) más -720p.mp4 copia para el teléfono. Ejecuta qa.py en la exportación. Si el usuario tiene un reel de Kallaway propio guardado en ROOT/references/ (ninguno viene con esta skill), añade una comparación lado a lado (--ref <ese reel> --ref-at <t> --at <t>) y guárdalo como progress/NN-side-by-side.png. Di: dónde está el archivo, cuánto dura, qué contiene escena por escena y qué todavía no se ve como Kallaway (sé específico y honesto).

Tiempos (en un Mac M4 Pro, reel de 35 s a partir de ~8 min de metraje en bruto)

configuración 5 min (primera vez) · tomas 7 min (modelo medio; --fast ~3) · corte 1 min · recorte 3.5 min · música 2-6 min (en segundo plano; Openverse/Freesound puede ser lento) · escenas 15-25 min · render borrador 50 s · render final 70 s · re-render después de una edición ~1.5 min.

Filmación

Entrega references/filming-guide.md a cualquiera que vaya a filmar: plano general fijo (horizontal 4K es lo mejor), habitación oscura con una luz principal cálida, parte superior oscura, fondo plano detrás de la cabeza, repite una línea hasta que funcione.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

learnaiwithhugo/video-editor-skills

Style Studio. Walks a creator (usually non-technical) through building their OWN video editing style on an interactive page in their browser - their colours and font, reference reels they love broken down frame by frame, then rounds of real animated options (captions, accent and intro text, zooms, diagrams, logos, split screen, tool talk, sound effects) they mark Keep / Maybe / Drop, plus Shine, Zoom and Shadow labs with Lock buttons. Ends with a STYLE.md guide and locked settings that /edit-my-video uses. Use whenever someone says "/build-my-style", "build my style", "make my editing style", "style studio", "I want my own edit style", "copy the editing style of these reels", "make my brand style for videos", sends reels they want their edits to look like, or comes back to carry on their style (rounds, labs, sounds). Also the STYLE keyword giveaway.

learnaiwithhugo/video-editor-skills

Edit raw talking-head clips into a finished vertical Instagram reel in the creator's OWN style, read from a style folder made by build-my-style (STYLE.md, locked shine/zoom/shadow, picked sound effects). Picks the last clean take of every line, shows a storyboard page first (a still per beat, A/B/C options on the key beats, Approve/Change and notes), optionally renders short variations of key moments to pick from, then builds the full edit in HyperFrames, reviews its own render, and turns every note the user gives into a dated rule in their STYLE.md so the next edit is better. Free local tools only. Use whenever someone says "/edit-my-video", "edit my video", "edit these clips", "make this into a reel in my style", "storyboard this edit", drops a folder of raw clips and wants an edit, or gives notes on an edit this skill made ("I don't like the zoom", "make the logos bigger").

learnaiwithhugo/video-editor-skills

Create a new editing-style skill from 2-3 reference reels of one creator or style (e.g. "make me a skill that edits like @creator"). Downloads the reels, measures them frame by frame, has one agent break down each reel, merges the breakdowns into a style guide plus a measurable style spec, clones the proven editing engine into a new /<style>-edit skill, then locks the style with a match score, pixel font matching, a golden recreation test, one critic round and the user's ear check. Free local tools only. Use when someone says "/new-edit-style", "make an edit style skill", "copy this creator's editing style", "I want to edit like X", or drops several reels from one creator and asks for their style.

Skills relacionados