← Back to Skills Marketplace
qidu

Grab Videos and Frames from Youtube and other sites

by christo · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
266
Downloads
0
Stars
2
Active Installs
1
Versions
Install in OpenClaw
/install grab-videos
Description
Download videos and extract frames using yt-dlp and ffmpeg. Use when: - Download YouTube videos/Shorts: `yt-dlp <url>` - Extract frames from video: `ffmpeg -...
README (SKILL.md)

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 +x for scripts
  • yt-dlp JS: Requires Node.js or deno for some YouTube formats
  • Installation: Need install yt-dlp and ffmpeg tools with apt install \x3Ctool-name> on Linux and with brew install \x3Ctool-name> on macOS, or ask user to download it from https://github.com/yt-dlp/yt-dlp/releases and https://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
Usage Guidance
This skill is an instruction sheet for using yt-dlp and ffmpeg — it does not install anything or request secrets. Before using: (1) ensure you have yt-dlp and ffmpeg installed from official sources; (2) run commands in a dedicated workspace to avoid overwriting important files; (3) be mindful of copyright and site terms before downloading content; (4) double-check the SKILL.md note about Node.js/deno — standard yt-dlp binaries do not require Node; and (5) avoid running untrusted URLs or scripts you don't understand since downloaded media can be large and may contain unexpected content.
Capability Analysis
Type: OpenClaw Skill Name: grab-videos Version: 1.0.0 The skill bundle provides standard instructions and shell commands for downloading videos using yt-dlp and processing them with ffmpeg. It includes batch processing loops and installation guidance for legitimate tools. No indicators of data exfiltration, malicious execution, or prompt injection were found in SKILL.md or _meta.json.
Capability Assessment
Purpose & Capability
The skill's name and description (download videos and extract frames) match the SKILL.md instructions (yt-dlp, ffmpeg, ffprobe commands, shell loops). It does not request unrelated credentials, binaries, or config paths.
Instruction Scope
Instructions are limited to running yt-dlp/ffmpeg/ffprobe and shell loops operating on local files—exactly what you'd expect. One minor incorrect or confusing note: the doc mentions 'yt-dlp JS: Requires Node.js or deno for some YouTube formats' which is not typical for the standard yt-dlp Python/binary distributions; this appears to be an inaccuracy rather than a malicious instruction. Otherwise the instructions do not attempt to read unrelated system files or exfiltrate data.
Install Mechanism
There is no install spec (instruction-only). The README points to well-known distribution sources (GitHub releases, ffmpeg.org) and standard package managers (apt, brew). No downloads from suspicious URLs or arbitrary extract steps are present in the skill itself.
Credentials
The skill requests no environment variables, credentials, or config paths. All commands operate on local files and user-provided URLs, which is proportional to the described tasks.
Persistence & Privilege
The skill does not request always:true or any elevated/persistent presence. It is user-invocable and can be invoked autonomously per platform defaults—normal for skills. It does not modify other skills or system-wide settings.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install grab-videos
  3. After installation, invoke the skill by name or use /grab-videos
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
- Initial release of the "grab-videos" skill. - Download videos and Shorts from YouTube using yt-dlp. - Extract single or multiple frames from video files with ffmpeg. - Supports batch operations for downloading and frame extraction. - Includes example commands for common workflows and output organization. - Not intended for unsupported streaming sites or copyright-protected content.
Metadata
Slug grab-videos
Version 1.0.0
License MIT-0
All-time Installs 2
Active Installs 2
Total Versions 1
Frequently Asked Questions

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.

💬 Comments