thumbnail

Generate video cover frames and thumbnails for YouTube, TikTok, Reels, and social media. Use when asked for a video thumbnail, cover frame, YouTube thumbnail, or to extract a still from a video.

9 stars

Best use case

thumbnail is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Generate video cover frames and thumbnails for YouTube, TikTok, Reels, and social media. Use when asked for a video thumbnail, cover frame, YouTube thumbnail, or to extract a still from a video.

Teams using thumbnail should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/thumbnail/SKILL.md --create-dirs "https://raw.githubusercontent.com/exiao/skills/main/video/thumbnail/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/thumbnail/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How thumbnail Compares

Feature / AgentthumbnailStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Generate video cover frames and thumbnails for YouTube, TikTok, Reels, and social media. Use when asked for a video thumbnail, cover frame, YouTube thumbnail, or to extract a still from a video.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Thumbnail — Video Cover Frames & Thumbnails

Generate optimized video thumbnails / cover frames for YouTube, TikTok, and social media.

## Two Approaches

### A. Extract Best Frame from Video (ffmpeg)

```bash
# Extract I-frame (keyframe) — usually sharpest
ffmpeg -i video.mp4 -vf "select=eq(pict_type\,I)" -frames:v 1 -q:v 2 thumb.jpg

# Extract frame at specific timestamp
ffmpeg -ss 00:00:05 -i video.mp4 -frames:v 1 -q:v 2 thumb.jpg

# Extract multiple candidate frames (one every 5 seconds)
ffmpeg -i video.mp4 -vf "fps=1/5" -q:v 2 thumb_%03d.jpg
```

After extracting candidates, review them with the image tool and pick the best one (sharpest, best expression, good composition).

### B. Generate Custom Thumbnail (AI Image Generation)

Use the `image_generate` tool directly or any image generation skill to generate a designed thumbnail from scratch.

Prompt guidance:
- Include a face/subject with clear expression
- Specify text overlay in the prompt (keep to 3-5 words)
- Request high contrast, bright colors
- Match the platform aspect ratio (see specs below)

Example prompt structure: "YouTube thumbnail, 16:9, [subject description], [expression/action], bold text '[YOUR TEXT]', bright [color] background, high contrast, photorealistic"

## Platform Specs

| Platform | Size | Aspect | Notes |
|----------|------|--------|-------|
| YouTube | 1280x720 | 16:9 | Custom upload. Most important for CTR. |
| TikTok | 1080x1920 | 9:16 | Select from video frames only (no custom upload). |
| Instagram Reels | 1080x1920 | 9:16 | Can set cover frame from video. |
| YouTube Shorts | 1080x1920 | 9:16 | Auto-selected from video. |

## Best Practices

- **Faces with expression** increase CTR 30%+
- **High contrast colors** (avoid muted tones)
- **Large text** (3-5 words max, readable at small size)
- **Don't repeat the title** verbatim
- **Rule of thirds** for subject placement
- **Bright background** or colored border to stand out in feed
- For YouTube: test with mobile preview size (the thumbnail is tiny on phone)

## Adding Text to an Extracted Frame (ffmpeg)

```bash
# Centered text near bottom with black outline
ffmpeg -i thumb.jpg -vf "drawtext=text='3 MISTAKES':fontsize=80:fontcolor=white:borderw=4:bordercolor=black:x=(w-text_w)/2:y=h-text_h-50" thumb_text.jpg

# Top-left text
ffmpeg -i thumb.jpg -vf "drawtext=text='WATCH THIS':fontsize=72:fontcolor=yellow:borderw=3:bordercolor=black:x=40:y=40" thumb_text.jpg
```

For more complex text layouts (drop shadows, multiple text blocks, custom fonts), use AI image generation (see approach B above) to generate the thumbnail instead.

## Workflow

1. **Determine approach:** Does the user have a video to extract from (→ A) or need a generated thumbnail (→ B)?
2. **Confirm platform:** YouTube 16:9 vs. vertical 9:16. Default to YouTube 1280x720 if unspecified.
3. **Extract or generate:** Run the appropriate approach.
4. **Add text if needed:** Use ffmpeg drawtext for simple overlays, or regenerate with AI image generation if complex.
5. **Review:** Screenshot/display the result for user approval.

Related Skills

writer

9
from exiao/skills

Write content in Eric's voice — articles, blog posts, tweets, social media posts, marketing copy, newsletter drafts. Loads WRITING-STYLE.md and enforces kill phrases.

positioning-angles

9
from exiao/skills

Use when defining product positioning, choosing strategic angles, crafting value propositions, competitive positioning, product messaging, differentiation strategy, or go-to-market angles. Also use for 'how should I position my app', 'what angle should I use', 'painkiller vs vitamin', or 'market positioning'.

outline-generator

9
from exiao/skills

Use when generating outlines, article structures, content outlines, blog outlines, planning article sections, structuring posts, breaking down topics into sections, or organizing ideas for long-form content. Also use for 'outline this', 'structure this article', or 'plan the sections'.

last30days-open

9
from exiao/skills

Use only when the user explicitly asks for the open variant of last30days, including watchlists, briefings, and history queries. Sources: Reddit, X, YouTube, web.

last30days

9
from exiao/skills

Use when researching what happened in the last 30 days on a topic. Also triggered by 'last30'. Sources: Reddit, X, YouTube, web. Produces expert-level summary with copy-paste-ready prompts.

hooks

9
from exiao/skills

Use when generating hooks, headlines, titles, and scroll-stopping openers for content. Also use when analyzing viral posts, Reels, TikToks, YouTube Shorts, or successful social examples to extract reusable hook patterns and improve hook guidance.

evaluate-content

9
from exiao/skills

Use when judging content quality OR editing/improving existing copy: shareability, readability, voice, cuttability, angle, copy sweeps.

editor-in-chief

9
from exiao/skills

Use when a first draft is complete and all Phase 1 gates are done: topic selected (seo-research), title approved (hooks), outline approved (outline-generator), draft written (writer). Runs autonomous diagnosis-prescribe-rewrite loop before Substack.

copywriting

9
from exiao/skills

Write or improve marketing copy for any surface: pages, ads, app stores, landing pages, TikTok/Meta scripts, push notifications, UGC. Combines page copy frameworks with direct response principles.

content-strategy

9
from exiao/skills

Use when building content strategy: hooks, angles, and ideas from what's trending now. Covers organic and paid creative across TikTok, X, YouTube, Meta, LinkedIn.

content-pipeline

9
from exiao/skills

Orchestrator for the 3-article content pipeline — runs research phase, spawns parallel article sub-agents, creates Typefully drafts. Use when running the full content pipeline (usually via cron at 3am).

yt-dlp

9
from exiao/skills

Download audio/video from YouTube and other sites using yt-dlp. Use when the user asks to download music, songs, albums, podcasts, or video from YouTube or similar platforms. Triggers on 'download song', 'get mp3', 'yt-dlp', 'youtube download', 'rip audio'.