/install grab-videos
Grab Videos and Frames Skill
Download videos and extract frames using yt-dlp + ffmpeg.
Quick Reference
| Task | Command |
|---|---|
| Download YouTube video | yt-dlp -f best \x3Curl> |
| Download Shorts | yt-dlp \x3Cyoutube.com/@user/shorts> |
| Extract frame @ 5s | ffmpeg -ss 5 -i video.mp4 -vframes 1 out.jpg |
| Frames every 2s | ffmpeg -i video.mp4 -vf fps=0.5 out%03d.png |
| Random frame 5-15s | ffmpeg -ss $((RANDOM%11+5)) -i video.mp4 -vframes 1 out.jpg |
YouTube Download
# Download best quality
yt-dlp -f best "https://www.youtube.com/watch?v=XXXX"
# Download Shorts playlist (first 20)
yt-dlp "https://www.youtube.com/@user/shorts" --playlist-items 1-20
# List available formats
yt-dlp -F "https://www.youtube.com/watch?v=XXXX"
# Download specific format (e.g., 1080p)
yt-dlp -f "best[height\x3C=1080][ext=mp4]" "https://www.youtube.com/watch?v=XXXX"
# Download audio only
yt-dlp -x "https://www.youtube.com/watch?v=XXXX"
Frame Extraction
# Single frame at timestamp
ffmpeg -ss 5 -i video.mp4 -vframes 1 -q:v 2 frame.jpg
# Random frame (5-15 seconds)
ffmpeg -ss $((RANDOM % 11 + 5)) -i video.mp4 -vframes 1 -q:v 2 frame.jpg
# Frames every N seconds
ffmpeg -i video.mp4 -vf "fps=0.5" frame_%03d.png # every 2s
# Scale down for thumbnails
ffmpeg -ss 10 -i video.mp4 -vf "scale=640:-1" -vframes 1 -q:v 5 thumb.jpg
# Batch from all videos
for f in *.mp4; do ffmpeg -ss 5 -i "$f" -vframes 1 "${f%.mp4}_thumb.jpg"; done
Batch Operations
# Download multiple URLs
for url in "url1" "url2" "url3"; do yt-dlp "$url"; done
# Extract frame from each video
for f in *.mp4 *.webm; do [ -f "$f" ] || continue; dur=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$f"); rnd=$((RANDOM % 11 + 5)); ffmpeg -ss "$rnd" -i "$f" -vframes 1 "frames/${f%.mp4}_${rnd}s.jpg" -y; done
Output Directory
# Recommended structure
workspace/
├── downloads/ # Raw videos
├── frames/ # Extracted frames
├── thumbnails/ # Small thumbs
└── clips/ # Trimmed clips
Important Notes
- Rate limits: YouTube may rate-limit excessive downloads
- Format support: yt-dlp supports 1700+ sites
- Storage: Videos can be large; use
-f best[height\x3C=720]for smaller files - Permissions: May need
chmod +xfor scripts - yt-dlp JS: Requires Node.js or deno for some YouTube formats
- Installation: Need install
yt-dlpandffmpegtools withapt install \x3Ctool-name>on Linux and withbrew install \x3Ctool-name>on macOS, or ask user to download it fromhttps://github.com/yt-dlp/yt-dlp/releasesandhttps://ffmpeg.org/download.html
Common Patterns
Download + extract 1 frame:
yt-dlp -o video.mp4 "https://www.youtube.com/watch?v=XXXX"
ffmpeg -ss 5 -i video.mp4 -vframes 1 -q:v 2 thumb.jpg
Thumbnail batch:
mkdir -p thumbnails
for f in *.mp4; do ffmpeg -ss 5 -i "$f" -vf "scale=320:-1" -vframes 1 -q:v 5 "thumbnails/${f%.mp4}.jpg" -y; done
Duration check:
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 video.mp4
Extented Abilities and skills
Learn other abilities and skills from yt-dl help
yt-dlp --help
Learn other abilities and skills from ffmpeg help
ffmpeg -h
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install grab-videos - After installation, invoke the skill by name or use
/grab-videos - Provide required inputs per the skill's parameter spec and get structured output
What is Grab Videos and Frames from Youtube and other sites?
Download videos and extract frames using yt-dlp and ffmpeg. Use when: - Download YouTube videos/Shorts: `yt-dlp <url>` - Extract frames from video: `ffmpeg -... It is an AI Agent Skill for Claude Code / OpenClaw, with 266 downloads so far.
How do I install Grab Videos and Frames from Youtube and other sites?
Run "/install grab-videos" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Grab Videos and Frames from Youtube and other sites free?
Yes, Grab Videos and Frames from Youtube and other sites is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Grab Videos and Frames from Youtube and other sites support?
Grab Videos and Frames from Youtube and other sites is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Grab Videos and Frames from Youtube and other sites?
It is built and maintained by christo (@qidu); the current version is v1.0.0.