← Back to list
🎬

video-download Checked

Download video and audio from YouTube and 1000+ sites using yt-dlp. No API keys needed. Use when:…
🎬 Video & Motion skills By calesthio Version v1.0.0 Added 2026-09-07 Updated 2026-09-07 Source ↗
8.5Overall rating
2Views
5Downloads
56.5kStars

Installation

🤖 Install via AI

Copy the prompt below and send it to your AI assistant (e.g. Claude Code) — it will follow the instructions and install automatically.

Install the "video-download" skill by following the instructions at https://skill123.me/install/video-download.
⌨️ Command line install

Run in your terminal — downloads and installs to ~/.claude/skills/.

curl -fsSL https://skill123.me/install/video-download.sh | bash
📦 Download ZIP

Download the zip and extract it into your skills directory (e.g. ~/.claude/skills/), then restart your session.

⬇ Download v1.0.0 · 1 KB
📊 Static rating
8.5/10
Trigger
7.0
Structure
8.7
Workflow
7.6
Content
9.0
Engineering
10.0
Security
10.0

Six-dimension rubric with reviewer rationale.

View scorecard ↓
🛡 Dynamic test
—

Not live-tested yet — this skill is rated on static analysis only.

About this skill

Download video and audio from YouTube and 1000+ sites using yt-dlp. No API keys needed.

Use when: (1) Downloading a video from YouTube or other sites, (2) Extracting audio from a video URL,

(3) Downloading subtitles/captions from a video, (4) Getting video metadata without downloading.

video-download

Download video and audio from URLs using yt-dlp directly. No wrapper scripts needed.

Documentation

Download video and audio from YouTube and 1000+ sites using yt-dlp. No API keys needed.

Use when: (1) Downloading a video from YouTube or other sites, (2) Extracting audio from a video URL,

(3) Downloading subtitles/captions from a video, (4) Getting video metadata without downloading.

video-download

Download video and audio from URLs using yt-dlp directly. No wrapper scripts needed.

Prerequisites

  • **yt-dlp**: brew install yt-dlp or pip install yt-dlp
  • **ffmpeg**: brew install ffmpeg or apt install ffmpeg (required for merging video+audio streams)

Update yt-dlp periodically to keep up with site changes: yt-dlp -U or pip install -U yt-dlp.

Commands

### Download best quality


yt-dlp "URL" -o "%(title)s.%(ext)s" --merge-output-format mp4

### Download specific resolution


# 720p
yt-dlp "URL" -f "bestvideo[height<=720]+bestaudio/best[height<=720]" --merge-output-format mp4

# 1080p
yt-dlp "URL" -f "bestvideo[height<=1080]+bestaudio/best[height<=1080]" --merge-output-format mp4

### Audio only


yt-dlp "URL" -x --audio-format mp3 --audio-quality 0

### Download subtitles


# Download video with English subtitles
yt-dlp "URL" --write-subs --sub-langs en --merge-output-format mp4

# Download video with multiple subtitle languages
yt-dlp "URL" --write-subs --sub-langs "en,es,fr" --merge-output-format mp4

# Download only subtitles (no video)
yt-dlp "URL" --write-subs --sub-langs en --skip-download

### Get metadata (no download)


yt-dlp "URL" --dump-json --no-download

### List available formats


yt-dlp "URL" -F

### Specify output directory


yt-dlp "URL" -o "./downloads/%(title)s.%(ext)s" --merge-output-format mp4

Quality Presets

| Quality | Format flag |

|---------|-------------|

| Best | -f "bestvideo+bestaudio/best" (default) |

| 1080p | -f "bestvideo[height<=1080]+bestaudio/best[height<=1080]" |

| 720p | -f "bestvideo[height<=720]+bestaudio/best[height<=720]" |

| 480p | -f "bestvideo[height<=480]+bestaudio/best[height<=480]" |

| Worst | -f "worstvideo+worstaudio/worst" |

Output Template Variables

Common variables for -o templates:

| Variable | Description |

|----------|-------------|

| %(title)s | Video title |

| %(ext)s | File extension |

| %(id)s | Video ID |

| %(uploader)s | Channel/uploader name |

| %(upload_date)s | Upload date (YYYYMMDD) |

| %(duration)s | Duration in seconds |

| %(resolution)s | Video resolution |

Tips

View full documentation
  • Always use --merge-output-format mp4 to avoid ending up with .webm or .mkv files.
  • Use --no-download with --dump-json for metadata-only queries -- no files written to disk.
  • If a download fails with HTTP errors, update yt-dlp first (yt-dlp -U).
  • Use -f "bestvideo[height<=720]+bestaudio" to save bandwidth when full resolution is not needed.
  • yt-dlp automatically handles rate limiting and retries.
  • The --dump-json output includes title, duration, uploader, view_count, description, formats, subtitles, and much more.

Troubleshooting

  • **"yt-dlp: command not found"**: Install it (pip install yt-dlp) and ensure your PATH includes pip's bin directory.
  • **"ffmpeg: command not found"**: Install ffmpeg. Without it, downloads fail when video and audio are separate streams (common on YouTube for HD).
  • **Downloads fail or return errors**: Run yt-dlp -U to update. Sites change frequently and yt-dlp ships fixes regularly.

Score breakdown

Trigger
7.0
Clear What/When with 4 use cases and synonyms, but no When-Not exclusion so 1.4 zero.
Structure
8.7
Compact 113-line single SKILL.md, no redundant files; nothing offloaded but size is small.
Workflow
7.6
Runnable per-task commands plus troubleshooting; no explicit output verification step.
Content
9.0
Concise imperative commands, preset and template tables, consistent formatting.
Engineering
10.0
Valid frontmatter with name and description; no scripts or missing path references.
Security
10.0
Network use is the declared purpose via yt-dlp; no hidden exfiltration, injection, or credentials.
Solid yt-dlp command reference with quality presets and troubleshooting; lacks When-Not boundary and any verification step, single-file layout is fine at this size.