Communitygithub.com

andyluu98/VideoMotion

Selecciona o crea música de fondo para proyectos de video, mide el ritmo y luego mezcla con la voz (la música se atenúa cuando hay diálogo, con nivel -14 LUFS). Se usa en el paso 6 de /videomotion, o cuando el usuario envía un archivo de música, dice “cambiar música”, “música más animada”, “bajar volumen de la música”.

¿Qué es VideoMotion?

Este skill para agentes de IA (como Claude Code, Cursor, Codex) especializado en edición de video gestiona la banda sonora de un proyecto. Permite al agente seleccionar la fuente de música con una prioridad clara: primero usar un archivo proporcionado por el usuario, luego (cuando esté disponible) un paso ACE-Step, y por último generar música sintetizada mediante un script Python, eligiendo un estado de ánimo (calm, inspiring, upbeat, tech) que ajusta el BPM por defecto y se adapta al estilo del video (whiteboard, explicación, anuncio, etc.). El skill también mide el ritmo de la música (para pistas sintetizadas proporciona beats.json; para archivos de usuario utiliza un script de detección de BPM) y realiza la mezcla final con la voz, aplicando ducking (la música baja automáticamente durante el diálogo) y normalizando a -14 LUFS. Es útil para agentes que editan videos de forma automatizada, asegurando una mezcla coherente y profesional sin intervención manual del usuario.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/andyluu98/VideoMotion/tree/HEAD/skills/vm-nhac

Preguntar en tu IA favorita

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

Documentación

Música de fondo

Las variables VV, PY son las mismas que en el skill videomotion.

Seleccionar fuente (en orden)

  1. El usuario proporciona un archivo de música: copiarlo en <proyecto>/music/bgm.<extensión> y convertirlo a bgm.wav: ffmpeg -y -i <archivo> -ar 48000 -ac 2 <proyecto>/music/bgm.wav. Si la música es más corta que el video, informar al usuario (el mezclador dejará silencio en la parte faltante).
  2. ACE-Step (aún no disponible en esta versión; cuando se instale se indicará aquí).
  3. Música generada por código (predeterminada cuando no hay 1 ni 2):
"$PY" "$VV/tools/music/synth.py" <proyecto> --duration <total en words.json> --mood <mood> [--bpm N] [--seed N]

Elegir mood según el estilo y contenido:

moodBPM predeterminadoAdecuado para
calm84whiteboard, explicación lenta, temas serios
inspiring96explicación, formación, historias positivas
upbeat112anuncios, promocionales, swiss-motion
tech104dark-keynote, productos tecnológicos, dataviz

Cambiar --seed para obtener una melodía diferente con el mismo mood. Nunca descargar música de la web para empaquetarla en el repositorio o proyecto a menos que el usuario proporcione el archivo y confirme la licencia.

Medir el ritmo (cuando se necesita cortar escenas al compás)

La música generada ya incluye music/beats.json. Para la música proporcionada por el usuario, medir el ritmo con el script copiado de bestagentkits:

"$PY" "$VV/vendor/bestagentkits/fit-beat-grid.py" <proyecto>/music/bgm.wav --min-bpm 70 --max-bpm 140

Escribir el BPM y BEAT0 resultantes en music/beats.json ({"bpm":..,"beat0":..,"source":"fit-beat-grid"}). La columna de dB de cada compás indica dónde la música sube (build) y explota (drop): colocar la escena culminante del guion en el drop si es posible.

Mezclar

"$PY" "$VV/tools/audio/mix.py" mix <proyecto> [--music-db -6] [--duck-db 5]
  • --music-db: nivel de la música respecto a la voz mientras se habla (predeterminado -6 dB). Si el usuario dice “bajar música”, reducir a -9; si dice “no se oye la música”, subir a -4.
  • --duck-db: cuánto sube la música cuando no hay diálogo (predeterminado 5 dB).
  • Imprime MIXDONE I=<LUFS> TP=<dBTP>. Se considera correcto cuando I está entre -14 ± 0.5 y TP no supera -1.0.

Individual skills in this repo

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

andyluu98/VideoMotion

Làm video tiếng Việt từ một yêu cầu, AI làm đạo diễn, không khung dựng sẵn: ý tưởng lớn, kịch bản, giọng VieNeu, phân cảnh theo lời, nhạc nền, dựng từng cảnh bằng agent Sonnet chạy song song (HyperFrames + GSAP), phụ đề, xuất MP4. Dùng khi người dùng gõ "/videomotion", "làm video", "video giải thích", "clip ngắn về X", "biến bài này thành video".

andyluu98/VideoMotion

Kiểm tra và cài đặt mọi thứ VideoMotion cần (Node.js, ffmpeg, HyperFrames, môi trường Python, giọng VieNeu, Whisper). Dùng khi người dùng mới cài plugin, gõ "/vm-cai-dat", "cài đặt video", "kiểm tra máy làm video", hoặc khi một bước làm video báo thiếu công cụ.

andyluu98/VideoMotion

Dựng hình cho dự án VideoMotion đã có giọng và phân cảnh: tải phông của style, viết màu, giao từng cảnh cho agent vm-canh chạy song song, ghép, kiểm tra kỹ thuật, render, ghép âm thanh và phụ đề. Dùng ở bước 7 của /videomotion, hoặc khi người dùng nói "dựng lại cảnh", "render", "xuất video", "sửa hình cảnh X".

andyluu98/VideoMotion

Sinh giọng đọc tiếng Việt bằng VieNeu-TTS từ script.json của một dự án video, tự chấm phát âm bằng Whisper, giữ bản đọc tốt nhất, lấy mốc thời gian từng từ (voice.wav, words.json). Dùng ở bước 4 của /videomotion, hoặc khi người dùng nói "sinh giọng", "đọc lại câu", "đổi giọng", "sửa phát âm".

Skills relacionados