Communitygithub.com

viethuynh243/video-studio

Automatiza la creación y edición profesional de videos con un solo comando: edición a partir de storyboard, cambio de voz en off, subtítulos, corrección de fotogramas, control de calidad, detección de 'AI slop' y exportación a CapCut.

¿Qué es video-studio?

Esta skill transforma cualquier flujo de trabajo de video en un proceso automatizado y profesional, manejando desde la generación de un video nuevo a partir de un storyboard hasta la revisión final. Soporta plataformas como Claude Code, Cursor y Codex, y se integra con CapCut para ajustes manuales. Utiliza scripts modulares (autovideo.py, slop_guard.py, critic.py) para tareas como edición de video, cambio de voz en off con TTS en vietnamita del norte, sincronización de subtítulos, corrección de fotogramas (60p/30p→24p), control de calidad automático (detección de fotogramas perdidos, parpadeos, congelados, LUFS, coincidencia de voz) y detección de 'AI slop' (frases cliché, datos sin fuente, afirmaciones sin fundamento). También puede refotografiar videos para redes sociales, estabilizar, igualar colores, y exportar drafts a CapCut. Todo se orquesta a través de un archivo project.json o comandos directos, con informes detallados de QC para garantizar la calidad profesional.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add viethuynh243/video-studio

Preguntar en tu IA favorita

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

Documentación

Video Studio - Edición automática de videos

Esta skill produce videos terminados, no solo da instrucciones. Todo pasa por una puerta: scripts/autovideo.py. El conocimiento profesional (ángulos de cámara, ritmo, sonido, subtítulos, CapCut, cine con IA, lecciones prácticas) está en references/ para tomar las decisiones correctas al crear el storyboard y al leer los informes de QC.

Ruta del script: directorio que contiene este archivo + /scripts/ (instalar según el README: ~/.claude/skills/video-studio/scripts).

0. Comandos slash para el usuario

/video:plan discutir ideas - guión - storyboard - iluminación · /video:make crear nuevo video · /video:revoice cambiar voz en off · /video:subs subtítulos · /video:reframe cambiar a formato vertical/cuadrado · /video:library banco de escenas · /video:qc verificar · /video:voices seleccionar voz según propósito · /video:fix corregir vibración/fps/temblor · /video:critic crítica independiente · /video:slop detectar y corregir "AI slop" · /video:capcut exportar a CapCut. Si el usuario habla de forma natural (sin escribir comandos), se sigue la tabla siguiente.

0b. Herramientas MCP video-studio (prioritarias cuando están disponibles)

Cuando las herramientas mcp__video-studio__* están disponibles en la sesión, úselas directamente en lugar de ejecutar scripts con Bash:

  • Rápidas: video_probe, video_qc, contact_sheet, voices_suggest, voices_catalogue, pronunciation_preview, shot_search, motion_stills, slop_check, slop_compare.
  • Tareas largas (devuelven job_id, se rastrean con job_status / job_list): make_video, revoice_video, subtitle_video, convert_fps, reframe_video, stabilize_video, motion_graphic, critic_kit, voice_samples. Registro único: claude mcp add --scope user video-studio -e PYTHONIOENCODING=utf-8 -- python <repo>/scripts/mcp_server.py.

1. Seleccionar comando según la solicitud

El usuario quiereHacer
Crear video nuevo a partir de idea/guion + banco de fuentes (video, imagen)Escribir project.json según templates/project_make.json → autovideo.py make project.json --out NOMBRE_v1.mp4
Cambiar voz en off / redoblar un video existenteautovideo.py revoice VIDEO.mp4 --script texto.txt [--voice auto --proposito noticias] --out NOMBRE_v1.mp4 [--subs]
Añadir subtítulos a un videoautovideo.py subs VIDEO.mp4 --script texto.txt --out NOMBRE_sub.mp4 (detecta marcas de tiempo automáticamente)
Verificar video antes de entregarautovideo.py qc VIDEO.mp4 (+ contact_sheet.py para inspección visual)
Cambiar fps a cualquier valor 24/25/30/50/60/120, cámara lenta, corregir vibración de fotogramasfps_convert.py convert ORIGEN DESTINO --fps 24 [--slowmo 4] (RIFE GPU)
Video horizontal → vertical/cuadrado con seguimiento de sujeto; paneo/zoom virtual; estabilizacióncamera.py reframe / move / stabilize
Seleccionar las mejores escenas de un lote de metraje, buscar por descripciónshot_select.py scan / best / search
Igualar color entre escenas, look cinematográficograde.py match / look / apply
Exportar para plataforma, detectar ritmo musicaldeliver.py export <preset> / beats
Discutir ideas, storyboard, iluminación, ángulos de cámara antes de editar/video:plan + references/11-cinematografia-avanzada.md
Mapas de ruta animados, tarjetas de capítulo, gráficos de datos (gráficos animados con código)motion_html.py stills/render + templates/motion/*.html, o escena "fuente": {"html": ...}
Guión/video que suena "a IA": frases cliché, números sin fuente, afirmaciones sin fundamento, ritmo uniforme, efectos excesivos/video:slop (slop_guard.py mide → agente propone correcciones → compare vuelve a medir)
Evaluar video antes de enviar (evaluador diferente al editor)/video:critic (critic.py + agente nuevo, evaluar hasta que todos los ítems ≥ 8)
Seleccionar voz según propósitovoices.py suggest --proposito noticias --genero femenino, generar muestras de 2-3 voces sugeridas, enviar al usuario para escuchar
Llevar a CapCut para ajustes manualesañadir --capcut NOMBRE_BORRADOR a make/revoice, o capcut_api.py build --spec
Cine IA/micro-dramareferences/09-cine-ia-pipeline.md + storyboard.py jobs

Todos los comandos automáticos: no sobrescriben archivos existentes, guardan archivos temporales en <salida>_work/, generan INFORME_QC.md (errores de imagen, vibración, LUFS, % de discurso coincidente con el guión). Leer el informe antes de enviar e incluir las mediciones en la respuesta.

2. Crear project.json para make (el más importante)

  • Cada escena tiene una idea de discurso. fuente es uno de: {"archivo", "inicio", "fin"} (video), {"imagen", "efecto": zoom_in|zoom_out|pan_left|pan_right}, {"color": "#0E2440"}.
  • La duración de la escena se calcula automáticamente = max(duracion, duración del discurso + 0,9 s). Las escenas de video se colocan automáticamente dentro de un solo plano original; si la fuente no es lo suficientemente limpia, se retira la escena automáticamente, sin congelar.
  • La imagen debe corresponder exactamente al discurso (proyecto correcto, evento correcto) - seleccionar fuente usando probe_qc.py --inventory + contact_sheet.py sobre las fuentes, no adivinar por nombre de archivo.
  • transicion: cut dentro de la misma idea, dissolve al cambiar de idea/espacio. Escenas ≤ 7-8 s.
  • El discurso se escribe como se habla; números y unidades se mantienen (119 km, 100 km/h) - tts_vi.py los normaliza automáticamente (guiones/rayas no se leen como "a").
  • texto_en_pantalla: breve, solo datos/nombres que aparecen en el discurso; no usar "—".
  • Avanzado: fps del proyecto cualquiera (fuentes con diferente fps pasan automáticamente por fps_convert), escenas de video con slowmo, camera (push/pan virtual), estabilizar, encuadre_inteligente (seguimiento automático del sujeto al exportar vertical); proyecto con color (igualación de color + look) y cortar_por_musica (cortar en los beats).
  • Voz no forzada: "voz": "auto" (por defecto) selecciona según "proposito" (empresarial, noticias, documental, publicidad, redes_sociales, tutorial, solemne, infantil, evento) + "genero", "region", "tono" (grave/medio/agudo), basado en perfiles medidos de cada voz (voices.py profile: precisión de lectura, tono, velocidad). O especificar: nombre de voz VieNeu, {"edge": "vi-VN-HoaiMyNeural"}, {"clonar": "muestra_voz.wav"} (el hablante debe dar su consentimiento), o grabación real "grabacion": "frase3.wav" para cada escena. Cada escena/personaje puede tener su propia voz. Siempre ofrecer 2-3 voces sugeridas (voices.py suggest) para que el usuario escuche antes de decidir.
  • Precisión: diccionario de pronunciación templates/pronunciacion.json + "pronunciacion" específica del proyecto (abreviaturas, nombres propios); cada frase es verificada por Whisper, las frases con < "precision" (0,97) se releen automáticamente hasta "releer" veces, informando frase por frase; los subtítulos se alinean con cada palabra real.
  • Opciones de edición: "estilo": solemne | cinematografico (letterbox 2.39, filmico) | documental | dinamico (corte por beat) | redes_sociales (encuadre con seguimiento de sujeto). Transición por escena: cut, dissolve, fade_black, dip_white, wipe_left/right, slide_left/right, zoom_in. Encuadre: "encuadre": fill (llenar) | fit_blur (mantener imagen completa, fondo borroso) | smart (seguimiento de sujeto). "letterbox": 2.39. Todas las opciones se pueden sobrescribir por escena.
  • Gráficos animados: "fuente": {"html": "templates/motion/route_map.html", "params": {...}} (mapa de ruta que se dibuja gradualmente, tarjetas de capítulo...). make exporta automáticamente una versión solo música _solo_musica.mp4. Brief de director + facts.md antes de editar una película grande (references/12).
  • Antídoto contra AI slop: "facts": "facts.md" (cada número + frase original + documento + fecha) y "reglas": ["~/.video_studio/reglas/<cliente>.json"] (libro de reglas del cliente, fuera del repositorio). make verifica automáticamente y escribe la sección "Antídoto contra AI slop" en el informe; "detener_si_slop": true para detener si aún hay números inventados/violaciones de reglas. Si el cliente corrige una frase manualmente, copiar el texto literal al libro de reglas (slop_guard.py registrar) para que la siguiente película lo detecte automáticamente (references/13).
  • Selección automática de escenas: "banco_escenas": "banco.json" (de shot_select.py scan --clip) y "fuente": {"buscar": "aerial view of a highway at sunset"} → tomar la escena más coincidente, suficientemente larga, no usada, con alta puntuación de calidad. Escribir la descripción de búsqueda en inglés.

3. Reglas inmutables

  1. No borrar/sobrescribir la versión entregada. Nueva versión _vN. Reemplazar la versión principal solo cuando el usuario la apruebe: mv -n la versión antigua a _guardado_<descripcion>, cp -n la nueva, cmp para confirmar.
  2. Medir antes de hablar - usar los números de INFORME_QC.md; si no se ha medido, decir que no se ha medido.
  3. Contenido veraz: proyecto/entidad correctos, sin stock extranjero, códigos QR, publicidad, eslóganes extraños, personas no autorizadas.
  4. Traducción 100% fiel al significado y contexto; si una frase genera duda, preguntar.
  5. No introducir contraseñas/claves API en lugar del usuario.
  6. Descargar modelos solo de fuentes originales, priorizar .safetensors, instalar venv propio.
  7. Comunicación en español.
  8. No dar números inventados: todo número en pantalla/discurso debe estar en facts o declararse como [calculo: ...]. Las correcciones escritas por el agente solo se aceptan después de que slop_guard.py compare las vuelva a medir (el escritor no se auto-verifica).

4. Cargar referencias cuando sea necesario

CuándoArchivo
Proceso, versiones, informes para el clientereferences/01-proceso.md
Ángulos de cámara, planos, ritmo de corte, transiciones, imágenes fijasreferences/02-lenguaje-visual.md
Vibración, congelamiento, fotogramas perdidos, cambio de fpsreferences/03-fotogramas-movimiento.md
Color, escala/recorte, logo, exportaciónreferences/04-imagen-color-exportacion.md
Voz en off, TTS, música, LUFSreferences/05-sonido-voz.md
Subtítulos, traducción, texto en pantallareferences/06-subtitulos-traduccion-texto.md
CapCut (MCP, VectCutAPI, web)references/07-capcut.md
QC antes de entregarreferences/08-qc-entrega.md
Cine IA / micro-dramareferences/09-cine-ia-pipeline.md
Lecciones aprendidasreferences/10-lecciones-practicas.md
Iluminación, lentes, apertura/obturador/ISO/ND según situación, prompt video IA, ángulos de cámara, color, sonido, ediciónreferences/11-cinematografia-avanzada.md
Antídoto contra "AI slop": números con fuente, libro de reglas del cliente, revisor ciego, re-medir antes de aceptarreferences/13-antídoto-ai-slop.md
Brief de director, reglas contra "movimiento tipo IA", gráficos con código, ciclo de crítica, proyectos grandes (GES, 3D, estado actual)references/12-direccion-movimiento-y-critica.md

5. Conjunto de scripts

ScriptFunción
autovideo.pyPuerta principal: make, revoice, subs, qc
voices.pyPerfiles medidos de cada voz, sugerencia de voz según propósito, múltiples fuentes de voz (VieNeu, Edge, clonación, grabación)
accuracy.pyDiccionario de pronunciación, verificación de cada frase, relectura automática de frases incorrectas
motion_html.pyGráficos animados con HTML + seek(t) (Playwright), motion blur sub-frame automático
critic.pyKit de evaluación independiente: contact/phone/strip, fotogramas perdidos, texto con tiempo suficiente, verificación de slop (junto con slop_guard)
slop_guard.pyAntídoto determinista contra AI slop: números con fuente/deducidos, clichés, afirmaciones sin fundamento, ritmo, edición uniforme, libro de reglas del cliente; compare acepta/rechaza correcciones
mcp_server.pyServidor MCP: 21 herramientas (rápidas + cola de trabajos) para que Claude las llame directamente
probe_qc.pyInventario de fuentes / QC de video (fotogramas perdidos, parpadeos, fotogramas repetidos, congelados, vibración, cadencia, LUFS, bordes negros)
contact_sheet.pyHoja de contactos de 3 fotogramas/plano para inspección visual
fps_convert.pyConversor de fps 24-120, cámara lenta, motion blur 180°, detección de fotogramas interpolados (RIFE/flow)
camera.pyReencuadre inteligente (rostro humano + prominencia), paneo/zoom virtual, estabilización vidstab
shot_select.pyBanco de escenas: segmentación de planos, puntuación, búsqueda por descripción (CLIP)
grade.pyLUT de igualación de color, balance automático, look; aplicar LUT
deliver.pyPresets de exportación por plataforma, detección de beats musicales
cadence_fix.pyCorrección de cadencia por segmentos con optical flow (versión antigua, no requiere GPU)
tts_vi.pyVieNeu-TTS en vietnamita (25 voces), normalización de texto, ejecución automática en venv propio
speech_check.py% de discurso coincidente con el guión (Whisper), estimación de dialecto
voice_mix.pyColocación de frases según marcas de tiempo, cadena de procesamiento de voz, ducking, LUFS, fusión de video
subs.pyDivisión de frases para subtítulos, SRT/ASS, burn-in
demucs_split.pySeparación de voz/música
capcut_api.pyCreación de borradores de CapCut desktop a través de VectCutAPI
storyboard.pyVerificación de storyboard, shotlist, cola de trabajos de cine IA

Entorno (instalar con install.ps1): ffmpeg en PATH; Python 3.12 (numpy, opencv, soundfile, librosa, Pillow, faster-whisper, torch, demucs); VieNeu en ~/tools/venv_vieneu (cambiar con VIENEU_PY); RIFE en ~/tools/rife/ (RIFE_BIN); YuNet en ~/tools/models/ (YUNET_ONNX); VectCutAPI en ~/tools/VectCutAPI (puerto 9001).

Skills relacionados