¿Qué hace thumbnail-maker?
scripts/thumbnail.py (con scripts/fonts.py al lado). Python 3.9+ y pip install pillow.
# técnico / tutorial: una captura real, la línea importante rodeada, una flecha desde el título
python thumbnail.py --title "Claude casi borra *todo*" --style dark --shot terminal.png --circle 0.19,0.17,0.18 --arrow --out t.jpg
# presentador: un recorte de persona delante del título
python thumbnail.py --title "Probé *todas* las herramientas de IA" --style dark --photo me-cutout.png --out t.jpg
# fondo de foto, tamaño Shorts
python thumbnail.py --title "Un día como *dev*" --bg desk.jpg --style dark --size 1080x1920 --out short.jpg
| Opción | Qué hace |
|---|---|
--title | 3-5 palabras funciona mejor. *palabra* marca la palabra clave (un recuadro o color). Se escribe en mayúsculas a menos que se use --keep-case. |
--style | dark (casi negro + amarillo), light (blanco roto + rojo), o los más llamativos pop, red, green, tech. |
--look | clean (por defecto): color plano con una viñeta suave, o --bg foto difuminada y oscurecida para contraste. burst: el aspecto anterior de degradado + destello solar. |
--shot img | Una captura de pantalla real como elemento visual principal. Los recortes anchos (una o dos líneas de una terminal o interfaz) van a todo lo ancho debajo del título; los más altos se colocan al lado. Se escala para llenar el espacio. |
--circle x,y,r | Óvalo rojo dibujado a mano sobre la captura. x,y = centro y r = mitad del ancho del objeto, todo como fracciones de la captura. |
--arrow | Flecha dibujada a mano desde el título hasta el círculo (traza una ruta alrededor del título si no hay espacio arriba). --mark-color cambia el rojo. |
--photo img | Foto de persona. Un PNG con transparencia (un recorte) se delinea y se dibuja delante del borde del título para dar profundidad; una foto normal se convierte en una tarjeta con borde (--photo-shape circle, --tilt). |
--subtitle, --emoji, --accent, --highlight color, --size, --align, --font | Como antes: una segunda línea pequeña, una pegatina de emoji, color de palabra clave, palabra clave coloreada sin recuadro, tamaño de salida, alineación, fuente del título. |
Reglas de diseño (de lo que hacen las mejores miniaturas en 2026)
- Una idea, 3-5 palabras. El título complementa la imagen; no la describas.
- Muestra lo real. Una captura de pantalla recortada del error, resultado o interfaz real supera al arte genérico. Recorta justo la línea que importa y rodéala.
- Rostros: un recorte con una expresión clara, grande (40-60 % de la altura). No pongas texto sobre los ojos.
- Dos colores. Fondo plano más un acento. Sin destellos solares, paredes de emojis ni texto degradado; se leen como plantilla o hecho por IA.
- Mantén la esquina inferior derecha despejada: YouTube dibuja allí la duración del video.
Comprobaciones (impresas y en <nombre>.preview.png)
- Altura de la letra del título a 168 px de ancho (búsqueda de YouTube) por debajo de 8 px → advertencia.
- Contraste efectivo del título (relleno vs fondo, y su contorno) por debajo de 3:1 → advertencia.
- Prueba de entrecerrar los ojos: el área del título borroneada a 48 px de ancho debe seguir destacando de su entorno.
- Esquina de marca de tiempo: el título que llega a la esquina inferior derecha (20 % x 16 %) → advertencia.
- El recuadro de la palabra clave se funde con el fondo, contraste de la palabra clave vs recuadro/contorno, más de 6 palabras. Código de salida 1 si hay alguna advertencia. MIRA la hoja de previsualización antes de usar la imagen.
Límites
- Sin eliminación de fondo: pasa un PNG que ya esté recortado (remove.bg, Photoshop, macOS "Copiar sujeto").
- Los círculos y flechas se colocan según tus números
--circle: revisa la previsualización y ajusta x/y/r si el óvalo falla. - Fuentes: Impact para títulos (Windows/macOS; en Linux instala
ttf-mscorefontso defineFONT_TITLE=/ruta/Anton-Regular.ttf). Sobreescribe conFONT_TITLE,FONT_BOLD,FONT_EMOJI. - Emoji: solo de un punto de código (Pillow sin libraqm no puede unir secuencias ZWJ).
- Sin detección de rostros: recorta las fotos para que el rostro no esté cerca de un borde.