youtube-thumbnail
Skill38 starsChanged 6 months agoMITView on GitHub
Design an on-brand YouTube thumbnail for a two-person interview / podcast video. Cuts both faces out of their headshots (rembg), places them flush to the L/R edges in a Moonshots-style layout re-skinned to your brand (one saturated highlight box, your lockup), and renders 1280×720 PNGs (1× + @2×) in dark (default) or light skin. Encodes verified 2026 thumbnail research as a hard checklist. Use when asked to "make a YouTube thumbnail", "thumbnail for the podcast / interview", "thumbnail with two faces", "thumbnail for the episode with X", or "/youtube-thumbnail".
- Installs packages
15 other projects use a version of this.
Adopted by
Most recently taken up by
- Thibaultbm/claude-seo-geotheir own version, first seen Nov 8, 2026
- hassancs91/claude-youtube-editortheir own version, first seen Nov 5, 2026
- rami-maalouf/skillstheir own version, first seen Nov 1, 2026
- qwwiwi/agentos-skills-publictheir own version, first seen Nov 1, 2026
- shutckin/aivfx-content-kittheir own version, first seen Oct 8, 2026
- t0ddharris/compound-marketingtheir own version, first seen Oct 8, 2026
Other versions15 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 15
- charlie947/social-media-skills★ 4.4ksame name
- hassancs91/claude-youtube-editor★ 368same name
- magnus919/agent-skills★ 172same name
- alebgl77/claude-inc★ 21same name
- Thibaultbm/claude-seo-geo★ 18same name
- plushyta/Awesome-Marketing-Skills★ 13same name
- rbrown101010/Rileys-Top-Skills★ 9same name
- qwwiwi/agentos-skills-public★ 4same name
- rami-maalouf/skills★ 2same name
- timscheuerai/gtm-architecture-template★ 2same name
5 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository18 other files it gives its agents.
- graphics-designerSkill
- launch-videoSkill
- lead-magnet-creatorSkill
- linkedin-copywriterSkill
- long-formSkill
- newsletter-writerSkill
- repurposeSkill
- researcherSkill
- shorts-audioSkill
- shorts-cutSkill
- shorts-editSkill
- shorts-motionSkill
- shorts-qaSkill
- video-useSkill
- x-copywriterSkill
- youtube-descriptionSkill
- youtube-publisherSkill
- youtube-scriptSkill
The file
We split this skill into the rules it gives an agent
2 rules. 0 are common, 2 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 13 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 95
Ask for whatever's missing in one batch:
- Distinctive: line 114
Not shipped until all are true:
“Common” is measured: kept by at least 6 in 10 of the 13 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
youtube-thumbnail
The thumbnail factory for two-person interview / podcast videos.
HTML → PNG via headless Chrome, faces cut out with rembg. Produces the
high-CTR genre archetype (think Moonshots "AI Killed the Modern
Company") re-skinned to your brand: two head cutouts flush to the edges,
one bold 2–5 word headline with a single saturated highlight, bold name
labels, your wordmark lockup.
This is the still thumbnail skill. It feeds /youtube-publisher,
which sets the thumbnail on the uploaded video. For a text-only tutorial
style (single template, no faces), use /graphics-designer instead —
different genre.
SETUP (run this once)
- Fill the placeholders:
<YOUR_BRAND>,<YOUR_ACCENT>(one saturated highlight color, e.g. an emerald#10b981or a max-interrupt red#FF0000),<YOUR_LOGO>(your wordmark + mark),<YOUR_BRAND_DOC>. - Install
rembgonce for the face cutouts (Python venv + the u2net model, ~176MB one-time download). It runs locally; no API key. - Point
<YOUR_GRAPHICS_DIR>at wherever you keep render scripts + templates + the brand HTML. No template yet? The skill builds the 1280×720 HTML from your brand tokens the first time.
When to use
Trigger on:
- "Make a YouTube thumbnail for the interview / podcast / episode"
- "Thumbnail with me and
<guest>" - "Thumbnail for the video with
<two people>" - User types
/youtube-thumbnail
Skip for:
- Tutorial / solo videos →
/graphics-designer(text + slabs style) - LinkedIn / X / banner graphics →
/graphics-designer - Setting the thumbnail on YouTube →
/youtube-publisher(consumes this output)
Design handoff from Figma
You can design a thumbnail in Figma and hand it over as the spec — export it as SVG (1280×720 frame). SVG is text/XML, so the agent reads your exact colors, geometry, and layout and rebuilds it in the HTML template (version-controlled, brand-locked, automated). Figma is the sketchpad; the HTML template is the source of truth that feeds the publish pipeline. For maximum fidelity, untick "Outline text" in Figma's SVG export so the literal words + font survive; either way the SVG can be rasterized and matched visually. PNG export also works, but SVG lets the agent read precise values.
The research this skill encodes
Distilled from a verified, adversarially-checked research pass on 2026 thumbnail performance. The rules below are the confirmed ones; the debunked myths are listed so you don't chase them.
Load-bearing rules (verified):
- The thumbnail is the #1 CTR lever — over-invest in it.
- 2–5 words, heavy weight. A label, not a sentence. Headline =
HL(1–2 words on the highlight box) +REST(1–2 short lines). Total ≤ 5 words is the ceiling; 3–4 is the target. - One saturated accent. A single highlight box carries the key
phrase.
<YOUR_ACCENT>is the default; a red#FF0000is the max-pattern-interrupt option (use white text on it). One accent, never two. - Contrast ≥ 4.5:1 everywhere. Ink-on-accent, white title on near-black (dark skin) or ink title on a near-white surface (light skin). Verified against WCAG.
- Bold name labels under each face — the interview-format convention.
- Engineer for the phone. It must read at ~246px wide. Squint-test every render (see step 4).
- A/B test to settle anything. Real lifts are single-digit %. Render dark + light and test with YouTube's Test & Compare; don't argue taste.
Debunked — do NOT design around these (all refuted under review):
- "Faces add 35–50% CTR" / "multiple faces beat single" — faces are table stakes for this format, not a CTR guarantee. You earn the click with contrast + the highlighted word + a contrarian line, not by assuming the two faces carry it.
- "Emotional / surprised / sad faces win," any specific %-lift from tool blogs, "≥40% face height," "exactly 2–3 elements / 30–40% negative space." Ignore. Use clean, composed portraits (not candid screen-grabs).
Inputs
Ask for whatever's missing in one batch:
- The two people — whose faces. Default left = host. Need a headshot for each (square-ish, even background cuts cleanest).
- Both names — exactly as they should appear (e.g.
FIRST LAST). Rendered uppercase by default. - Headline — the hook. Split into
HL(the highlight-box phrase) +REST. Mirror the reference's contrarian energy (AI Killed/Cold Outbound). Keep it ≤ 5 words. - Theme —
dark(default, recommended) orlight(on-brand). - Accent — highlight color (
<YOUR_ACCENT>default,#FF0000red option) + accent-text color (dark ink on a light accent, white on red). - Proof stack (optional) — an iOS-style notification stack in the centre (great social-proof motif for "calls booked / replies / signups"). Your mark becomes the app icon; the centre wordmark auto-hides since the stack owns that space.
- Name case — upper (default) or title (sentence case).
Definition of done · HARD GATE
Not shipped until all are true:
- Both face cutouts exist and were eyeballed for clean alpha (no halo on hair/glasses).
- PNGs rendered (1× and @2×) at 1280×720.
- Passed the squint test (step 4) at thumbnail scale.
- Logged where your content lives (your Drive folder, Notion Content row, or content vault file), with the asset link captured.
Iterating on the visual is fine; declaring done without logging it is not.
Workflow
1. Cut out both faces
Each face must be a transparent PNG. Reuse an existing cutout if you have
one. Otherwise run rembg on the headshot:
# one-time: python3 -m pip install rembg (downloads u2net model on first run)
rembg i public/speakers/<person>.png public/cutouts/<person>-cut.pngOpen the result and check the alpha edges — stray pixels on hair/glasses are most visible on the dark skin.
2. Render
Build the thumbnail from an HTML template (your brand tokens, a 1280×720 frame) and rasterize with headless Chrome. The template exposes the per-thumbnail fields; a thin render script substitutes them:
# render pattern: substitute fields, then screenshot at 1280x720
python3 render_interview_thumbnail.py \
--hl "AI Killed" --rest "Cold Outbound" \
--name-l "HOST NAME" --name-r "GUEST NAME" \
--face-l public/cutouts/host-cut.png \
--face-r public/cutouts/guest-cut.png \
--theme dark \
--out yt-interview-<topic>Outputs yt-interview-<topic>.png (+ @2x). Use \n in --rest to
force a line break. Default skin is dark; pass --theme light for
the on-brand light skin. Render both if you intend to A/B test.
Proof-stack variant (red accent + notification stack, sentence-case names):
python3 render_interview_thumbnail.py \
--hl "Outbound Signals" --rest "that book calls" \
--name-l "Host Name" --name-r "Guest Name" --name-case title \
--face-l public/cutouts/host-cut.png --face-r public/cutouts/guest-cut.png \
--theme dark --font-size 76 \
--accent "#FF0000" --accent-text "#ffffff" \
--proof "New call booked" --proof-time "now" \
--out yt-interview-<topic>Longer headlines need --font-size below the 96 default (76 fits a 2–3
word line; drop further for more words).
3. Fit the faces (only if a new headshot frames badly)
Defaults are tuned for ~800×800 portrait cutouts. For a new headshot, nudge per-side knobs until eyes sit on the upper third and the body bleeds off the outer edge (so the headline clears it): a head-height scale, an outer-edge bleed (x), and a vertical offset (y), per side. Re-render and re-check. Trust the render, not your expectation.
4. Squint test · HARD GATE
Downscale to thumbnail size and look. If the headline isn't instantly legible or the faces blur together, it fails — fix and re-render.
python3 -c "from PIL import Image; im=Image.open('output/yt-interview-<topic>.png'); im.resize((246,138)).save('/tmp/squint.png')"Open /tmp/squint.png. Checklist:
- Headline readable at 246px? (if not: fewer words / heavier / more contrast)
- The accent box is the only saturated color?
- Both faces clearly separate, eyes visible?
- Names legible?
<YOUR_LOGO>lockup present? - Zero em-dashes, zero banned words (per
<YOUR_BRAND_DOC>).
5. Log it
Save the PNGs (1× + @2×) where your content lives — your Drive graphics folder, a Notion Content row (Format = Video, Channel = YouTube), or your content vault file. Capture the asset link. Note which skin(s) shipped if you rendered both for an A/B test.
6. Report back
One line: PNG paths, asset link(s), where logged. Note if both skins
shipped for an A/B test. Suggest the handoff: /youtube-publisher sets
this as the video thumbnail; /linkedin-copywriter for the launch post.
Don'ts
- Don't write a sentence. ≤ 5 words, one highlight. If the hook needs explaining, it's the wrong hook.
- Don't add a second accent color. One accent only.
- Don't trust the faces to carry it — that myth was debunked. The headline does the work.
- Don't ship a light thumbnail by default. It blends into YouTube's UI; dark pattern-interrupts. Light is the on-brand option, not the strong one.
- Don't skip the squint test or the cutout-edge check.
- Don't bake in a duration unless the thumbnail is for off-YouTube use (YouTube overlays the real duration itself).
See also
- Render template + script:
<YOUR_GRAPHICS_DIR>(1280×720 HTML + substitute-and-screenshot script) - Brand:
<YOUR_BRAND_DOC>· voice rules + checklist - Consumes this:
/youtube-publisher(sets thumbnail on the video) - Sibling style:
/graphics-designer(tutorial / solo, text + slabs)
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

