Procesador de Video
Procesa archivos de video para la creación de contenido en YouTube y genera gráficos para redes sociales. Este skill proporciona cuatro capacidades principales:
- Transcripción y Capítulos: Convierte clips de video en transcripciones con marcas de tiempo, subtítulos SRT y capítulos generados por IA para YouTube.
- Generación de Miniaturas de YouTube: Crea miniaturas de YouTube potenciadas por IA con referencias de rostros y coincidencia de estilo.
- Imágenes para Publicaciones de LinkedIn: Genera infografías profesionales e imágenes para publicaciones de LinkedIn.
- Generación Genérica de Imágenes: Crea imágenes personalizadas para cualquier plataforma con dimensiones y prompts flexibles.
Cuándo Usar Este Skill
Usa este skill cuando el usuario:
- Quiere transcribir archivos de video o clips
- Necesita generar capítulos de YouTube
- Quiere regenerar capítulos a partir de transcripciones existentes
- Quiere crear miniaturas de YouTube
- Quiere crear imágenes o infografías para publicaciones de LinkedIn
- Quiere generar imágenes para otras plataformas (Instagram, Twitter, Facebook, etc.)
- Menciona intercambio de rostros para miniaturas
- Pregunta sobre proporcionar referencias de rostro o estilo para gráficos
Elegir la Herramienta de Generación de Imágenes Correcta
El skill proporciona tres scripts de generación de imágenes. Elige según la plataforma y los requisitos:
Usa thumbnail.py (Miniaturas de YouTube) cuando:
- El usuario menciona "YouTube", "miniatura" o "thumbnail de video"
- Se solicita una relación de aspecto 16:9
- Se desea un estilo dramático, llamativo y con rostros
- Por defecto: 1920x1080
Usa linkedin-post.py (Infografías de LinkedIn) cuando:
- El usuario menciona "LinkedIn", "publicación de LinkedIn" o "infografía de negocios"
- Se solicita una infografía en formato cuadrado
- Se desea un tema profesional, oscuro, sin rostros
- Por defecto: 1200x1200
Usa image-gen.py (Genérico) cuando:
- Se especifican dimensiones personalizadas (Instagram, Twitter, Facebook, etc.)
- La plataforma no es YouTube ni LinkedIn
- El usuario solicita explícitamente una herramienta flexible/personalizada
- El usuario proporciona un prompt completo con requisitos de estilo específicos
- Parámetro requerido:
--dimensions WIDTHxHEIGHT
Prioridad: Prefiere siempre thumbnail.py o linkedin-post.py cuando el caso de uso coincida. Usa image-gen.py como alternativa para otras plataformas o requisitos personalizados.
Instalación y Requisitos
El procesador de video se encuentra en video-processor/ en el repositorio del proyecto.
Requisitos:
- Python 3.9+
- Gestor de paquetes uv
- FFmpeg (para transcripción)
- Clave API de OpenAI (para transcripción con Whisper)
- Clave API de Gemini (para capítulos y miniaturas)
- Token de API de Replicate (opcional, para intercambio de rostros)
Configuración del Entorno:
cd video-processor
uv sync
# Asegúrate de que .env exista con las claves API requeridas
1. Transcripción de Video y Capítulos
Comando Básico de Transcripción
Transcribe clips de video y genera transcripción, subtítulos y capítulos:
cd video-processor
uv run transcribe.py <ruta_de_carpeta>
Ejemplo:
uv run transcribe.py ./mi-video-de-youtube/
Formato de Entrada
Los videos deben estar en una carpeta con prefijos numéricos para ordenarlos:
mi-video-de-youtube/
├── 1.mp4 # Introducción
├── 2.mp4 # Contenido principal
├── 3.mov # Demo
└── 4.mp4 # Cierre
Formatos soportados: MP4, MOV, MKV, AVI, WEBM, M4V
Archivos de Salida
El script genera tres archivos en la misma carpeta:
-
transcript.md - Markdown con marcas de tiempo
# Transcripción [00:00] Bienvenidos de vuelta al canal... [00:15] Hoy vamos a hablar sobre... -
transcript.srt - Subtítulos SRT para editores de video/YouTube
1 00:00:00,000 --> 00:00:15,500 Bienvenidos de vuelta al canal... -
chapters.txt - Sugerencias de capítulos para YouTube (generadas por IA)
0:00 Introducción 2:30 Configuración 5:45 Tutorial Principal
Características
- Soporte para múltiples clips: Procesa clips numerados con cálculo automático de desfase de tiempo
- Soporte para videos largos: Divide automáticamente videos de más de 20 minutos (límite de la API)
- Transcripción con marcas de tiempo: Formato Markdown con marcas de tiempo precisas
- Capítulos IA: Gemini genera marcadores de capítulos contextuales
Regenerar Solo Capítulos
Si ya tienes una transcripción y quieres regenerar los capítulos:
cd video-processor
uv run chapters.py <transcript.md o ruta_de_carpeta>
Ejemplos:
# Apuntar directamente al archivo de transcripción
uv run chapters.py ./mi-video/transcript.md
# O apuntar a la carpeta que contiene transcript.md
uv run chapters.py ./mi-video/
Casos de uso:
- Ajustar capítulos sin retranscribir
- Regenerar después de editar la transcripción
- Usar un modelo de Gemini diferente
Notas Importantes
- Los clips deben estar en una carpeta plana (sin subdirectorios)
- Los videos se procesan en orden numérico según el prefijo del nombre de archivo
- Costo estimado: ~$0.006 por minuto de audio (API de Whisper)
- Los videos largos se dividen automáticamente para manejar los límites de la API
- Se requiere conexión a Internet
2. Generación de Miniaturas
Comando Básico de Miniatura
Genera miniaturas de YouTube potenciadas por IA:
cd video-processor
uv run thumbnail.py "tu idea de miniatura aquí"
Comportamiento predeterminado:
- Genera 3 variaciones
- Guarda en:
./output/Thumbnails/[YYYY-MM-DD]/ - Usa
assets/face.jpgsi existe - Salida: archivos PNG de 1920x1080
- Pautas de Marca: Consulta references/brand-guidelines.md para conocer la paleta de colores, composición y mejores prácticas de estilo
Parámetros de Miniatura
Requeridos
- idea (posicional): Tu concepto/idea de miniatura
Opciones de Referencia de Rostro
--face RUTA: Especifica una imagen de referencia de rostro (por defecto:assets/face.jpg)--no-face: No incluir ninguna referencia de rostro--face-swap: Post-procesamiento con Replicate para intercambiar el rostro real (requiere REPLICATE_API_TOKEN)
Estilo y Referencias
--style RUTA: Imagen de referencia de estilo: la IA iguala la disposición y la estética--ref RUTA: Imagen de referencia adicional (se puede usar varias veces)
Logo y Salida
--logo RUTA: Logo para superponer en la miniatura--logo-position [bottom-right|bottom-left|top-right|top-left]: Ubicación del logo (por defecto: bottom-right)-o, --output RUTA: Directorio o ruta de archivo de salida--variations N: Número de variaciones a generar (por defecto: 3)
Ejemplos de Miniaturas
Básico - 3 variaciones con configuración predeterminada:
uv run thumbnail.py "reacción de shock ante despidos masivos en Google"
Con referencia de estilo:
uv run thumbnail.py "mi nueva idea de video" --style ./miniatura-existente.jpg --face ./yo.jpg
Con intercambio de rostro para parecido exacto:
uv run thumbnail.py "emocionado por la nueva función de IA" --face ./yo.jpg --face-swap
Variación única para prueba rápida:
uv run thumbnail.py "idea de prueba rápida" --variations 1
Directorio de salida personalizado:
uv run thumbnail.py "mi concepto de video" -o ./carpeta-personalizada/
Sin rostro (solo escena):
uv run thumbnail.py "código dramático en pantalla con error" --no-face
Con superposición de logo:
uv run thumbnail.py "mi concepto de video" --logo ./assets/logo.png
Configuración de Referencia de Rostro
Para miniaturas consistentes:
-
Agrega tus fotos de rostro a la carpeta
assets/:video-processor/assets/ ├── face.jpg # Rostro predeterminado (cargado automáticamente) ├── face-excited.jpg # Expresiones alternativas ├── face-shocked.jpg └── logo.png # Logo del canal -
El script usa automáticamente
assets/face.jpgsi existe -
Sobrescribe con
--facepara diferentes expresiones -
Usa
--no-facepara omitir la referencia de rostro por completo
Referencias de Estilo
La bandera --style iguala la estética de miniaturas existentes:
- Disposición general y composición
- Esquemas de color y ambiente
- Estilo de texto (peso de fuente, colores, ubicación)
- Estilo de fondo y efectos
Perfecto para mantener una marca de canal consistente.
Pautas de Marca y Mejores Prácticas
IMPORTANTE: Antes de generar miniaturas, lee references/brand-guidelines.md para:
- Uso del color azul de la marca (como acento, no dominante)
- Requisitos de tono de piel natural (sin tinte azul en el rostro)
- Paletas de colores equilibradas (mezcla de colores vibrantes)
- Patrones de resaltado de texto (1-2 palabras clave en azul)
- Pautas de composición (diseño, flujo visual)
- Ejemplos probados de miniaturas exitosas anteriores
Estas pautas aseguran que las miniaturas mantengan la consistencia de la marca mientras evitan errores comunes como la sobresaturación o la iluminación no natural.
Intercambio de Rostro para Parecido Exacto
Los rostros generados por IA pueden no ser exactos. Usa --face-swap para post-procesamiento:
uv run thumbnail.py "mi idea de video" --face ./yo.jpg --face-swap
Cómo funciona:
- Genera la miniatura con IA (usando el rostro como referencia para la posición)
- Post-procesa con Replicate para intercambiar tu rostro real
Configuración:
- Obtén el token de API de Replicate en https://replicate.com/account/api-tokens
- Agrega a
.env:REPLICATE_API_TOKEN=r8_tu_token_aqui - Costo: ~$0.003 por intercambio de rostro (~370 intercambios por $1)
Especificaciones de Miniaturas
| Elemento | Valor |
|---|---|
| Resolución | 1920x1080 (1080p) |
| Relación de Aspecto | 16:9 |
| Formato | PNG (o JPG con --output .jpg) |
| Variaciones Predeterminadas | 3 |
| Modelo | Gemini 3 Pro (Nano Banana Pro) por defecto |
Notas Importantes sobre Miniaturas
- El modelo Gemini admite imágenes de referencia; Imagen no
- Costo: ~$0.13 por imagen con Gemini 3 Pro
- El intercambio de rostro agrega ~$0.003 por miniatura
- 3 miniaturas con intercambio de rostro: ~$0.40 en total
- Se requiere conexión a Internet
3. Generación de Imágenes para Publicaciones de LinkedIn
Comando Básico de Imagen para LinkedIn
Genera imágenes e infografías para publicaciones de LinkedIn potenciadas por IA:
cd video-processor
uv run linkedin-post.py "tu concepto de publicación aquí"
Comportamiento predeterminado:
- Genera 3 variaciones
- Guarda en:
./output/LinkedIn/[YYYY-MM-DD]/ - Salida: archivos PNG de 1200x1200 (formato cuadrado de LinkedIn)
- Optimizado para diseños de infografía (sin rostros, fondo blanco, diseño plano)
Parámetros de Imagen para LinkedIn
Requeridos
- idea (posicional): Tu concepto/idea de publicación de LinkedIn
Estilo y Referencias
--style RUTA: Imagen de referencia de estilo: la IA iguala la disposición y la estética--ref RUTA: Imagen de referencia adicional (se puede usar varias veces)
Logo y Salida
--logo RUTA: Logo para superponer en la imagen--logo-position [bottom-right|bottom-left|top-right|top-left]: Ubicación del logo (por defecto: bottom-right)-o, --output RUTA: Directorio o ruta de archivo de salida--variations N: Número de variaciones a generar (por defecto: 3)
Ejemplos de Imágenes para LinkedIn
Básico - 3 variaciones:
uv run linkedin-post.py "Pirámide de Validación de IA con 5 capas que muestran responsabilidades humanas vs agente"
Con referencia de estilo:
uv run linkedin-post.py "mi concepto de infografía" --style ./infografia-existente.jpg
Variación única para prueba:
uv run linkedin-post.py "prueba rápida" --variations 1
Directorio de salida personalizado:
uv run linkedin-post.py "mi concepto" -o ./carpeta-personalizada/
Con superposición de logo:
uv run linkedin-post.py "mi infografía" --logo ./assets/logo.png
Especificaciones de Imagen para LinkedIn
| Elemento | Valor |
|---|---|
| Resolución | 1200x1200 (cuadrado de LinkedIn) |
| Relación de Aspecto | 1:1 |
| Formato | PNG (o JPG con --output .jpg) |
| Variaciones Predeterminadas | 3 |
| Modelo | Gemini 3 Pro (Nano Banana Pro) por defecto |
| Estilo | Infografía profesional, sin rostros, diseño plano |
Notas Importantes sobre Imágenes para LinkedIn
- Optimizado para infografías de negocios profesionales
- Tema oscuro con estética moderna y elegante
- SIN rostros ni personas incluidas (estilo puro de diagrama/infografía)
- Tema de color azul con degradados
- Mayor densidad de información que las miniaturas de YouTube
- Costo: ~$0.13 por imagen con Gemini 3 Pro
- Se requiere conexión a Internet
4. Generación Genérica de Imágenes
Comando Básico de Imagen Genérica
Genera imágenes potenciadas por IA con dimensiones personalizadas para cualquier plataforma:
cd video-processor
uv run image-gen.py "tu concepto de imagen" --dimensions ANCHOxALTO
Características clave:
- Dimensiones personalizadas (parámetro requerido)
- Mínimo envoltorio de prompt (máxima flexibilidad)
- Soporta referencias de estilo
- Guarda en:
./output/Images/[YYYY-MM-DD]/ - Por defecto: 3 variaciones
Parámetros de Imagen Genérica
Requeridos
- idea (posicional): Tu concepto de imagen con detalles completos del prompt
--dimensions ANCHOxALTO: Dimensiones de la imagen (ej., 1080x1080, 1200x675)
Estilo y Referencias
--style RUTA: Imagen de referencia de estilo: la IA iguala la estética--ref RUTA: Imagen de referencia adicional (se puede usar varias veces)
Logo y Salida
--logo RUTA: Logo para superponer en la imagen--logo-position [bottom-right|bottom-left|top-right|top-left]: Ubicación del logo (por defecto: bottom-right)-o, --output RUTA: Directorio o ruta de archivo de salida--variations N: Número de variaciones a generar (por defecto: 3)
Ejemplos de Imágenes Genéricas
Publicación cuadrada de Instagram:
uv run image-gen.py "foto de producto minimalista sobre fondo blanco" --dimensions 1080x1080
Historia de Instagram:
uv run image-gen.py "diseño vertical de cita motivacional" --dimensions 1080x1920
Imagen de publicación de Twitter:
uv run image-gen.py "gráfico de anuncio tecnológico con tema azul" --dimensions 1200x675
Foto de portada de Facebook:
uv run image-gen.py "encabezado profesional de negocios" --dimensions 820x312
Con referencia de estilo:
uv run image-gen.py "mi concepto" --dimensions 1200x1200 --style ./referencia.jpg
Referencia de Dimensiones Comunes
| Plataforma | Tamaño | Relación de Aspecto | Comando |
|---|---|---|---|
| Miniatura de YouTube | 1920x1080 | 16:9 | Usa thumbnail.py en su lugar |
| Cuadrado de LinkedIn | 1200x1200 | 1:1 | Usa linkedin-post.py en su lugar |
| Cuadrado de Instagram | 1080x1080 | 1:1 | --dimensions 1080x1080 |
| Historia de Instagram | 1080x1920 | 9:16 | --dimensions 1080x1920 |
| Publicación de Twitter | 1200x675 | 16:9 | --dimensions 1200x675 |
| Publicación de Facebook | 1200x630 | 1.91:1 | --dimensions 1200x630 |
| Pin de Pinterest | 1000x1500 | 2:3 | --dimensions 1000x1500 |
Especificaciones de Imagen Genérica
| Elemento | Valor |
|---|---|
| Dimensiones | Personalizadas (requerido) |
| Formato | PNG (o JPG con --output .jpg) |
| Variaciones Predeterminadas | 3 |
| Modelo | Gemini 3 Pro (Nano Banana Pro) por defecto |
Notas Importantes sobre Imágenes Genéricas
- Proporciona siempre prompts descriptivos y completos
- Se requiere el parámetro
--dimensionsen todos los casos - Sin restricciones de estilo temático (máxima flexibilidad creativa)
- Costo: ~$0.13 por imagen con Gemini 3 Pro
- Se requiere conexión a Internet
Variables de Entorno
Crea un archivo .env en el directorio video-processor/ con las siguientes claves:
OPENAI_API_KEY=sk-tu_clave_aqui
GEMINI_API_KEY=tu_clave_gemini_aqui
REPLICATE_API_TOKEN=r8_tu_token_aqui # Opcional, solo para intercambio de rostro
Notas Generales
- Costo: La transcripción cuesta ~$0.006/min, cada imagen ~$0.13 (Gemini Pro)
- Límites: Los videos >20 min se dividen automáticamente
- Formato: Los clips de video deben nombrarse con prefijos numéricos (ej.,
1.mp4,2.mov) - Calidad: Usa siempre la bandera
--stylepara mantener la consistencia de la marca - Pruebas: Usa
--variations 1para pruebas rápidas antes de la generación completa