¿Qué hace yamlreel-video-skills?
Escribe una especificación YAML, renderízala localmente con yamlreel, revisa la hoja de contactos y entrega el video. <skill> a continuación significa el directorio donde se encuentra este archivo.
Flujo de trabajo
- Configuración. Ejecuta
python3 <skill>/scripts/check_setup.py(también verifica la versión y las características de yamlreel). Si falla, muestra al usuario las correcciones impresas. Ejecuta--installsolo después de que el usuario acepte. Nunca instales fuentes o paquetes del sistema por tu cuenta. - Aclara en UN mensaje, ofreciendo valores predeterminados: tema, audiencia, formato (predeterminado vertical), duración (predeterminado 30 s), tema (
midnight|sumi|washi), voz (predeterminado sin voz). Omite cualquier cosa que el usuario ya haya dicho. - Guion primero. Escribe
videos/<slug>/script.txten el formato de compás dereferences/writing-guide.md(duración objetivo, un bloque[BEAT - entrada -> acción -> resultado]por compás con su línea hablada, luego notas de entrega) y muéstralo al usuario. Si pidió revisar primero, detente y espera una confirmación antes de redactar o renderizar cualquier cosa. Esquema. Luego escribevideos/<slug>/outline.yaml(tema, gancho, problema, 1-6 pasos cada uno conname,say,show, máswhen_to_use,question,answers). Las reglas están enreferences/writing-guide.md: 15 s = una idea; 30-45 s = una idea más hasta 3 pasos; como máximo 60 s para #Shorts. - Borrador:
yamlreel story videos/<slug>/outline.yaml --out videos/<slug>/spec.yaml --format <fmt> --theme <t>. Pasa--forcesolo para archivos que hayas creado tú mismo. - Edita la especificación. Reemplaza cada
TODO; establecemeta.title/description/tags,formats,music.seed. El texto en pantalla es breve; la narración explica la pantalla y nunca la repite. Campos por tipo de escena:references/scene-types.md. - Vista previa:
python3 <skill>/scripts/render.py videos/<slug>/spec.yaml --stage preview --out videos/<slug>/out. Si hay error, corrige la especificación a partir del mensaje (los errores de campo desconocido enumeran las claves permitidas) yreferences/troubleshooting.md. Reintenta como máximo 3 veces, luego informa al usuario. - Inspecciona (obligatorio). Abre cada
contact.pnglistado en la líneaRESULTcon la herramienta de visor de imágenes. Verifica: sin superposición, sin texto recortado o encogido, revela progreso entre las imágenes fijas, gancho legible en la primera imagen fija. Corrige la especificación y repite el paso 6 hasta que esté limpio, como máximo 3 bucles. - Final:
python3 <skill>/scripts/render.py videos/<slug>/spec.yaml --stage final --out videos/<slug>/out. - Pulido opcional. Si el usuario quiere efectos de sonido, una corrección de volumen o una verificación de bucle, y
yamlreel audit --helpfunciona, siguereferences/polish.mden elvideo.mp4terminado (nunca toca la especificación). - Informa las rutas de cada
video.mp4,poster.jpgycontact.png, y pega el contenido deshare-copy.txt. Recuerda al usuario que verifique cualquier cosa simplificada. La publicación es trabajo del usuario.
Códigos de salida de render.py: 0 ok, 1 error de yamlreel (stderr mostrado), 2 revisión previa rechazada (el mensaje dice por qué), 3 advertencias de vista previa bloquean el renderizado final (acorta el texto, reordena las señales at; usa --allow-warnings solo si el usuario acepta), 4 argumentos incorrectos (por ejemplo, --contact-frames fuera de 1-8). Su última línea es RESULT {json} con cada ruta de salida. Se escribe un registro en <out>/render-log.txt.
Valores predeterminados y hechos
- Los renderizados usan
--no-voice(solo música). Los subtítulos y la narración no son visibles en los renderizados sin voz; eso es esperado. - La salida va a
<out>/{preview,final}/<format>/; siempre pasa--out videos/<slug>/outpara que dos proyectos nunca compartan una carpeta (el valor predeterminado es<spec folder>/out). - Un
music.seedfijo mantiene los renderizados deterministas. No agregueswatermarka menos que el usuario lo solicite. - La voz en off es opcional y trae tu propia opción: consulta
references/voiceover.md. - Ejemplos para copiar:
examples/*.yaml.
Reglas de seguridad
- Nunca pongas secretos, tokens, contenidos de
.env, nombres de host internos o datos personales/del cliente en una especificación: se graban en los fotogramas y enshare-copy.txt. Los ejemplos de código usan marcadores de posición. - Lee y escribe solo dentro de la carpeta del proyecto del usuario; coloca las imágenes junto a la especificación. Nunca agregues
--allow-patho--allow-private-hostsa menos que el usuario lo solicite explícitamente, nombrando la carpeta. - Voz solo con un servidor TTS local que el usuario nombre; el texto de la narración se envía a él. Nunca una URL remota.
- Nunca instales paquetes del sistema o fuentes, ni edites
~/.config/yamlreel/config.yaml, sin el consentimiento del usuario. - Escenas
shot: solo URLs https públicas proporcionadas por el usuario, o imágenes locales en el proyecto. - Nunca subas o publiques el resultado.