Communitygithub.com

CrissAlvarezH/reel-studio

Cómo se hace un video explicativo narrado en un espacio de trabajo de Reel Studio, en cualquier estilo visual (guion, imágenes, voz, construcción, tablero, sonido, prueba sin sonido, renderizado), siguiendo la configuración del creador desde el estudio (perfil, formato, voz, fuentes de imágenes). Úsalo para videos nuevos o revisados en la carpeta videos/ de un proyecto (projects/<id>/videos/). El estilo del video agrega su propia habilidad (styles/<id>/SKILL.md) para la apariencia y el kit de Remotion; LESSONS.md contiene lo que videos anteriores enseñaron.

¿Qué es reel-studio?

Esta habilidad define el proceso completo para crear un video explicativo narrado en Reel Studio, desde la configuración inicial hasta la publicación. Es compatible con cualquier estilo visual (animado, con grabación del creador, etc.) y se integra con plataformas como Remotion para la generación de video. El flujo comienza con la creación de un nuevo video, seguido del guion (usando la habilidad video-script), la búsqueda de imágenes, la generación de voz (con TTS), la construcción visual, la revisión del tablero, el diseño sonoro, una prueba sin sonido y finalmente el renderizado. Cada paso está documentado en detalle, y las lecciones de proyectos anteriores se almacenan en LESSONS.md para mejorar iterativamente. La habilidad respeta la configuración del estudio (perfil, formato, voz, fuentes de imágenes) y las instrucciones específicas del estilo, asegurando que el video se adapte a las preferencias del creador.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/CrissAlvarezH/ai-reel-gen-app/tree/HEAD/.claude/skills/reel-studio

Preguntar en tu IA favorita

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

Documentación

Reel Studio — cómo se hace un video

El proceso es el mismo para todos los estilos. El aspecto y sonido de un video provienen de su estilo; para quién es, su formato, la voz y de dónde pueden venir las imágenes provienen de la configuración del estudio. La habilidad genérica animated-video contiene el método más amplio (lluvia de ideas, tablero, prueba sin sonido, revisión); donde difiera, esta habilidad y la del estilo tienen prioridad. Pide con una recomendación para que "sí" sea una respuesta completa. Idear ideas y guardarlas en el tablero del proyecto es responsabilidad de la habilidad content-ideas, antes de que comience este proceso.

El espacio de trabajo

  • projects/<id>/ — un proyecto: un canal para el que el creador hace videos (el selector de proyectos del estudio; el prompt indica cuál está abierto). Su config/ contiene su configuración (Ajustes): profile.json, voice.json y account.json (su Instagram, Mi cuenta); account/ lo que se descargó de esa cuenta. No toques la carpeta de otro proyecto a menos que se te pida.
  • projects/<id>/videos/<slug>/ — un video: un proyecto de Remotion copiado de la plantilla de su estilo. title.txt (su nombre en el estudio), style.txt (un id de estilo), audio/vo.txt (la narración, exactamente como va a la voz), audio/beats.json (la estructura del guion), src/format.json (tamaño, fps, sonoridad), CREDITS.md, caption.md, out/ (renderizados, tableros; no versionado).
  • formats/<id>/format.json — un formato: el tipo de video (toda la animación sobre una voz generada o sobre la voz grabada del creador; el creador hablando a cámara con animaciones…), qué hay en pantalla y cómo se edita. Un video nombra su formato en format.txt (ninguno: el predeterminado, animado). skill apunta a sus propias instrucciones, overlay a archivos que agrega sobre la plantilla del estilo; "footage": true significa que el video comienza desde su grabación en footage/ ("voiceOnly": true: solo se usa su sonido — audios).
  • styles/<id>/style.json — un estilo: paleta y lo que significa cada color, fuentes, apariencia, movimiento, imágenes, qué evitar. skill apunta a sus propias instrucciones, template al proyecto de Remotion que los nuevos videos copian.
  • config/ (en la raíz) — configuración compartida por todos los proyectos: images.json (fuentes de imágenes), social.json (scraper).
  • tools/ — scripts compartidos. LESSONS.md — lecciones de videos anteriores.
  • projects/<id>/inspiration/<account>/ — reels de otras cuentas estudiados en la página Inspiración del proyecto: account.json (analysis.text: qué funciona para esa cuenta) y por reel reel.json (métricas, descripción), transcript.json, analysis.json (gancho, estructura, visuales, CTA, qué tomar), hook.jpg (primeros 3 s) y sheet_NN.jpg (1 fotograma/s). Úsalos para ángulos y ganchos cuando se te pida; adáptalos al perfil del creador, nunca copies un guion.

La configuración proviene del estudio

Reel Studio pone el perfil (idioma, plataforma, audiencia, duración, reglas de descripción), el formato del video, la voz y las fuentes de imágenes en tu prompt en cada turno. Tienen prioridad sobre esta habilidad y la del estilo. Nunca uses un id de voz o configuración, un tamaño, una frecuencia de fotogramas o un objetivo de sonoridad fijos.

Las claves de API viven en el .env del espacio de trabajo (configuradas en Ajustes, junto a lo que cada una es: Voz, Extracción de datos). Las herramientas las leen; nunca imprimas una clave ni la pidas en el chat — si falta una, pide al creador que la agregue en Ajustes.

Python: las herramientas que solo usan la biblioteca estándar se ejecutan con python3 (python en Windows): tts.py, el_words.py, standin_words.py, commons.py, openverse.py, pexels.py, pixabay.py, unsplash.py, generate_image.py. Las herramientas que necesitan paquetes se ejecutan con el venv del espacio de trabajo, ../../../../.venv/bin/python (Windows: ../../../../.venv/Scripts/python.exe): cutout.py, audio/mix.py y sheet.py (snap.sh lo usa, o ffmpeg cuando no hay venv). Los estilos que hacen recortes necesitan el venv (Ajustes → Requisitos lo instala). Las rutas a continuación son desde la carpeta del video.

Antes de empezar

Lee el formato del video: formats/<id de format.txt>/format.json y, si tiene una, su habilidad — dice cómo se hace este tipo de video y tiene prioridad sobre los pasos siguientes donde difieran (por ejemplo, con su grabación no hay guion que escribir ni voz que generar: la edición proporciona ambos). Lee el estilo del video: styles/<id de style.txt>/style.json y, si tiene una, su habilidad. El formato nunca decide colores, tipografía o bordes: eso es del estilo. Lee LESSONS.md (la parte general y la del estilo). Un estilo sin habilidad ni plantilla se construye sobre la plantilla del estilo predeterminado (template/), con el aspecto cambiado a su style.json; dilo cuando empieces.

Pasos

  1. Nuevo video — el estudio lo crea desde el primer mensaje (carpeta, título, estilo, formato, tamaño). Desde un terminal o la conversación general: scripts/new-video.sh <slug> [style] [format].
  2. Guion — con la habilidad video-script (gancho, desarrollo de la respuesta, ritmo, lista de verificación), comenzando desde las notas de la idea si proviene del tablero. Plataforma, idioma, audiencia y duración del perfil; palabras ≈ el ritmo medido de la voz × los segundos objetivo. Objetivo: alcance, a menos que se indique lo contrario. Escribe los números con letra en audio/vo.txt ("mil cuarenta y dos") y conviértelos de vuelta a dígitos en src/captions.ts DISPLAY. Obtén aprobación. Escribe audio/vo.txt y audio/beats.json.
  3. Imágenes — haz una lluvia de ideas de una imagen por beat con un agente nuevo (animated-video → encontrar las imágenes). Prefiere un motivo físico recurrente que represente el sistema a lo largo del video (un archivador de fichas = el servidor, cajones = registros). Las imágenes mantienen abierta la pregunta del guion: el primer fotograma la plantea, y ninguna imagen o título en pantalla muestra la respuesta antes de que la narración llegue allí. Obtén la aprobación del concepto.
  4. Voz — python3 ../../../../tools/tts.py audio/vo.txt audio/vo.mp3, luego ffmpeg -y -i audio/vo.mp3 -ar 48000 public/vo.wav y python3 ../../../../tools/el_words.py audio/vo.alignment.json public/vo.wav (→ src/words.json, src/vo_env.json). Antes de que exista la voz: python3 ../../../../tools/standin_words.py audio/vo.txt src/words.json (temporizado al ritmo de la voz; llámalo un marcador de posición). Haz una muestra corta primero cuando algo sobre la voz cambie. Usa el audio tal como se devuelve (no recortes pausas a menos que se te pida). Cada generación cuesta caracteres: no regeneres sin una razón.
  5. Imágenes — busca libremente en la web usando las herramientas de búsqueda y navegación disponibles; cualquier sitio puede ser una fuente. El prompt lista integraciones API opcionales, no una lista blanca ni un orden obligatorio. Usa esas API solo cuando estén habilitadas y configuradas; la búsqueda web libre no necesita configuración de fuentes. Las descargas van a assets/src/ (no versionado); registra cada imagen en CREDITS.md (título, autor, licencia cuando se conozca, enlace original; nunca inventes una licencia). Cuando el stock no sirva, pide una foto de teléfono del gesto exacto (fondo simple, buena luz). Cómo se tratan las imágenes es responsabilidad del estilo.
  6. Construcción — actúa en src/lib.ts ACTS (corte ~0.08 s antes de la primera palabra de cada acto), subtítulos como unidades de sentido en src/captions.ts (verificados palabra por palabra contra la transcripción), una escena por acto en src/film/scenes.tsx. Cada tiempo proviene de una cue (cue('frase'), at('frase')), por lo que una nueva voz re-temporiza el video. Tamaños y fotogramas de src/lib.ts (W, H, FPS, f()), nunca números literales. Los componentes son del estilo.
  7. Tablero — ./snap.sh out/board <sec> … renderiza fotogramas fijos y sheet.png. Muestra un fotograma clave por beat; obtén aprobación. Pasa los tiempos literalmente (en zsh una lista separada por espacios en una variable no se divide).
  8. Sonido — la hoja de cues en audio/mix.py, con tiempos de las mismas cues que usan las escenas; ../../../../.venv/bin/python audio/mix.py → public/mix.wav; establece audio: true en src/Root.tsx. Qué sonidos: los del estilo. Di al entregar qué sonidos son sintéticos.
  9. Prueba sin sonido — antes del primer corte completo: ffmpeg -i out/<name>.mp4 -vf "fps=2,scale=270:-1,tile=8x5" out/mute/sheet_%02d.png y da solo esas hojas a un agente nuevo (ignora subtítulos; vuelve a contar; lista confusiones y rupturas). Corrige, vuelve a revisar fotogramas fijos.
  10. Renderizado — en macOS y Linux, primero elimina los renderizadores huérfanos: ps -A -o pid=,ppid=,command= | awk '$2==1 && /chrome-headless-shell/ {print $1}' | xargs kill. Luego CONCURRENCY=3 ./render.sh <name> → out/<name>.mp4, normalizado a la sonoridad del formato. Verifica duración, sonoridad, primer y último fotograma. Escribe caption.md con las reglas de descripción del perfil y los créditos; su apertura plantea la pregunta del gancho en lugar de responderla. Si el video o la descripción pide a la gente comentar una palabra para recibir algo, escribe automatizacion.json (Reel Studio → Instrucciones automatización) con lo que se pega en ManyChat o InstantDM, como cadenas: keyword (la palabra exacta), reply (la respuesta pública al comentario), dm (el mensaje directo) y link. Cada uno se copia tal cual, así que no incluyas notas dentro; deja vacío lo que falte y nunca inventes un enlace. Reporta la ruta, problemas abiertos, verificaciones omitidas, qué es sintético o inventado, y los créditos.

Después de un video

Los proyectos, videos, preferencias, estilos personalizados y lecciones personales del cliente permanecen locales y son ignorados por el repositorio de la aplicación. No los confirmes ni los subas allí, incluso después de un renderizado; nunca fuerces la adición de datos ignorados. Un repositorio separado para contenido del cliente requiere la solicitud explícita del creador.

Agrega lo que costó una revisión a LESSONS.md, una línea cada uno con la razón, bajo la parte general o la del estilo.

Cuando lleguen los números del video publicado, léelos con video-script → Revisión. Pasar rápidamente de la idea a la publicación importa, porque muchos videos fracasarán y cada uno enseña algo, así que una nueva versión cambia lo mínimo posible: conserva lo que fue aprobado, cambia solo lo que se está probando (un nuevo gancho, un corte donde la gente se fue), y regenera la voz solo para la narración que cambió. No agregues pulido que nadie pidió.

Individual skills in this repo

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

CrissAlvarezH/animated-video

Make animated videos in code with Remotion (React, SVG, three.js): explainers, character stories, motion graphics, kinetic typography, paper collage and animated infographics, in 2D or 3D, from a script or voiceover, in any aspect ratio. Use when asked to animate a script, make an animated video or Reel, or motion graphics. Not for editing camera footage (video-edit) or AI-generated clips (higgsfield-*).

CrissAlvarezH/new-style

Create a new visual style for the creator's videos in a Reel Studio workspace (styles/<id>/style.json): interview him for its name, feel, colours and what each one means, fonts, motion, where pictures come from, reference links and images, then write the style so it shows in Estilos and new videos can use it. Use when he asks for a new style or presses "Nuevo estilo" on the Estilos page.

CrissAlvarezH/persona-hablando

The "Persona hablando + animaciones" format of a Reel Studio video — the creator talks to camera in his own recording; you transcribe it, agree the cuts with him (pauses, flubs, retakes), cut it, and lay the video's style animations over or between his shots. Use for any video whose format.txt says persona-hablando.

CrissAlvarezH/video-script

Write short-form video scripts that hold viewers, using the creator's own video analytics. Use when choosing the hook of a chosen idea, writing or tightening a script before filming (talking-head or narrated explainer), or turning a posted video's insights into lessons. Coming up with ideas is content-ideas'.

Skills relacionados