Communitygithub.com

小Lin说讲解包装

Conjunto de herramientas para empaquetar clips de entrevista en pantalla (A-roll) en vídeos educativos de estilo Xiao Lin Shuo. Incluye biblioteca de componentes de Remotion, especificaciones de recuperación de datos, API de storyboard, renderizado por fragmentos, mezcla de audio y auditoría fotograma a fotograma.

¿Qué es 小Lin说讲解包装?

Este skill especializa a un agente de IA (Claude Code, Cursor, Codex) en empaquetar vídeos de entrevista en pantalla en estilo explicativo-económico/financiero de 小Lin说 (Xiao Lin Shuo). Proporciona una biblioteca completa de componentes de diseño en Remotion (tarjetas, gráficos, documentos resaltados, calculadoras, etc.), guías de recuperación de datos con fuentes y licencias, y una API de storyboard que sincroniza escenas con palabras clave del diálogo. Soporta renderizado por fragmentos, mezcla de voz, música y efectos de sonido, y una auditoría final fotograma a fotograma para garantizar la calidad visual y de fuentes. Está diseñado para quien quiera empaquetar clips de entrevista existentes en el popular formato de vídeos educativos de Xiao Lin Shuo, o recrear y mejorar la narrativa visual de sus vídeos 'Entiende X en un minuto'. El flujo de trabajo incluye revisión del estilo (style bible), investigación de datos, escritura de storyboard, renderizado clave fotograma, mezcla de audio y auditoría final. Incluye advertencias sobre derechos de autor, licencias de Remotion y fuentes, y limitaciones técnicas (p. ej., Chrome puede colgarse con texto degradado de más de 600 px). El skill se ejecuta en macOS (Apple Silicon) y requiere Node ≥18, ffmpeg, python3 con numpy/Pillow, y la fuente YouShe.tti descargable aparte.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/howoneai/xiaolin-explainer-packaging/tree/main/xiaolin-explainer-packaging

Preguntar en tu IA favorita

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

Documentación

Empaquetado estilo 小Lin说 (Xiao Lin Shuo)

Empaqueta un conjunto de clips de entrevista en pantalla (A-roll) con su diálogo en un vídeo explicativo al estilo de Xiao Lin Shuo. Los clips de entrevista se generan o graban con otras herramientas. Este skill se encarga de buscar los datos necesarios para el empaquetado, así como de crear las explicaciones visuales, subtítulos, transiciones y sonido.

Si existe design-aesthetic-standard, las decisiones creativas visuales y de sonido también deben seguirlo. Si existe video-generation, la generación y edición de los clips de entrevista se realiza allí.

Documentos de referencia (leer según sea necesario)

  • references/style-bible.md: Su lenguaje gráfico, 6 reglas estrictas, paleta de colores, tipografía, imagen dentro de imagen, estadísticas de transiciones, niveles de sonido. Debe leerse antes de planificar escenas.
  • references/research.md: Qué datos buscar para cada diseño, jerarquía de fuentes, dónde buscar, derechos de imagen. Leer al planificar escenas.
  • references/layouts.md: Parámetros de cada componente de diseño, ejemplos de uso y trampas. Leer al escribir el storyboard.
  • references/storyboard-api.md: Formatos de timeline.json y project.json, API de storyboard, temporización por palabras clave, comandos de revisión y renderizado. Leer al configurar el proyecto por primera vez.

Entorno

  • Node ≥ 18, ffmpeg, python3 (con numpy y Pillow). Se necesita conexión a Internet para npm install y el primer renderizado (Remotion descargará Chrome).
  • Solo se ha probado en macOS (Apple Silicon). En otros sistemas se usará el renderizado por software swangle de forma predeterminada; se puede cambiar con la variable de entorno REMOTION_GL.
  • Fuentes: La plantilla incluye 6 fuentes con licencia SIL OFL (ver templates/engine/public/fonts/LICENSES.txt). La fuente YouShe (título en negrita) (YouShe.ttf) puede no estar incluida. new_project.sh buscará en $YOUSHE_TTF y en directorios de fuentes comunes; si no la encuentra, pedirá al usuario que la descargue desde https://www.uisdc.com/uisdc-first-free-font y la guarde como public/fonts/YouShe.ttf. Si falta esta fuente, los títulos y subtítulos usarán la variante más gruesa (900) de fuente Noto Sans SC, sin inclinación, y el estilo se verá notablemente reducido.
  • Licencia de Remotion: Personas individuales, empresas con hasta 3 empleados y organizaciones sin fines de lucro pueden usar Remotion de forma gratuita, incluido uso comercial. Empresas con 4 o más empleados deben adquirir una licencia corporativa (https://www.remotion.pro/license).

Flujo de trabajo

1. Preparar entrada

  • Clips de entrevista: Un mp4 de 1920×1080 por cada línea de diálogo, colocado en public/clips/<id>.mp4.
  • Diálogo: Cada línea tiene un texto de lectura say (escritura china) y un texto de subtítulo sub.
  • Archivo de hechos: Copia de templates/facts_template.md. Escribe primero los hechos y fuentes ya existentes; los que falten se buscarán en el paso 4.
  • Opcional: Imágenes reales o generadas por IA (public/broll/), fotos (public/photos/), música (public/music/), nuevos iconos (public/icons/).

2. Configurar proyecto

<skill>/scripts/new_project.sh <directorio_del_proyecto>          # con --demo genera 4 clips falsos y un storyboard de ejemplo para pruebas de humo

Luego escribe timeline.json. Transcribe cada clip de entrevista, determina tin/tout, recorta el silencio al inicio y final; los errores de dicción intermedios se escriben en cuts. Modifica brand y music en project.json.

3. Planificar escenas (primero tabla, luego código)

Lee style-bible.md y research.md, luego elabora una tabla: nombre de escena | qué líneas cubre | diseño | fondo oscuro o blanco | modo de imagen dentro de imagen | datos necesarios. Verifica estos 5 puntos:

  • Una escena cubre de 2 a 8 líneas, no una página por línea.
  • Cada escena puede indicar "sujeto recortado" o "sujeto ocupa más del 60 % del encuadre" (R1).
  • Por cada 2–3 escenas de fondo oscuro hay 1 escena de fondo blanco (R2).
  • Donde se cita texto original, se usa docpage, y el texto original es una cita literal verificable.
  • Deja los ganchos de apertura, frases clave, puntos de inflexión y cierre para la entrevista a pantalla completa, sin cubrir todo con imágenes explicativas.

4. Buscar datos

Busca cada elemento de la columna "datos necesarios" de la tabla de escenas según el método de research.md. Cada resultado se escribe en el archivo de hechos, con número, texto original, enlace de fuente y fecha. Usa scripts/commons_photo.py para buscar y descargar fotos.

Después de buscar, revisa la tabla de escenas: si no se encuentra el texto original literal, no uses docpage; si no se pueden reunir datos con el mismo criterio, no uses paper. Si los números en el diálogo no coinciden con el archivo de hechos, primero cambia el diálogo, luego genera o edita los clips de entrevista.

5. Escribir storyboard

Copia el estilo de templates/scenes_example.py. Cada escena debe:

  • Alinear la entrada de elementos con palabras clave: S.k('palabra clave', -0.15).
  • El elemento actual se ilumina, los demás se atenúan (focus / hl / lit). La cámara sigue al elemento actual (sc.cam / look).
  • Registrar al menos 1 fotograma clave de revisión con KF.append((etiqueta, momento)).

Ejecuta python3 story_core.py timeline.json scenes.py, confirma gaps/overlaps [].

6. Revisión de fotogramas clave (al menos 2 rondas)

python3 -c "import json;print(' '.join(str(f) for _,f in json.load(open('keyframes.json'))))" | xargs node render.mjs stills stills/k1
python3 <skill>/scripts/sheet.py stills/k1 keyframes.json 6

Revisa cada imagen de la composición, modifica según la lista de verificación, y vuelve a renderizar los fotogramas modificados. Si existe su vídeo original, captura fotogramas del mismo diseño y compáralos lado a lado.

7. Renderizado completo, mezcla, síntesis, auditoría

<skill>/scripts/render_chunks.sh video.mp4
python3 <skill>/scripts/mix_audio.py timeline.json mix_raw.wav
<skill>/scripts/finalize.sh video.mp4 mix_raw.wav final.mp4
python3 <skill>/scripts/audit.py video.mp4 72        # compara fotograma a fotograma del vídeo con los keyframes; flagged debe ser 0

Versión para móvil: ffmpeg -i final.mp4 -c:v libx264 -crf 23 -preset medium -pix_fmt yuv420p -c:a aac -b:a 128k -movflags +faststart final_phone.mp4.

Lista de verificación de revisión

Cada fotograma clave debe verificar:

  1. El sujeto es lo suficientemente grande o está recortado por el borde. No hay grandes espacios vacíos alrededor.
  2. El elemento del que se está hablando es el más brillante, y la cámara está cerca de él.
  3. Como máximo 2 etiquetas en un fotograma.
  4. Nada está oculto por subtítulos (pantalla y 905–960), imagen dentro de imagen, logotipo del canal o marcas de IA.
  5. No hay caracteres con cuadrados (glifos faltantes), palabras que se hayan roto en líneas verticales, ni texto que sobresalga de las tarjetas.
  6. Números, unidades y texto original coinciden con el archivo de hechos; existe la línea de fuente; las fotos con licencia CC BY tienen atribución.
  7. Las escenas de fondo blanco y fondo oscuro se alternan.

Trampas conocidas

  • Cuando la palabra clave está al inicio de una línea, S.k(palabra, -0.3) puede ser anterior al inicio del clip. Usa max(S.t0, …) para limitarlo.
  • El ancho de columna de tokens de formula6 es igual a iw. iw debe ser ≥ número de caracteres × fs.
  • x de pantalla = (x del mundo − x de cámara) × s + 960. piprect ocupa x de pantalla 110–560; el sujeto debe colocarse en ≥ 600. Al cambiar la posición de la cámara, la posición del sujeto en pantalla también cambia.
  • El resultado unitario de ui es "yuan/mes" por defecto; usa u= para cambiarlo.
  • La y de pantalla de la base de paper debe ser ≤ 900.
  • Las banderas de ent6 solo son cl cn de fr jp us.
  • Si la ruta de una imagen no existe, el renderizado de ese fotograma falla (FAIL ... Error loading image). Primero verifica con ls public/<ruta>.
  • Que los fotogramas clave estén bien no significa que el vídeo lo esté. Después del renderizado completo, debes ejecutar audit.py.
  • El texto degradado tridimensional de más de 600 px puede bloquear Chrome. No elimines el límite de capas ni de desenfoque de GText.

Límites de uso

  • Esta es una herramienta de réplica de estilo. El vídeo final debe conservar la marca brand.label "Generado por IA · No es la persona real", sin eliminarla.
  • brand.logo está vacío por defecto. Rellénalo con el propio logotipo del usuario; no uses el logotipo de "Xiao Lin Shuo" ni de otros creadores reales para publicar públicamente.
  • No uses el retrato o la voz de creadores reales para generar clips de entrevista y luego publicarlos públicamente.
  • No publiques el vídeo final como si fuera obra del creador original, ni lo uses para engañar a la audiencia.
  • Todos los datos, textos originales y cláusulas reglamentarias mostrados deben poder rastrearse hasta su fuente.

Skills relacionados