Media Downloader

Build correct yt-dlp commands for video/audio downloads, subtitles, and playlists

Tested · Works

Test report

Verdict
Tested · Works
Score
8.4/10
Tested
Jul 31, 2026
Environment
Claude Code 2.x (agent harness)
Upstream re-checked
Aug 10, 2026 · 33de381

Fetched SKILL.md and scripts/download.py (both HTTP 200) from examples/recommend_skills/media-downloader/. yt-dlp is not installed here, but download.py has a --dry-run mode: I ran it for three scenarios and it emitted correct yt-dlp commands (e.g. `yt-dlp -f bestvideo[height<=1080]+bestaudio/best[height<=1080] --write-subs --sub-langs en,zh --embed-subs ...`). For output-vs-baseline I wrote two command files for one task (1080p + embedded en/zh subs + title filename): my baseline used `best[height<=1080]` with deprecated `--write-sub/--sub-lang`, while the skill-followed command used `bestvideo[height<=1080]+bestaudio/best` with canonical `--write-subs/--sub-langs`. The diff is functional: YouTube serves 1080p only as separate DASH streams, so the baseline's muxed selector caps at 720p while the skill's merge selector gets true 1080p. Docs docked one point: the bundled download.py script is never mentioned anywhere in SKILL.md.

Scored on four weighted criteria — install, triggering, output vs. baseline, docs. How scoring works

  • Installs cleanly 5/5
  • Triggers reliably 5/5
  • Output vs. baseline 7/10
  • Docs & honesty 4/5

What Media Downloader does

A reference skill that helps Claude construct correct yt-dlp commands to download video or audio from YouTube, Bilibili, TikTok, Twitter/X, Instagram and other sites, with format/resolution selection, subtitles, playlist ranges, output templates, and browser-cookie auth. Triggers when the user asks to download a video, save media from a social platform, pick a resolution like 1080p/4K, fetch subtitles, or download a playlist. Ships a download.py helper that assembles the yt-dlp invocation from flags.

How to install Media Downloader

git clone --depth 1 https://github.com/MemTensor/skills-vote.git /tmp/media-downloader-src
mkdir -p ~/.claude/skills
cp -R /tmp/media-downloader-src/examples/recommend_skills/media-downloader ~/.claude/skills/media-downloader
# Requires the yt-dlp CLI (not bundled): pip install -U yt-dlp   (or brew install yt-dlp)
# ffmpeg needed for merging separate video+audio streams and embedding subtitles: brew install ffmpeg
# Optional helper: python3 ~/.claude/skills/media-downloader/scripts/download.py URL --resolution 1080p --subtitles en,zh --embed-subs --dry-run

Skills live in ~/.claude/skills/ (global) or .claude/skills/ (per-project). Restart Claude Code after installing.

Commands — how to trigger Media Downloader

  • /media-downloader Build correct yt-dlp commands for video/audio downloads, subtitles, and playlists

It also activates on plain-language prompts like these:

  • Download this YouTube video in 1080p
  • Save this TikTok video with subtitles
  • Download this entire playlist locally

Frequently asked questions

Is the Media Downloader skill free?
Yes. The skill itself is free from MemTensor/skills-vote. SkillProof publishes the install command and an independent test verdict at no cost.
Does Media Downloader work with Claude Code?
We tested it with Claude Code 2.x (agent harness) on Jul 31, 2026. Verdict: Tested · Works. Fetched SKILL.md and scripts/download.py (both HTTP 200) from examples/recommend_skills/media-downloader/. yt-dlp is not installed here, but download.py has a --dry-run mode: I ran it for three scenarios and it emitted correct yt-dlp commands (e.g. `yt-dlp -f bestvideo[height<=1080]+bestaudio/best[height<=1080] --write-subs --sub-langs en,zh --embed-subs ...`). For output-vs-baseline I wrote two command files for one task (1080p + embedded en/zh subs + title filename): my baseline used `best[height<=1080]` with deprecated `--write-sub/--sub-lang`, while the skill-followed command used `bestvideo[height<=1080]+bestaudio/best` with canonical `--write-subs/--sub-langs`. The diff is functional: YouTube serves 1080p only as separate DASH streams, so the baseline's muxed selector caps at 720p while the skill's merge selector gets true 1080p. Docs docked one point: the bundled download.py script is never mentioned anywhere in SKILL.md.
What is the Media Downloader SkillProof Score?
8.4/10 — installs cleanly 5/5, triggers reliably 5/5, output vs. baseline 7/10, docs & honesty 4/5.
How do I install Media Downloader?
Copy the install command from this page, run it in your terminal, and restart Claude Code. Skills live in ~/.claude/skills/ (global) or .claude/skills/ inside a project.
Can I use Media Downloader with Cursor, Copilot, Gemini CLI, Codex or other AI tools?
The SKILL.md format is native to Claude (Claude Code, Desktop, claude.ai). The instructions inside adapt to other assistants: Cursor rules, GitHub Copilot instructions, Windsurf rules, Custom GPTs, AGENTS.md for OpenAI Codex, and GEMINI.md for Google Gemini CLI — our conversion guides cover each, and the free converter on the tools page does the wrapping for you.