Productor de Video
Crea videos completos con locución, música y material visual.
Esta es una habilidad de orquestación que combina:
- Generación de guiones/storyboards (Claude)
- Síntesis de voz (Gemini TTS)
- Música de fondo (Lyria)
- Generación de clips de video (Veo 3.1) o animación de imágenes
- Ensamblaje final (FFmpeg mediante media-utils)
Flujo de trabajo
Paso 1: Recopilar requisitos (OBLIGATORIO)
⚠️ NO omitas este paso. NO ejecutes init_project.py hasta que tengas TODAS las respuestas.
Usa preguntas interactivas — haz UNA pregunta a la vez, espera la respuesta, luego haz la siguiente. Esto crea un proceso colaborativo guiado por especificaciones.
Flujo de preguntas
⚠️ Usa la herramienta AskUserQuestion para cada pregunta a continuación. No solo imprimas las preguntas en tu respuesta — usa la herramienta para crear avisos interactivos con las opciones mostradas.
P1: Tema
"¡Crearé ese video! Primero — ¿de qué trata?
(p. ej., lanzamiento de producto, historia de marca, tutorial, explicativo — o describe el tuyo)"
Espera respuesta.
P2: Duración
"¿Cuánto debe durar el video?
- 15 segundos (gancho rápido)
- 30 segundos (anuncio estándar)
- 60 segundos (explicativo)
- 2+ minutos (detallado)
- O especifica tu propia duración"
Espera respuesta.
P3: Estilo
"¿Qué estilo visual?
- Premium/lujo
- Divertido/juguetón
- Corporativo/profesional
- Dramático/cinematográfico
- Mínimo/limpio
- O describe tu propio estilo"
Espera respuesta.
P4: Activos
"¿Tienes imágenes o videoclips existentes para usar?
- No, generar todo
- Sí, tengo imágenes (proporciona rutas)
- Sí, tengo videoclips (proporciona rutas)"
Espera respuesta.
P5: Estrategia de audio
"¿Cómo debemos manejar el audio?
- Personalizado — Genero locución + música de fondo
- Veo nativo — Usar el diálogo/SFX/ambiente integrado de Veo
- Silencioso — Sin audio, añadir después"
Espera respuesta.
P6: Voz (si es audio personalizado)
"¿Qué tono de voz para la locución?
- Profesional
- Amigable/cálido
- Enérgico
- Tranquilo/suave
- Dramático
- O describe tu propio tono"
Espera respuesta.
P7: Música (si es audio personalizado)
"¿Qué ambiente musical?
- Electrónica moderna
- Cinematográfica/épica
- Pop animado
- Ambiental/chill
- Corporativa
- O describe tu propio estilo"
Espera respuesta.
P8: Formato
"¿Qué relación de aspecto?
- 16:9 (YouTube, web)
- 9:16 (TikTok, Reels, Shorts)
- 1:1 (feed de Instagram)"
Espera respuesta.
P9: Resolución
"¿Qué resolución?
- 720p (generación más rápida)
- 1080p (HD estándar)"
Espera respuesta.
P10: Modelo
"¿Qué modelo de Veo?
veo-3.1— Último, máxima calidad (predeterminado)veo-3.1-fast— Generación más rápida, calidad ligeramente inferiorveo-3— Generación anteriorveo-3-fast— Generación anterior, más rápido"
Espera respuesta.
Referencia rápida
| Pregunta | Determina |
|---|---|
| Tema | Contenido de escenas e indicaciones |
| Duración | Número de escenas (los clips de Veo deben ser de 4, 6 u 8 segundos) |
| Estilo | Indicaciones visuales y selección musical |
| Activos | Generar vs usar existentes |
| Audio | personalizado, veo_audio o silencioso |
| Voz | Selección de voz TTS |
| Música | Indicación de Lyria |
| Formato | Relación de aspecto para Veo |
| Resolución | Calidad de salida 720p o 1080p |
| Modelo | veo-3.1, veo-3.1-fast, veo-3, veo-3-fast |
Paso 2: Inicializar proyecto
Una vez que tengas las respuestas del usuario, inicializa el proyecto con sus preferencias:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/video-producer-agent/scripts/init_project.py \
--name "Video de lanzamiento de producto" \
--duration 30 \
--aspect-ratio 16:9 \
--audio-strategy custom \
--scenes 5
Paso 3: Configurar project.json
Edita project.json con las indicaciones de escena, texto de locución y estilo musical según las respuestas del usuario.
Paso 4: Ensamblar el video
python3 ${CLAUDE_PLUGIN_ROOT}/skills/video-producer-agent/scripts/assemble.py \
--project ~/mi_proyecto_video/
Estructura del proyecto
Cuando inicializas un proyecto, se crea esta estructura de carpetas:
mi_proyecto/
├── project.json # Configuración: escenas, locución, música, ajustes
├── storyboard.md # Documento de planificación del video
├── scenes/ # Clips de video generados por Veo
│ ├── escena1_intro.mp4
│ ├── escena2_caracteristicas.mp4
│ └── escena3_cta.mp4
├── audio/ # Activos de audio
│ ├── locucion.wav # Locución generada
│ ├── musica_fondo.wav # Música generada
│ └── mezcla_final.mp3 # Pista de audio mezclada
├── work/ # Archivos intermedios (generados automáticamente)
│ ├── escena1_silenciosa.mp4
│ ├── video_concatenado.mp4
│ └── ...
└── output/ # Entregables finales
└── video_lanzamiento_producto_final.mp4
Scripts
init_project.py
Inicializa un nuevo proyecto de video con estructura de carpetas y plantillas.
# Proyecto básico
python3 init_project.py --name "Mi Video" --duration 30
# Crear en un directorio específico
python3 init_project.py --name "Video Demo" --output ~/Videos/
# Video vertical para redes sociales
python3 init_project.py --name "Reel de Instagram" --aspect-ratio 9:16 --duration 15
# Usar audio nativo de Veo (sin locución/música personalizada)
python3 init_project.py --name "Escena Cinematográfica" --audio-strategy veo_audio
# Más escenas
python3 init_project.py --name "Video Largo" --duration 60 --scenes 5
Opciones:
| Opción | Predeterminado | Descripción |
|---|---|---|
--name | obligatorio | Nombre del proyecto |
--output | directorio actual | Directorio padre |
--duration | 30 | Duración objetivo en segundos |
--aspect-ratio | 16:9 | 16:9, 9:16, 1:1, 4:3 |
--audio-strategy | custom | custom, veo_audio, silent |
--scenes | 3 | Número de marcadores de escena |
assemble.py
Orquesta el pipeline completo de ensamblaje de video.
# Pipeline completo (generar todo + ensamblar)
python3 assemble.py --project ~/mi_proyecto/
# Omitir generación (usar archivos de escena/audio existentes)
python3 assemble.py --project ~/mi_proyecto/ --skip-generation
# Simulación (mostrar lo que se haría)
python3 assemble.py --project ~/mi_proyecto/ --dry-run
Pasos del pipeline:
- Generar escenas de video (Veo 3.1)
- Extraer audio de escenas (si es audio personalizado)
- Generar locución (Gemini TTS)
- Generar música de fondo (Lyria)
- Mezclar locución + música
- Concatenar clips de video
- Fusionar audio con video
- Generar video final
Configuración de project.json
{
"name": "Video de lanzamiento de producto",
"duration_target": 30,
"aspect_ratio": "16:9",
"resolution": "720p",
"audio_strategy": "custom",
"scenes": [
{
"id": 1,
"name": "escena1_heroe",
"prompt": "Zoom lento cinematográfico sobre producto premium, iluminación dramática, estilo comercial de alta gama",
"duration": 6,
"notes": "Solo música, sin locución"
},
{
"id": 2,
"name": "escena2_caracteristicas",
"prompt": "Demostración de características del producto, animaciones elegantes, estética tecnológica moderna",
"duration": 8,
"notes": "La locución comienza aquí"
},
{
"id": 3,
"name": "escena3_cta",
"prompt": "Producto con logotipo sobre fondo limpio, momento de llamada a la acción",
"duration": 6,
"notes": "La música se intensifica, la locución termina"
}
],
"voiceover": {
"enabled": true,
"text": "Presentando el futuro del audio. Sonido cristalino. Comodidad todo el día. Experimenta la diferencia.",
"voice": "Charon",
"style": "Profesional, segura, voz de marca premium"
},
"music": {
"enabled": true,
"prompt": "electrónica moderna, premium, elegante, exhibición de producto, bajo sutil",
"duration": 35,
"bpm": 100,
"brightness": 0.6
},
"assembly": {
"transition": "fade",
"transition_duration": 0.5,
"music_volume": 0.3,
"fade_in": 1.0,
"fade_out": 2.0
}
}
Estrategias de audio
| Estrategia | Descripción | Cuándo usarla |
|---|---|---|
custom | Extraer audio de Veo, añadir locución + música personalizada | La mayoría de los videos |
veo_audio | Mantener el audio generado por Veo (diálogo, SFX) | Escenas cinematográficas, diálogos |
silent | Extraer audio, generar video silencioso | Añadir audio después |
Flujo de trabajo: Crear un video
Paso 1: Inicializar proyecto
python3 init_project.py --name "Promo Auriculares Inalámbricos" --duration 30
Paso 2: Planificar el storyboard
Edita storyboard.md para planificar la estructura de tu video:
## Escena 1: Revelación del héroe (0-5s)
- Visual: Auriculares emergiendo de la sombra, iluminación premium
- Audio: Solo música (introducción dramática)
## Escena 2: Calidad de sonido (5-12s)
- Visual: Ondas sonoras, persona disfrutando música
- Audio: Locución: "Sonido cristalino. Bajos inmersivos."
## Escena 3: Comodidad (12-20s)
- Visual: Primer plano del ajuste, persona corriendo
- Audio: Locución: "Comodidad todo el día. Ajuste seguro."
## Escena 4: CTA (20-30s)
- Visual: Producto + logotipo
- Audio: Locución: "Experimenta la diferencia." + aumento de música
Paso 3: Configurar project.json
Completa las indicaciones de escena, texto de locución y estilo musical según tu storyboard.
Paso 4: Ensamblar
python3 assemble.py --project ~/promo_auriculares_inalambricos/
Paso 5: Revisar e iterar
Revisa la salida en output/. Si necesitas ajustes:
# Re-ejecutar con escenas existentes (solo remezclar audio)
python3 assemble.py --project ~/promo_auriculares_inalambricos/ --skip-generation
Lo que puedes crear
| Tipo | Ejemplo |
|---|---|
| Video de producto | Video héroe de 30s mostrando un producto |
| Video explicativo | Explicación de cómo hacer algo o de funciones |
| Video promocional/anuncio | Anuncio de marketing |
| Video demo | Demostración de producto |
| Video de formación | Contenido de formación interna |
| Testimonio | Video estilo cita de cliente |
| Video de marca | Historia de empresa/marca |
Prerrequisitos
GOOGLE_API_KEY- Para Veo (video), Gemini TTS (voz), Lyria (música)- FFmpeg instalado:
brew install ffmpeg
Estilos de video y combinaciones musicales
| Estilo | Indicación musical | Voz |
|---|---|---|
| Premium/Lujo | "elegante, minimalista, ambiental, sofisticado" | Charon (informativa) |
| Tecnológico/Moderno | "electrónico, futurista, limpio, innovador" | Kore (firme) |
| Divertido/Juguetón | "animado, alegre, acústico, positivo" | Puck (optimista) |
| Corporativo | "profesional, inspirador, orquestal ligero" | Orus (firme) |
| Estilo de vida | "tranquilo, aspiracional, indie, cálido" | Aoede (desenfadada) |
| Dramático/Cinematográfico | "épico, orquestal, emocional, en construcción" | Gacrux (madura) |
Estructuras comunes de video
Video de producto (30s)
0-5s: Toma principal (solo música)
5-15s: Características (locución + música)
15-25s: Estilo de vida/caso de uso (locución + música)
25-30s: Logotipo + CTA (fade de música)
Video explicativo (60s)
0-5s: Gancho/declaración del problema
5-20s: Introducción de la solución
20-45s: Cómo funciona (3 pasos)
45-55s: Resumen de beneficios
55-60s: CTA
Video testimonial (45s)
0-5s: Introducción/tarjeta de nombre
5-35s: Cita testimonial (múltiples escenas)
35-45s: Toma de producto + logotipo
Flujo de trabajo manual (sin scripts)
Si prefieres ejecutar cada paso manualmente:
Generar escenas:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/video-generation/scripts/veo.py \
--batch scenes.json
Generar locución:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/voice-generation/scripts/gemini_tts.py \
--text "Tu texto de locución..." \
--voice Charon \
--style "Profesional, cálido"
Generar música:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/music-generation/scripts/lyria.py \
--prompt "electrónica moderna, premium" \
--duration 35
Extraer audio de clips:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/media-utils/scripts/video_strip_audio.py \
-i escena*.mp4
Concatenar videos:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/media-utils/scripts/video_concat.py \
-i silent_*.mp4 --transition fade -o video.mp4
Mezclar audio:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/media-utils/scripts/audio_mix.py \
--voice locucion.wav --music musica.wav -o audio.mp3
Fusionar audio + video:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/media-utils/scripts/video_audio_merge.py \
--video video.mp4 --audio audio.mp3 -o final.mp4
Archivos de entrada que puedes proporcionar
| Tipo de archivo | Cómo se usa |
|---|---|
| Imágenes de producto | Animar con Veo como primer fotograma |
| Logotipo (PNG) | Superponer en la escena final |
| Locución existente | Colocar en audio/locucion.wav |
| Música de marca | Colocar en audio/musica_fondo.wav |
| Videoclips | Colocar en la carpeta scenes/ |
| Guion/copia | Usar como texto de locución |
Limitaciones
- Duración del video de Veo: Máximo 8 segundos por clip (concatenar para más duración)
- Veo 3.1 incluye audio: Todos los clips tienen audio generado (extraer si se usa personalizado)
- Tiempo de procesamiento: La generación de video toma 1-3 minutos por clip
- Resolución: Actualmente 720p o 1080p (1080p solo para 8s)
Manejo de errores
| Error | Solución |
|---|---|
| "GOOGLE_API_KEY no configurada" | Configurar clave API según el README |
| "FFmpeg no encontrado" | Instalar: brew install ffmpeg |
| "project.json no encontrado" | Ejecutar init_project.py primero |
| Tiempo de espera en generación de video | Reintentar, o usar duración más corta |
| Problemas de sincronización audio/video | Ajustar duraciones de escena |
Ejemplos de indicaciones
Simple:
"Crea un video de producto de 30 segundos para mi nueva cafetera"
Detallado:
"Crea un video de producto de 45 segundos para nuestros nuevos auriculares inalámbricos. Ambiente premium, de lujo. Tengo fotos del producto adjuntas. Voz masculina profesional. Música electrónica moderna. 16:9 para YouTube."
Con proyecto:
"Inicializa un proyecto de video llamado 'Demo de App' con 5 escenas, 60 segundos en total, formato vertical para TikTok"