thumbnail-maker 是做什么的?
scripts/thumbnail.py(旁边需有 scripts/fonts.py)。需要 Python 3.9+ 和 pip install pillow。
# 技术/教程:截屏,重要行被圈出,箭头从标题指向圆圈
python thumbnail.py --title "Claude almost deleted *everything*" --style dark --shot terminal.png --circle 0.19,0.17,0.18 --arrow --out t.jpg
# 人物出镜:透明背景人物站在标题前
python thumbnail.py --title "I tested *every* AI coding tool" --style dark --photo me-cutout.png --out t.jpg
# 照片背景,Shorts 尺寸
python thumbnail.py --title "A day as a *dev*" --bg desk.jpg --style dark --size 1080x1920 --out short.jpg
| 选项 | 作用 |
|---|---|
--title | 3–5 个单词效果最佳。用 *word* 标记关键词(一个框或颜色)。默认大写,除非使用 --keep-case。 |
--style | dark(近黑色 + 黄色)、light(米白色 + 红色),或更抢眼的 pop、red、green、tech。 |
--look | clean(默认):纯色加轻微暗角,或 --bg 照片模糊变暗以增强对比。burst:旧的渐变 + 放射光效果。 |
--shot img | 截屏作为主要视觉。宽幅裁切(终端或界面的一两行文字)会全宽放在标题下方;较高的截屏则放在标题旁边。按比例放大填充空间。 |
--circle x,y,r | 截屏上的手绘红色椭圆。x,y = 中心点,r = 物体半宽,均以截屏尺寸的分数表示。 |
--arrow | 从标题指向圆圈的手绘箭头(如果上方空间不足,会绕开标题)。--mark-color 可改变红色。 |
--photo img | 人物照片。带透明通道的 PNG(已抠图)会加轮廓并放在标题边缘前方以增加层次感;普通照片会变成带边框的卡片(--photo-shape circle、--tilt 可调整形状和倾斜)。 |
--subtitle、--emoji、--accent、--highlight color、--size、--align、--font | 其他选项:小号副标题、表情贴纸、关键词颜色、无需框的彩色关键词、输出尺寸、对齐方式、标题字体。 |
设计规则(来自 2025 年顶级缩略图的做法)
- 一个想法,3–5 个词。 标题与图片互补,不要重复描述图中内容。
- 展示真实内容。 截取实际错误、结果或界面的截屏,比通用插图更好。紧贴关键行并圈出。
- 人脸: 使用已抠图的清晰表情人物,占据画面 40–60% 的高度。不要在眼睛上放置文字。
- 两种颜色。 纯色背景 + 一个强调色。避免放射光、表情墙或渐变文字,这些会显得像模板或 AI 生成。
- 保持右下角空白:YouTube 会在此处显示视频时长。
检查项(打印在控制台,并生成 <名称>.preview.png)
- 标题字母在 168 像素宽(YouTube 搜索缩略图尺寸)下的高度小于 8 像素 → 警告。
- 标题的有效对比度(填充色与背景,以及轮廓)低于 3:1 → 警告。
- 眯眼测试: 标题区域模糊到 48 像素宽后,仍必须与周围环境区分。
- 视频时长角落: 标题延伸至右下角 20% x 16% 区域 → 警告。
- 关键词框与背景融合,关键词与框/轮廓对比度过低,单词数超过 6 个。 任何警告都会导致退出码为 1。使用图片前请查看预览表单。
限制
- 不支持自动去背景:请传入已经抠好的 PNG(可使用 remove.bg、Photoshop、macOS 的“复制主体”功能)。
- 圆圈和箭头的位置取决于你提供的
--circle数值:检查预览,如果椭圆形偏移则调整 x/y/r。 - 字体:标题默认使用 Impact(Windows/macOS;Linux 需安装
ttf-mscorefonts,或设置FONT_TITLE=/path/Anton-Regular.ttf)。可通过FONT_TITLE、FONT_BOLD、FONT_EMOJI覆盖。 - 表情符号:仅支持单个码点(Pillow 在不启用 libraqm 的情况下无法处理 ZWJ 序列)。
- 无人脸检测:裁切照片时请确保人脸不靠近边缘。