Communitygithub.com

Robbert-Sombrio/VideoEdit-

Convierte clips de cabezas parlantes en vertical (9:16) en un reel de Instagram de nivel profesional: selecciona la mejor toma de cada línea, corta el silencio, recorta desde 4K, recorta el fondo para palabras detrás de la cabeza, aplica tres estilos visuales, añade superposiciones animadas, diseño de sonido sutil y verifica cada corte en la zona segura del reel. Actívalo con /video-edit o frases como 'edita estos clips', 'dejé clips en mis descargas', 'corta esto en un reel', 'haz que este reel se vea increíble'.

¿Qué es VideoEdit-?

VideoEdit- es una habilidad experta para Claude Code (compatible con macOS, Linux y Windows) que automatiza por completo la producción de reels de Instagram a partir de clips de cabezas parlantes en formato 9:16. Desde la ingesta inicial hasta la entrega final, la habilidad gestiona todo el flujo de trabajo: selecciona la mejor toma de cada línea, elimina el silencio, recorta desde 4K para cambios de plano, recorta el fondo para superponer texto animado detrás del hablante y aplica uno de tres looks visuales (negrita cinética, chica cool, chico cool). También genera superposiciones animadas mediante subagentes paralelos, añade diseño de sonido sutil y verifica cada corte en la zona segura de Instagram. La habilidad incluye una configuración inicial única interactiva (instalación de dependencias como FFmpeg, Node.js y un entorno Python), lee guías de referencia para valores exactos de estilo, sigue reglas estrictas de composición (sin cubrir la cara) y ofrece retroalimentación de calidad a través de capturas de contacto y controles de audio. El resultado final es un render listo para Instagram que el usuario solo tiene que revisar y dar notas, con tiempos de renderización típicos de ~2 minutos por iteración.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Robbert-Sombrio/VideoEdit-/tree/HEAD/.claude/skills/video-edit

Preguntar en tu IA favorita

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

Documentación

/video-edit

Clips en bruto adentro, reel terminado afuera. El usuario nunca abre un editor: revisa una copia para el teléfono y da notas; cada iteración es un re-renderizado de ~2 minutos.

Leer antes de construir: references/looks.md (los tres looks, valores exactos), references/layout.md (zona segura, ubicación, fórmula detrás-de-la-cabeza), references/gotchas.md (cada trampa ya encontrada una vez). Leer references/overlays.md cuando el guion requiera una inserción animada.

Funciona en macOS, Linux y Windows. setup.py detecta la máquina al inicio de cada ejecución y cada comando a continuación proviene de ese registro, así que nunca adivines rutas o shells: consulta "Esta máquina" justo después del Paso 0.

Paso 0: Configuración inicial (se ejecuta una vez)

SK es la carpeta de esta habilidad (la que contiene este SKILL.md), como ruta completa. Normalmente ~/.claude/skills/video-edit; en Windows eso es C:/Users/<nombre>/.claude/skills/video-edit.

Busca SK/config.json.

Si existe: cárgalo (nombre, usuario de Instagram, look predeterminado, carpetas), ejecuta el script de configuración exactamente como en el paso 3 a continuación (unos segundos: solo verifica y repara el entorno después de una actualización), lee "Esta máquina", y ve al Paso 1 una vez que imprima READY.

Si no existe:

  1. Di: "¡Bienvenido a /video-edit! Vamos a configurarlo. Esto toma unos 2 minutos y solo ocurre una vez."
  2. Pregunta, en un solo mensaje:
    • Tu nombre (usado en tu inserción de perfil de Instagram)
    • Tu usuario de Instagram (para tu inserción de perfil y para obtener tus reels para el efecto órbita)
    • Look predeterminado: bold (palabras cinéticas detrás de tu cabeza), cool girl (cálido, serif itálica amarilla, tus reels orbitándote) o cool dude (editorial oscuro, mayúsculas espaciadas + serif). Ofrece bold si no está seguro.
    • Dónde suelen estar tus clips en bruto (por defecto ~/Downloads) y dónde deberían vivir los proyectos (por defecto ~/reel-edits)
  3. Ejecuta el script de configuración con el Python que tenga la máquina. Prueba estos en orden hasta que uno imprima líneas STATUS: python3 "SK/scripts/setup.py", luego python "SK/scripts/setup.py", luego py -3 "SK/scripts/setup.py". (En Windows, python3 suele ser un stub de Microsoft Store que imprime "Python was not found": solo prueba el siguiente.) Si ninguno funciona: falta Python. Proporciona la solución para su sistema y detente (Windows: winget install --id Python.Python.3.12 -e, Mac: brew install python, Linux: sudo apt install python3 python3-venv). Luego lee las líneas STATUS:
    • ffmpeg / node / python venv FALTANTE: la línea termina con la solución exacta para ESTA máquina (winget en Windows, brew en Mac, apt en Linux). Entrégasela al usuario y detente hasta que el script imprima READY.
    • Windows: el usuario pega las líneas winget en su propia ventana de PowerShell (winget les pide aceptar sus términos la primera vez), luego cierra Claude Code por completo y lo vuelve a abrir, o los nuevos programas no se encuentran.
    • El script descarga los 6 efectos de sonido por sí mismo. Si aún los reporta FALTANTES (sin conexión), eso es opcional: el reel simplemente no tendrá SFX hasta que se agreguen.
  4. Opcional, Apify (obtiene reels y estadísticas del perfil automáticamente): prueba una llamada simple MCP de Apify. Si no está conectado, di que es opcional y cómo agregarlo:
    1. Crea una cuenta gratuita en https://apify.com y copia el token de API desde Configuración > API e Integraciones.
    2. En una terminal, pega esta línea con el token en lugar de YOUR_TOKEN: claude mcp add apify -e APIFY_TOKEN=YOUR_TOKEN -- npx -y @apify/actors-mcp-server (aviso: Claude Code almacena el token en texto plano en ~/.claude.json; mantén ese archivo privado).
    3. Vuelve a abrir Claude y ejecuta /video-edit nuevamente. Sin Apify, la habilidad les pide que coloquen sus archivos de reel en el proyecto.
  5. Guarda SK/config.json (sin secretos, nunca):
    {"name": "...", "instagram": "usuario-sin-@", "defaultLook": "bold", "clipsDir": "~/Downloads",
     "projectsDir": "~/reel-edits", "setupComplete": true, "setupDate": "YYYY-MM-DD"}
    
  6. Di: "¡Configuración completa! Ejecutando /video-edit ahora..." y continúa.

Esta máquina (leer en cada ejecución)

Lee SK/.platform.json, escrito por setup.py. Registra el SO (os: macos, linux o windows), la CPU y los comandos exactos para esta computadora:

  • PY = su valor python: el Python propio de la habilidad (.venv/bin/python en Mac y Linux, .venv/Scripts/python.exe en Windows). Ejecuta CADA script Python de esta habilidad con él, nunca un simple python3.
  • HF = PY "SK/scripts/hf.py": inicia el HyperFrames fijado (npx --yes [email protected] ...) con el Node correcto en cualquier SO. Sin nvm use, sin problemas de npx.cmd.
  • cutout: CoreML (Apple Silicon) o CPU (Windows, Linux, Mac Intel: sin ayuda de GPU, así que el paso de recorte es el lento; dilo, ejecútalo en segundo plano y sigue construyendo).

setup.py reescribe este archivo en cada ejecución (Paso 0), por lo que siempre está actualizado. Si falta el archivo, o PY ya no existe: la configuración no se ejecutó o no llegó a READY; ejecútala como en el Paso 0.3 y sigue su solución.

Un estilo de comando que funciona en zsh, bash, Git Bash y PowerShell:

  • Rutas completas entre comillas dobles con barras inclinadas (también funciona en Windows): "PY" "SK/scripts/ingest.py" "<proyecto>".
  • En PowerShell (Windows sin Git for Windows, o cuando la herramienta PowerShell es la que tienes) pon & al inicio: & "PY" "SK/scripts/ingest.py" "<proyecto>".
  • Un comando por llamada. Sin &&, sin VAR=1 comando, sin ~ dentro de argumentos, sin source, sin zsh.
  • ffmpeg y ffprobe están en PATH en todos los SO (setup lo verifica), así que los comandos ffmpeg únicos son iguales en todas partes.

Reglas estrictas

  1. Todo dentro de la zona segura de Reels: arriba 220, abajo 450 (nada debajo de y 1470), lados 35, derecha 100 desde y 1155.
  2. Nunca cubrir la cara con texto o tarjetas. Las palabras detrás de la cabeza muestran al menos ~70% de cada letra.
  3. Los subtítulos dicen lo que realmente se dijo: corrige las malas interpretaciones de Whisper de nombres y palabras clave ("Claude" a menudo sale como "nube"/"garras", "skill" como "escala"). Sin guiones largos en el texto en pantalla.
  4. Efectos de sonido sutiles (plantilla SFX_GAIN = 0.75 de los volúmenes base), nunca más fuertes que la voz.
  5. Acreditar a otros creadores en pantalla (@usuario) cada vez que aparezcan sus reels. Números reales en el perfil del propio usuario; cualquier otra cosa (comentaristas, historial de chat) es un marcador de posición genérico, nunca una persona real, nunca una prueba fabricada.
  6. Probar cortes desde el render final, no desde capturas instantáneas.
  7. Nunca eliminar los archivos del usuario. Los originales se leen, nunca se modifican.

Flujo de trabajo

1. Recepción

  • Clips: los archivos que nombre el usuario, o los archivos de video más nuevos en clipsDir. Crear <projectsDir>/<slug-corto>/. (~ en config.json es la carpeta de inicio del usuario, C:/Users/<nombre> en Windows. Los scripts de la habilidad lo expanden).
  • Enlaces de referencia (reels IG, pins de Pinterest) para un estilo: descargarlos y mirar los fotogramas antes de diseñar nada (consulta overlays.md para saber cómo obtenerlos).

2. Ingesta

PY SK/scripts/ingest.py <proyecto> <clips o carpeta> [--newest 5]

Mira work/sheets.jpg (configuraciones y ángulos) y lee transcript.txt (líneas por clip, palabras con tiempos, mapa de habla).

3. Elegir tomas -> <proyecto>/edl.json

  • Reconstruir el guion a partir de las tomas: la gente repite una línea hasta que sale bien. Usar la ÚLTIMA toma limpia completa a menos que el usuario diga lo contrario ("la mejor sección comienza en 0:47" significa una toma continua desde allí).
  • Puntos de entrada/salida del mapa de habla: comenzar ~0.05-0.07s antes de la primera palabra, terminar al inicio del silencio después de la última palabra. Eliminar el silencio entre secciones; confirmar pausas cortas con silencedetect antes de recortar (Whisper puede inventar una palabra inicial en un corte).
  • Dos segmentos seguidos del mismo ángulo: acercar uno (zoom 1.3-1.9 desde el original 4K, cx/cy en el pecho).
  • Palabras inciertas (palabra clave, desencadenante CTA): volver a transcribir ese fragmento con medium.en y un prompt que contenga los nombres.
  • Formato: [{"id": "hook", "clip": "c1", "in": 12.66, "out": 15.72, "zoom": 1.0, "cx": 0.5, "cy": 0.5, "line": "..."}]
  • Publicar el EDL para el usuario como una tabla corta (línea, clip, look por sección) y seguir adelante; no esperar.

4. Ensamblar, transcribir, recortar

PY SK/scripts/assemble.py <proyecto>                 # aroll.mp4 limpio 30fps CFR + segments.json con fotogramas exactos
PY SK/scripts/transcribe_cut.py <proyecto> "<nombres y palabras clave en el guion>"
PY SK/scripts/cutout.py <proyecto>                   # ejecutar en segundo plano; afirma que los fotogramas de recorte == fotogramas de aroll
PY SK/scripts/headpos.py <proyecto>                  # después del recorte: posición de cabeza/cuerpo por segmento

Un recorte a la vez (aproximadamente 1.5 GB de RAM). Imprime una línea de progreso cada 30 segundos.

5. Inserciones en paralelo (tan pronto como el EDL esté bloqueado)

Para cada inserción animada que el guion requiera (una aplicación en pantalla, el seguimiento de perfil en el CTA, un desplazamiento de archivo), crear un subagente en segundo plano con la plantilla de resumen en references/overlays.md: tamaño fijo, duración fija, ritmo bloqueado en los tiempos de las palabras, salida webm transparente. Seguir construyendo la edición principal mientras trabajan.

6. Construir

Copiar SK/assets/template/ en el proyecto (build.py, hyperframes.json, package.json, assets/fonts, assets/sfx), luego adaptar build.py. Es la construcción terminada de un reel real: mantener la maquinaria, reescribir el contenido (su cadena de documentación enumera qué es qué).

  • Qué look dónde: defaultLook para todo el reel; una línea que nombre un look cambia su sección.
  • La órbita y la cuadrícula de perfil usan los propios reels del usuario (overlays.md: raspador de publicaciones de Apify con su usuario, o archivos que coloquen en assets/reels/).
  • Iterar desde la carpeta del proyecto: HF lint (0 errores), luego PY build.py --safe, luego HF snapshot --at <10-20 momentos> --no-end --describe false. Leer las hojas de contacto, corregir diseño, legibilidad y zona segura. (HF elige el Node correcto por sí mismo, así que no hay nvm use). Un build.py copiado de una versión anterior de esta habilidad ignora --safe: si la guía roja falta en las capturas instantáneas, construir ese proyecto a la antigua, SAFE=1 "PY" build.py (tales proyectos solo existen en Mac y Linux).

7. Renderizar y control de calidad

PY build.py           # sin --safe
HF render -o renders/<slug>-vN.mp4 --quality high      # ~1.5-2 min para un reel de 25s en Apple Silicon
PY SK/scripts/check_cuts.py <proyecto> renders/<slug>-vN.mp4 --phone

Mirar work/cut_check.jpg: cada fotograma después del corte muestra la nueva toma limpiamente. Verificar picos de audio (volumedetect, máximo alrededor de -2 a -5 dB) y el silencio en las uniones de secciones.

8. Entregar

Enviar o señalar la copia para teléfono (720p) y el render de máxima calidad. Informar en términos simples qué cambió y cualquier cosa que necesite la decisión del usuario. Mantener cada versión en renders/; respaldar assets/ + segments.json a work/vN/ antes de reensamblar.

Valores predeterminados que surgieron de comentarios reales (no reabrir debate)

  • Cambiar la gradación y los subtítulos para crear un look; no reemplazar el fondo con una sala generada por IA.
  • Sin grano de película. Oscuro está bien, pero mantener el sujeto iluminado y la piel sin volverse roja.
  • Los subtítulos principales centrados frente al hablante se leen mejor que las líneas fijadas al borde izquierdo.
  • Las palabras detrás de la cabeza son el movimiento característico, pero solo cuando sean legibles.

Construido por @tenfoldmarc. Sígueme para creaciones diarias de automatización con IA, sistemas reales, no teoría.

Skills relacionados