L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Développement · SKILL.md

yt-thumbnail-grabber

yt-thumbnail-grabber

Download YouTube video thumbnails in various resolutions. Use when you need to get video preview images, create collages, or save thumbnails for reference.

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: yt-thumbnail-grabber description: Download YouTube video thumbnails in various resolutions. Use when you need to get video preview images, create collages, or save thumbnails for reference. metadata: {"openclaw":{"requires":{"bins":["yt-dlp"]},"install":[{"id":"python","kind":"pip","package":"yt-dlp","bins":["yt-dlp"],"label":"Install yt-dlp (pip)"}]}}

YouTube Thumbnail Grabber

Setup

Install yt-dlp:

pip install yt-dlp

Download Thumbnail

Using yt-dlp:

yt-dlp --write-thumbnail --skip-download "VIDEO_URL"

Convert to JPG:

yt-dlp --write-thumbnail --skip-download --convert-thumbnails jpg "VIDEO_URL"

Custom output path:

yt-dlp --write-thumbnail --skip-download -o "thumbnail" "VIDEO_URL"

Direct URL Method

Get thumbnail URL:

yt-dlp --get-thumbnail "VIDEO_URL"

Download with curl:

curl -o thumbnail.jpg "$(yt-dlp --get-thumbnail 'VIDEO_URL')"

Thumbnail URL Patterns

For video ID VIDEO_ID, thumbnails are available at:

# Maximum resolution (may not exist for all videos)
https://img.youtube.com/vi/VIDEO_ID/maxresdefault.jpg

# High quality (480x360)
https://img.youtube.com/vi/VIDEO_ID/hqdefault.jpg

# Medium quality (320x180)
https://img.youtube.com/vi/VIDEO_ID/mqdefault.jpg

# Standard quality (640x480)
https://img.youtube.com/vi/VIDEO_ID/sddefault.jpg

# Default (120x90)
https://img.youtube.com/vi/VIDEO_ID/default.jpg

Quick Download by Video ID

VIDEO_ID="dQw4w9WgXcQ"

# Max resolution
curl -o "thumb_max.jpg" "https://img.youtube.com/vi/${VIDEO_ID}/maxresdefault.jpg"

# HQ
curl -o "thumb_hq.jpg" "https://img.youtube.com/vi/${VIDEO_ID}/hqdefault.jpg"

Download All Resolutions

VIDEO_ID="dQw4w9WgXcQ"

for res in maxresdefault sddefault hqdefault mqdefault default; do
    curl -o "${VIDEO_ID}_${res}.jpg" "https://img.youtube.com/vi/${VIDEO_ID}/${res}.jpg"
done

Extract Video ID from URL

# From full URL
echo "https://www.youtube.com/watch?v=dQw4w9WgXcQ" | grep -oP '(?<=v=)[^&]+'

# Or using yt-dlp
yt-dlp --get-id "VIDEO_URL"

Batch Download Thumbnails

From playlist:

yt-dlp --write-thumbnail --skip-download -o "%(title)s" "PLAYLIST_URL"

From file with URLs:

yt-dlp --write-thumbnail --skip-download -a urls.txt

Get Thumbnail with Metadata

yt-dlp --dump-json "VIDEO_URL" | python3 -c "
import sys, json
d = json.load(sys.stdin)
print(f\"Title: {d['title']}\")
print(f\"Thumbnail: {d['thumbnail']}\")
for t in d.get('thumbnails', []):
    print(f\"  {t.get('width', '?')}x{t.get('height', '?')}: {t['url']}\")"

Download Best Available Thumbnail

python3 -c "
import sys
import urllib.request

video_id = sys.argv[1]
resolutions = ['maxresdefault', 'sddefault', 'hqdefault', 'mqdefault', 'default']

for res in resolutions:
    url = f'https://img.youtube.com/vi/{video_id}/{res}.jpg'
    try:
        urllib.request.urlretrieve(url, f'{video_id}.jpg')
        print(f'Downloaded: {res} ({url})')
        break
    except:
        continue
" "VIDEO_ID"

Thumbnail Resolutions

NameResolutionNotes
maxresdefault1280x720Not always available
sddefault640x480Standard
hqdefault480x360High quality
mqdefault320x180Medium quality
default120x90Always available
0, 1, 2, 3120x90Video frame captures

Alternative Thumbnail Frames

YouTube stores multiple frame captures:

VIDEO_ID="dQw4w9WgXcQ"

# Different moments from the video
curl -o "frame0.jpg" "https://img.youtube.com/vi/${VIDEO_ID}/0.jpg"
curl -o "frame1.jpg" "https://img.youtube.com/vi/${VIDEO_ID}/1.jpg"
curl -o "frame2.jpg" "https://img.youtube.com/vi/${VIDEO_ID}/2.jpg"
curl -o "frame3.jpg" "https://img.youtube.com/vi/${VIDEO_ID}/3.jpg"

Notes

  • maxresdefault only exists for HD videos
  • Fall back to hqdefault if max resolution fails
  • Thumbnails are cached by YouTube CDN
  • No authentication required for public videos
  • WebP format may be returned; use --convert-thumbnails jpg to convert
  • Frame captures (0-3) show different moments from the video
Skills enregistrées