Communitygithub.com

Voiceover → Glass Reel

Convierte cualquier locución (y un guion opcional) en un reel documental 16:9 en After Effects con una sola solicitud: corta pausas y respiraciones, escribe la historia visual, busca todas las imágenes gratis (fotos de archivo de Wikimedia Commons, clips y retratos de Pixabay MCP, logotipos SVG mediante thesvg MCP, movimientos Ken-Burns con ffmpeg), construye la edición nativa en After Effects y renderiza un MP4 H.264 1080p. Estilo: documental de archivo oscuro, clips en marcos de vidrio redondeados flotantes con borde brillante, una rejilla de perspectiva en movimiento con palabras clave que cambian de color, subtítulos grandes, páginas de máquina de escribir / palabra gigante / tarjeta gráfica, destellos, SFX sintetizados. Úsalo cada vez que alguien dé una voz en off, nota de voz, narración o clip de pódcast y pida un reel, video, corto, explicativo o edición hecha a partir de eso.

¿Qué es Voiceover → Glass Reel?

Voiceover → Glass Reel es una habilidad para agentes de IA (compatible con Claude Code, Cursor y Codex) que automatiza por completo la creación de un reel documental de archivo en After Effects a partir de una locución y un guion opcional. El agente transcribe y procesa el audio en macOS, genera una historia visual con palabras clave y cortes sincronizados, busca y descarga todos los recursos visuales de forma gratuita (Pixabay, Wikimedia Commons y thesvg MCP), y construye la edición nativa en After Effects, incluyendo marcos de vidrio flotantes, rejilla de perspectiva, subtítulos, páginas de texto y efectos de sonido sintetizados. La habilidad se encarga de cada paso: preparación del proyecto, transcripción, escritura del guion visual, sourcing de activos, construcción del proyecto de After Effects y renderizado final a 1080p H.264. El resultado es un reel completamente editado, listo para compartir, sin necesidad de intervención manual más que la verificación final.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/SergeoDev01/voiceover-glass-reel/tree/HEAD

Preguntar en tu IA favorita

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

Documentación

Locución → reel de vidrio

Una solicitud de entrada, un MP4 terminado de salida. El usuario proporciona un archivo de locución (cualquier formato de audio o video, cualquier duración hasta ~3 min) y opcionalmente el texto del guion, una nota de tema o enlaces de referencia. Tú haces todo lo demás y te detienes solo:

  • una vez para descargas como logotipos. No hay presupuesto de créditos: todo se obtiene de forma gratuita (consulta references/higgsfield.md — recetas probadas de Pixabay / Wikimedia / thesvg). Informa qué se obtuvo y de dónde, pero el dinero nunca entra en la conversación a menos que el usuario lo solicite explícitamente para el apéndice de pago.

Trabaja en el idioma del usuario en el chat. Todo lo que aparece en pantalla está en el idioma de la locución.

Lo que crea

Convierte CUALQUIER locución (y un guion opcional) en un reel documental 16:9 en After Effects con una sola solicitud. Corta las pausas y respiraciones, escribe la historia visual, busca cada imagen de forma gratuita (fotos de archivo de Wikimedia Commons, clips y retratos de Pixabay MCP, logotipos SVG mediante el MCP thesvg, movimientos Ken-Burns de ffmpeg a partir de imágenes fijas) y construye la edición nativa en After Effects. El estilo: documental de archivo oscuro, cada clip en un marco de vidrio redondeado flotante con un borde brillante delgado y una suave entrada, una rejilla de perspectiva en movimiento con palabras clave que cambian de color en la palabra, subtítulos grandes hablados, páginas de máquina de escribir / palabra gigante / tarjeta gráfica, destellos y parpadeos negativos en los cortes, efectos de sonido sintetizados. Renderiza un MP4 H.264 1080p. Úsalo cada vez que alguien dé una locución, nota de voz, narración o clip de pódcast y pida un reel, video, corto, explicativo o edición hecha a partir de eso: "haz un video con mi locución", "convierte esta narración en un reel", "edición de marco de vidrio", "un clip de una locución", "haz un reel con mi grabación de voz", "corta un video para mi voz", "marcos de vidrio y una rejilla". Esto también aplica cuando no tienen ningún metraje.

Antes de empezar (verificar una vez por Mac; dile al usuario exactamente qué arreglar si algo falla)

  1. macOS 26 o más reciente (transcripción en el dispositivo) con After Effects 2024 o más reciente, abierto. En AE, activa Configuración → Scripting y Expresiones → Permitir que los scripts escriban archivos y accedan a la red.
  2. Herramientas de línea de comandos de Xcode (swiftc). Ejecuta scripts/build_tools.sh. Compila scripts/bin/{to_wav,transcribe,facebox,frames}. Si un script falla con "permiso denegado" (una habilidad cargada puede perder el bit ejecutable), ejecuta chmod +x scripts/*.sh en la carpeta de esta habilidad una vez.
  3. Obtención gratuita lista: las herramientas MCP pixabay y thesvg (search_pixabay_images, search_pixabay_videos, search_icons, list_variants, get_icon_url, get_icon) más curl y ffmpeg (ambos ya utilizados por el motor). Wikimedia Commons solo necesita internet
    • un User-Agent adecuado. Sin créditos, sin cuentas, sin saldos que verificar.
  4. La primera ejecución de transcribe puede solicitar permiso de Reconocimiento de Voz. También puede descargar el modelo en el dispositivo una vez.
  5. Si hay otro proyecto de AE abierto con cambios sin guardar, build.sh se negará. Pídele al usuario que lo guarde. Nunca descartes su trabajo. El registro de compilación imprime PREVIOUS_PROJECT <ruta> cuando cerró un proyecto guardado de ellos. Después del renderizado final, vuelve a abrirlo: escribe un jsx de una línea app.open(new File("<ruta>")); y ejecútalo con scripts/ae_run.sh.

S = la carpeta de esta habilidad. PY = /usr/bin/python3 (o cualquier Python 3.9+, solo biblioteca estándar).

Proceso

1. Carpeta del proyecto y voz

  • Crea <proj> = una nueva carpeta junto a la locución llamada <nombre_locución>_reel.
  • Ejecuta PY S/scripts/reel.py prep <locución> <proy>. Convierte el audio, lo transcribe en el Mac y elimina cada pausa y respiración. Los resultados son work/voice_cut.wav y work/words.json (índice de palabra → tiempo del programa).
  • Luego ejecuta PY S/scripts/reel.py words <proy> y lee toda la transcripción indexada.
  • Si el usuario proporcionó un guion, compáralo con la transcripción. Anota los nombres malinterpretados para spell (por ejemplo "28": "Grok").

2. Historia (lee references/story.md, luego escribe <proy>/story.json)

  1. Decide el mundo que se ajuste al guion: época, lugar, un elenco recurrente de 2–5 personajes, 3–6 ubicaciones, B&N o color.
    • Predeterminado: un documental de archivo en blanco y negro de los años 50–60, donde los temas abstractos se convierten en personas y lugares.
    • Elige un aspecto para el presentador. Cuando el usuario quiera aparecer él mismo, usa su foto como referencia del presentador.
  2. Corta la transcripción en tomas. Cada toma comienza en un índice de palabra.
    • presentador (hablando a la cámara en la TV): 3–6 tomas, 2–6 s cada una. Úsalas en el gancho, los giros y la llamada a la acción. Juntas ocupan aproximadamente el 15–20 % de la duración.
    • clip (metraje generado en el marco de vidrio): la mayoría de las tomas, 1.5–3 s cada una.
    • tipo (página de máquina de escribir): la pregunta inicial o títulos de sección, como máximo 6 palabras.
    • gigante (una palabra enorme con una etiqueta roja y una línea secundaria serif): un concepto nombrado.
    • tarjetas (2–4 tarjetas gráficas con insignias de logotipo, un nombre en cada palabra): cuando la voz enumera personas, productos o marcas. Los logotipos aparecen solo cuando se mencionan.
    • lista: cuando la voz enumera 2–4 puntos, marca ese rango de palabras. Sus palabras clave cambian al color de acento en la palabra.
    • claves: como máximo una por oración.
    • golpes: invertir en 3–6 cortes dramáticos, estroboscópico en como máximo 2 momentos de "se volvió más loco", quemar en como máximo 2 picos.
    • Nunca muestres el mismo momento de clip dos veces.
  3. Escribe la lista de obtención a partir de las tomas:
    • cada clip de la historia son 8–12 s de metraje de archivo (o un paneo Ken-Burns sobre una imagen fija obtenida), cubriendo tomas consecutivas, por lo que un clip alimenta varias tomas a través de diferentes tiempos de entrada;
    • retratos de tarjetas, ubicaciones y cualquier material del presentador, todo obtenido de forma gratuita;
    • una pista musical opcional (o ninguna: la compilación la omite cuando music está ausente).

3. Obtener los activos (lee references/higgsfield.md)

  1. Obtén en este orden: clips de la historia → retratos de tarjetas → ubicaciones → (si se mantiene) placa de TV → (si se mantiene) clips del presentador. Verifica cada descarga según las recetas probadas (HEAD content-type + content-length, curl -A UA + reintentos, SHA-1 cuando Commons lo proporcione). Registra archivo → URL de origen → licencia → autor en work/SOURCES.md.
  2. Clips de la historia: Pixabay search_pixabay_videos (video_type: "film", orientación coincidente, duración 8–15 s) o Commons filetype:video (imageinfo → descarga con la receta de curl → transcodifica Talks .ogv/.webm a MP4). Las imágenes fijas se convierten en Ken-Burns .mp4 con la receta de ffmpeg.
  3. Clips del presentador (solo si el usuario aparece en cámara él mismo):
    • PY S/scripts/reel.py chunks <proy> escribe un fragmento de audio por toma de presentador en work/host/host_NN.wav;
    • compón el audio del fragmento en su clip de webcam y guárdalo como assets/host/host_NN.mp4 (ffmpeg -map 0:v:0 -map 1:a:0 -shortest) - reel.py align luego empareja las palabras exactamente;
    • PY S/scripts/reel.py align <proy> mide el desplazamiento de cada clip con respecto a las palabras. Sin metraje propio → reestructura estos compases de presentador como páginas tipo / gigante / tarjetas en su lugar.
  4. Si se usa una placa de TV, ejecuta PY S/scripts/reel.py screen <proy>/assets/tv_plate.png <proy>. Encuentra la pantalla verde. Si no se encuentra ninguna, repíntala (ffmpeg drawbox, §2 de la referencia) o cambia las tomas de presentador al modo completo - no se necesita placa.
  5. Ejecuta PY S/scripts/reel.py sfx <proy> para sintetizar los efectos de sonido (sin licencias necesarias).
  6. Música: omite music (predeterminado), usa la pista del usuario o convierte un archivo de audio de Commons a MP3.

4. Compilar y verificar

  1. Ejecuta PY S/scripts/reel.py plan <proy>. Escribe work/plan.json e imprime verificaciones. Corrige cada ERROR en story.json. Toma en serio los AVISOS: clips repetidos, sincronización de labios del presentador.
  2. Ejecuta S/scripts/build.sh <proy>. Compila <proy>/reel.aep (comp REEL) en aproximadamente 1 min para un reel de 70 s. Lee el registro: fuentes utilizadas, advertencias.
  3. Ejecuta S/scripts/render.sh <proy> --half para una verificación rápida (~2 min). Luego verifica los fotogramas:
    • S/scripts/bin/frames <proy>/out/reel_half.mp4 <proy>/work/check.jpg 4 <el segundo medio de ~16 tomas>;
    • mira check.jpg: subtítulos legibles y no sobre caras, labios del presentador moviéndose dentro de la TV, marcos de vidrio presentes, sin espacios negros, páginas no vacías. Corrige en story.json, luego vuelve a ejecutar plan, build y la verificación.
  4. Final: ejecuta S/scripts/render.sh <proy>. Escribe <proy>/out/reel_1080.mp4 (1920×1080, 25 fps, aproximadamente 40 Mbps, con sonido).
  5. Envía el MP4. Informa:
    • su duración;
    • lo que no pudiste verificar;
    • el lugar para ajustar a mano (reel.aep: cada toma es su propia composición en 02_SHOTS / 03_PAGES, los subtítulos están en CAPTIONS).

Reglas

  • Derechos:
    • Obtén todo de forma gratuita: Pixabay MCP, Wikimedia Commons (verifica la licencia de cada archivo), thesvg MCP para logotipos, más síntesis local (ffmpeg Ken-Burns, reel.py sfx). Sin servicio de pago por defecto; el apéndice de Higgsfield es solo para cuando el usuario lo solicite explícitamente.
    • Nunca rasques películas, series, anuncios u otras publicaciones sociales de personas.
    • Logotipos solo del MCP thesvg o de Wikimedia Commons, y solo después de la aprobación del usuario.
    • La música es opcional (omitida, pista propia del usuario o archivo de Commons convertido a MP3).
    • Los efectos de sonido son sintetizados por reel.py sfx.
  • La voz es el reloj.
    • Cada corte aterriza en una palabra, un fotograma antes de ella. reel.py hace esto.
    • Nunca cambies la velocidad ni las palabras.
    • Los subtítulos muestran exactamente lo que se dice, aparte de las correcciones spell de nombres malinterpretados.
  • Personas:
    • ropa modesta y apropiada para la época;
    • adultos realistas;
    • sin figuras públicas reales como personajes;
    • los modelos y empresas de IA se muestran como personajes inventados y se nombran solo mediante subtítulos y logotipos.
  • Las reejecuciones son económicas. plan y build son deterministas y reconstruyen reel.aep desde cero. Cambia story.json en lugar de editar reel.aep a mano, a menos que el usuario solicite ediciones manuales. Una vez que editen reel.aep ellos mismos, nunca lo reconstruyas sin preguntar.
  • AE ejecuta un script a la vez.
    • Usa solo scripts/ae_run.sh, build.sh y render.sh.
    • Salida 4 significa que AE todavía está ocupado: espera, nunca reenvíes.
    • Salida 6 significa que AE no inició el script: ¿hay un cuadro de diálogo abierto?

Archivos

rutaqué
scripts/reel.pyprep / words / chunks / align / screen / sfx / plan (solo biblioteca estándar)
scripts/build.sh, scripts/ae/build_reel.jsx, scripts/ae/reel_lib.jsxla compilación de After Effects
scripts/render.shaerender a H.264 (--half para verificaciones)
scripts/ae_run.shenvía un script al AE en ejecución y espera
scripts/tools/*.swift → scripts/bin/conversión de audio, transcripción en el dispositivo, cuadros de cara, hojas de fotogramas
references/story.mdformato de story.json, reglas de tomas, un ejemplo completo
references/higgsfield.mdmanual de obtención gratuita: recetas probadas de recuperación y verificación de Pixabay / Wikimedia / thesvg, mapeo por activo, apéndice de generación paga
references/look.mdqué dibuja la compilación (tamaños, tiempos, colores) y cómo ajustarlo
references/troubleshooting.mderrores y soluciones
references/example_story.jsonel story.json de un reel de 70 s terminado (la prueba EXPERIMENT)
PROMPT.mdcómo instalar la habilidad y el único mensaje que enviar

Skills relacionados