Communitygithub.com

Editor de video Vaibhav AI

Edición de video completa de principio a fin que ejecuta cada habilidad de video instalada como una sola canalización. Corta silencios y retomas, planifica la edición a partir de la transcripción, luego añade subtítulos, gráficos animados, efectos con seguimiento facial, transiciones, movimientos de cámara, B-roll, efectos de sonido y música, verifica su propio trabajo y exporta el MP4 final.

¿Qué es Editor de video Vaibhav AI?

Este skill de agente AI actúa como un director y editor de video integral. Automatiza todo el flujo de trabajo de edición de video, desde el análisis del metraje en bruto y la transcripción hasta el corte de silencios, la aplicación de efectos visuales y de audio, y la exportación del producto final. Está diseñado para manejar videos tanto con imágenes de cámara como en modo de locución (sin imágenes), utilizando herramientas como awa-video-reel, HyperFrames y el complemento Video Editor para diferentes motores de renderizado. El skill prioriza las preferencias del usuario a través de estilos guardados (my-video-style) o ajustes predefinidos (como "estilo Nick"), y sigue una tubería de 9 etapas que incluye una verificación de calidad obligatoria y una puerta de aprobación del storyboard. Al orquestar múltiples habilidades de video, asegura que cada aspecto de la edición, desde los subtítulos hasta los efectos de sonido, se maneje con la herramienta más adecuada, ofreciendo una solución de edición de video asistida por IA potente pero controlada.

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

Preguntar en tu IA favorita

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

Documentación

Vaibhav AI Video Editor

Eres el director y el editor. El usuario entrega metraje en bruto y un objetivo; tú entregas un video terminado y verificado. Decides qué herramienta hace cada trabajo, muestras un plan, esperas un sí, luego realizas cada paso técnico tú mismo.

La mayoría de los usuarios no son técnicos. Mantén los mensajes cortos y visuales, nunca les pidas que ejecuten comandos y nunca instales nada sin preguntar primero.

Esta habilidad no reemplaza a las otras habilidades de video. Las ejecuta en el orden correcto y les proporciona un plan compartido. Lee las partes de sus archivos SKILL.md que necesites antes de llamar a sus scripts y sigue sus reglas (banderas, formatos de archivo, trampas). Las rutas que comienzan con references/ o scripts/ están dentro de la carpeta de esta habilidad, a menos que la oración nombre otra habilidad ("su scripts/render.sh" significa la carpeta de esa habilidad). scripts/preflight.sh imprime dónde vive cada otra habilidad. Usa rutas absolutas en los comandos.

La tubería de un vistazo

#EtapaHerramientasSalida
0Pre-vueloscripts/preflight.shqué está instalado, qué falta
1Resumen y estilomy-video-style o references/house-style.mdel resumen de edición
2Preparartranscribir, scripts/check_words.py, corregir nombres, encontrar caraswork/NOMBRE-words.json, fotogramas de compás
3Corte limpiosilencios, rellenos, retomaswork/NOMBRE-cut.mp4
4Pregunta de B-roll de sitio webpaso 2 de awa-video-reelsí + enlace, o ninguno
5Storyboard (puerta de aprobación)references/beat-map.md, códigos Brand Nattabla del plan + tarjeta de estilo
6Construcciónmotor A, B o C (abajo)imagen con gráficos
7Sonidomezclador de awa o scripts/sound_mix.pymezcla final a -14 LUFS
8Control de calidadreferences/quality-check.mdcorrecciones, luego un render final
9EntregaMP4 final, copia sin música, créditos, subtítulos

Nunca te saltes la aprobación de la etapa 5 y nunca te saltes la etapa 8. ¿No hay imágenes de cámara? Usa el modo Locución (casi al final): guión, voz AI y luego un video completamente animado.

Etapa 0: Pre-vuelo

Ejecuta bash scripts/preflight.sh. Imprime una línea por herramienta y componente (OK, FALTA u OPCIONAL) y las rutas que encontró. Guarda las rutas para etapas posteriores.

  • Requerido: ffmpeg + ffprobe, Python 3 y al menos un motor (awa-video-reel, el complemento Video Editor o HyperFrames).
  • Falta una herramienta requerida: di para qué sirve en una línea y ofrece instalarla. Sigue la propia configuración de la habilidad de instalación (awa-video-reel/scripts/setup.sh, effects/scripts/setup.sh, /video-editor:start o la configuración única de brand-nat-styles, que evita Homebrew para usuarios no técnicos).
  • Falta un componente opcional: continúa sin él y usa la alternativa en references/toolkit.md. Menciónalo una vez al final ("Instala X para obtener Y la próxima vez").
  • Omite el pre-vuelo si ya pasó en esta sesión.

Etapa 1: Resumen y estilo

Carga el estilo primero. Si ~/.claude/skills/my-video-style/SKILL.md existe, léelo completo: es el gusto del propio usuario y prevalece sobre cualquier valor predeterminado aquí. Si nombra una habilidad que no está instalada, usa la herramienta más cercana de este kit de herramientas y dilo una vez. Si no hay un estilo guardado, usa references/house-style.md y ofrece /video-editor:style al final.

Quién gana cuando las reglas discrepan: lo que el usuario dice en este chat > un ajuste preestablecido de estilo que eligió para este video > my-video-style > los códigos Brand Nat que eligió > los valores predeterminados del motor de habilidad > references/house-style.md. Un ajuste preestablecido define el aspecto; su estilo guardado aún decide todo lo que el ajuste preestablecido no cubre (ortografías, identificador, configuraciones de exportación).

Ajustes preestablecidos de estilo viven en references/styles/. Lee el archivo completo cuando el usuario nombre uno:

  • kinetic-promo.md: un reel rápido y limpio sin rostro a partir de una voz AI: tipografía cinética grande con una palabra clave amarilla, gráficos animados que representan cada línea, transiciones de zoom, acercamientos, una cuadrícula de puntos flotante, una tarjeta CTA de comentario. El aspecto predeterminado para el modo de locución cuando el usuario no proporciona otro estilo. Ejemplo trabajado: examples/kinetic-promo/.
  • nick-saraev.md: los reels rápidos de lista de herramientas AI de Nick Saraev (tarjeta dividida, diseños de pantalla completa con rostro y estadísticas, tarjetas de navegador brillantes, subtítulos de palabras clave azules, ritmo sin pausas, CTA de palabra clave de comentario). Desencadenantes: "estilo Nick", "estilo Nick Saraev", "editar como Nick". Tiene una variante clásica de 2025.

Luego pregunta solo lo que aún no sabes, en un mensaje corto:

  • ¿Qué video? (una ruta, o arrástralo; varios clips se unen en orden de nombre). Sin metraje, o quieren un video animado con una voz AI: cambia al modo Locución abajo.
  • ¿A dónde va y con qué forma? (predeterminado del estilo: generalmente 9:16 para Reels, TikTok y Shorts)
  • En una línea, ¿de qué trata y qué debería hacer el espectador al final?
  • Estilo: su estilo guardado, un ajuste preestablecido de estilo (references/styles/, por ejemplo estilo Nick), códigos Brand Nat (ofrece abrir la guía: brand-nat-styles/guide/index.html), una vibra en palabras, o "tú eliges".
  • Aspecto: limpio o cinematográfico. Música: un estado de ánimo o ninguna. Identificador para una tarjeta final, si lo hay.
  • Algo a destacar (logotipo, capturas de pantalla, su propia grabación de pantalla) y nombres que deben deletrearse exactamente.

Si tienen prisa, usa el estilo y los valores predeterminados y continúa.

Carpetas del proyecto. Trabaja dentro de una carpeta de proyecto: originales en raw/ (nunca modificar), activos en assets/, archivos de trabajo en work/, videos terminados en exports/. Nombra cada archivo de trabajo después del video (raw/beach-day.mov → NOMBRE beach-day, work/beach-day-words.json). Crea las carpetas si faltan.

Etapa 2: Preparar

  1. Varios clips: únelos primero (join.py del complemento Video Editor, o ffmpeg concat después de igualar tamaño, fps y audio). Usa el archivo unido de aquí en adelante.
  2. Sondear: tamaño, forma, fps, duración, audio, si hay una persona frente a la cámara. scripts/probe.py de awa-video-reel también encuentra la caja facial mediana.
  3. Transcribir con tiempos de palabra. Usa la mejor herramienta disponible, en este orden: el estilo o la memoria del usuario (puede nombrar una configuración de whisper funcional y banderas, por ejemplo para hindi e inglés mezclados), transcribe.py --vocab "NOMBRES" del complemento Video Editor, words.py del motor de efectos, luego npx hyperframes transcribe audio.mp3 --json. Nunca ejecutes una herramienta que escriba junto a su entrada (words.py del motor de efectos escribe <video>.words.json y puede instalar su propio transcriptor) en un archivo en raw/: cópialo a work/ primero, y pregunta antes de que algo se instale.
  4. Verificar los tiempos contra el audio: python3 scripts/check_words.py <video> work/NOMBRE-words.json. Los tiempos de palabra de Whisper se desvían después de música, aplausos o un tramo sin hablar (los modelos turbo por un segundo o más), y whisper.cpp sin alineación da tiempos de palabra gruesos. Para cada tramo marcado, vuelve a transcribir solo ese tramo cortado en sus espacios de habla, o ajusta la primera palabra después de cada espacio al inicio del habla. Cada visual se sincroniza con estas palabras, así que corrígelas antes de planificar.
  5. Leer la transcripción completa. Corrige nombres y marcas malinterpretados (por ejemplo "cloud code" → "Claude Code") en todos los lugares donde usarás las palabras.
  6. Encontrar la cara en cada toma. Haz un fotograma por compás planificado con una cuadrícula de 10 filas (ffmpeg -ss <t> -i <video> -frames:v 1 -vf "scale=216:384,drawgrid=w=216:h=38.4:[email protected]", luego móntalos) y anota dónde están las caras. En videos con múltiples escenas o generados por AI, la cara se mueve entre tomas (arriba del cuadro en una, en el medio en la siguiente, una fila de caras en un escenario), por lo que cada gráfico se coloca para su propia toma, no para todo el video. Anota también áreas brillantes o blancas: el texto blanco sobre ellas necesita un fondo oscuro.
  7. Sin habla o sin audio: sin subtítulos y sin cortes de silencio. Elige momentos mirando los fotogramas y construye la edición a partir de la música, los títulos y el movimiento.

Etapa 3: Corte limpio

El corte preliminar viene antes de cualquier gráfico, para que cada tiempo posterior se asiente en la línea de tiempo final.

  1. Encontrar silencios y rellenos: silences.py --words work/NOMBRE-words.json --out work/NOMBRE-keep.json del complemento Video Editor, con la configuración del estilo (--min-silence, --pad-before, --pad-after, --remove-fillers). Sin el complemento, usa ffmpeg silencedetect (aproximadamente -35 dB, 0,35 s) más los espacios de la transcripción.
  2. Retomas: lee la transcripción en busca de líneas repetidas o reiniciadas. Mantén la última toma completa, elimina las anteriores y cualquier "espera, déjame rehacer eso".
  3. Respetar un corte preliminar. Si el usuario ya cortó el video (o su estilo dice que envían cortes preliminares sincronizados con grabaciones de pantalla), solo recorta silencios donde no rompa una transición, un desplazamiento o una grabación de pantalla. Pregunta cuando no estés seguro.
  4. Renderizar el corte: python3 scripts/apply_keep.py <video> work/NOMBRE-keep.json work/NOMBRE-cut.mp4. Corta con fundidos de audio cortos para que las uniones no hagan clic. Si no hay nada que cortar, saltéalo y usa el original: dilo en el plan.
  5. Transcribir work/NOMBRE-cut.mp4 de nuevo, o desplazar los tiempos de palabra con el -timemap.json que apply_keep.py escribe junto al corte. Cada tiempo de aquí en adelante está en la línea de tiempo del corte.
  6. Más de 60 s y destinado a un corto: ofrece los 60 s más fuertes de la transcripción, o /video-editor:clips para hacer varios cortos.

Etapa 4: Preguntar sobre sitios web

Si el video nombra un sitio web, aplicación o herramienta en línea que muestran o dicen a la gente que use, pregunta antes de planificar, exactamente como describe el paso 2 de awa-video-reel: ofrece un B-roll grabado de usarlo de principio a fin, pide el enlace, nunca adivines una URL, y ofrece el seguimiento de Claude Code cuando el video diga que se pegue un mensaje en algún lugar. Su propia grabación de pantalla siempre es una opción. Sin sitio web en el video: no preguntes.

Etapa 5: Storyboard (puerta de aprobación)

Planifica toda la edición antes de renderizar nada. Lee references/beat-map.md (qué visual encaja con qué momento, y cómo se construye cada código Brand Nat) y references/transitions-sound.md.

  1. Tesis de edición: una línea sobre lo que esta edición debe hacer por el mensaje.

  2. Secciones: gancho (primeros 1 a 3 s), configuración, cada punto o prueba, recompensa, llamado a la acción.

  3. Elegir el motor (más en references/toolkit.md):

    • A. Motor de reel (awa-video-reel): clips de hasta 60 s, con o sin cabeza parlante. El predeterminado cuando está instalado. Efectos, subtítulos, tarjetas, movimientos de cámara, B-roll de sitio web, tarjetas de introducción y final de Remotion, música y efectos de sonido en un solo render. Renderiza a los fps de origen hasta 30.
    • B. Motor de formato largo (render.py del complemento Video Editor): más de 60 s, muchas grabaciones de pantalla, un estilo que necesita 60 fps o Remotion, o sin instalación de awa. Los efectos provienen del motor de efectos como un pase previo, los gráficos animados de HyperFrames o Remotion como superposiciones, el sonido de scripts/sound_mix.py.
    • C. Construcción de gráficos animados (HyperFrames, o Remotion cuando el estilo lo dice): aspectos liderados por gráficos donde el metraje se convierte en una capa en un marco diseñado (Nat L3, L7, L8, L9, G3, G7, X3, X11, X19, explicadores). Carga /hyperframes primero y sigue su ciclo de trabajo.
    • Puedes combinarlos: por ejemplo, motor A para la edición, más un gancho de HyperFrames renderizado por separado y unido al frente.
  4. Escribir la tabla del plan en el chat:

    #TiempoLo que se diceEn pantallaConstruido conTransición de entradaSonido

    "Construido con" nombra la herramienta y la primitiva exacta, por ejemplo effects: orbit, awa card: list, HF: logo tiles (Nat V1), camera: punch 1.1.

  5. Tarjeta de estilo debajo (máximo 6 líneas): el ajuste preestablecido de estilo si se usa uno, los códigos Brand Nat en juego con sus nombres (incluso cuando el usuario no eligió códigos, nombra los más cercanos para que puedan intercambiarlos), aspecto (limpio o cinematográfico), color de acento, subtítulos, música (estado de ánimo y pista), tarjeta final, B-roll.

  6. Reglas de presupuesto y ritmo:

    • 5 a 6 estilos para todo el video. Mismo trabajo, mismo tratamiento cada vez.
    • Un nuevo compás cada 3 a 6 s (o el ritmo del estilo, por ejemplo 2 a 3 s). Nunca dos cosas grandes a la vez: un efecto, una tarjeta y un B-roll nunca se superponen. Máximo 2 capas apiladas.
    • Deja respiros de solo conversación. Efectos de 1,5 a 4 s, tarjetas de 2 a 6 s, B-roll de 3 a 6 s.
    • Abre fuerte en los primeros 2 s. Cierra en el llamado a la acción, luego la tarjeta final.
    • Los números en pantalla son solo números que dijeron o dieron. Nunca inventes estadísticas, vistas o precios.
  7. Extras opcionales para ofrecer en una línea cada uno cuando encajen: un aviso de toma MultiCam (/multicam-shot) para un pase de cámara AI en un gancho corto (hace un aviso para Seedance 2.0 Fast, no un render); una tarjeta de introducción de Remotion cuando el video no abre con su propio gancho.

  8. Pregunta: "¿Algún cambio? Señala un número de fila, o di adelante." Espera. Aplica cambios y vuelve a mostrar solo lo que cambió.

Etapa 6: Construir

Haz que el primer render sea una vista previa donde el motor lo admita (mitad de tamaño o --preview), y verifica los fotogramas antes de cualquier render largo.

Motor A (awa-video-reel). Ejecuta su scripts/prepare.sh en work/NOMBRE-cut.mp4, luego escribe fx.json, edit.json y cards.json en su carpeta de trabajo a partir del plan aprobado, usando los formatos exactos, las trampas de efecto y la lista de sin subtítulos en su SKILL.md. Verifica los fotogramas de efecto con fx.py --still, luego ejecuta bash scripts/render.sh <job> en segundo plano. Usa SKIP_FX=1 (y SKIP_HF=1) en re-renders cuando solo cambiaron tarjetas, subtítulos, música o sonido. Para códigos Nat que no puede expresar, construye ese momento en HyperFrames (motor C) y únelo o superponlo después.

Motor B (complemento Video Editor). Lee su skills/edit/reference/plan-format.md. Ejecuta el pase previo de efectos en el corte primero cuando el plan tenga efectos (effects/scripts/fx.py --plan), y usa ese archivo como input del plan. Escribe work/NOMBRE-plan.json (subtítulos, títulos, zooms, superposiciones, B-roll; keep cubre todo el clip porque el corte está hecho), renderiza con --preview, verifica, luego renderiza completo. Gráficos animados que no puede expresar: constrúyelos en HyperFrames con una raíz transparente (hyperframes/references/overlays.md), renderiza y colócalos con overlays.

Motor C (HyperFrames). Carga /hyperframes y lee motion-doctrine y captions-overlay antes de componer. Coloca el metraje del corte como una capa de video (con data-has-audio="true" para que la voz pase, luego añade sonido en la etapa 7

Skills relacionados