yt-dlp-downloader — Claude Code skill: what it does, how to install
Turns a video link into a working yt-dlp command: whole file, MP3 audio, subtitles, or a capped resolution. Handy when a clip has to land on disk without leaving the agent chat.
npx skills add MapleShaw/yt-dlp-downloader-skill --skill yt-dlp-downloader -a claude-codeWhat yt-dlp-downloader does
The skill takes the flag-juggling off your plate. Hand the agent a URL and it checks that the tools exist, assembles the command, and writes the output into ~/Downloads/yt-dlp. Full videos, audio-only MP3, subtitles with thumbnails, a slice of a playlist, or a format listing through -F before anything gets fetched.
All of it lives in a single SKILL.md of command templates: plain download, -x --audio-format mp3, --write-subs --sub-langs all, height caps at 720p and 1080p, -I 1:5 for the first five playlist items. Error handling is spelled out too: a 403 from YouTube means adding --cookies-from-browser chrome, an unavailable format means running -F again, a broken transfer just needs a repeat because the download resumes on its own.
Two things must be on the machine before any of this runs. Install yt-dlp with pip install yt-dlp; ffmpeg is what makes audio extraction and the joining of separate video and audio streams possible. On YouTube the cookie flag expects a browser you are signed into on that same machine, and chrome, firefox, safari, edge, brave, opera all fit. Elsewhere the skill tries without cookies first.
What it helps with
- Pull a YouTube video at 1080p without hand-building the format filter
- Rip the audio track out of a Bilibili clip as MP3
- Grab subtitles next to the video file
- Take only the first five items of a playlist
- Get past a 403 by reusing cookies from the browser
Example prompts for the agent
- Download
VIDEO_URLat 720p into~/Downloads/yt-dlp - Extract just the audio from
VIDEO_URLas mp3 - List the formats for
VIDEO_URLwith-F, then grab the one matchingFORMAT_ID
How to install yt-dlp-downloader
1Skills CLI (Vercel)
npx skills add MapleShaw/yt-dlp-downloader-skill --skill yt-dlp-downloader -a claude-code2Manually: put the files in place
~/.claude/skills/yt-dlp-downloader/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/yt-dlp-downloader/
1Skills CLI (Vercel)
npx skills add MapleShaw/yt-dlp-downloader-skill --skill yt-dlp-downloader -a codex2Manually: put the files in place
.agents/skills/yt-dlp-downloader/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add MapleShaw/yt-dlp-downloader-skill --skill yt-dlp-downloader -a cursor2Manually: put the files in place
.cursor/skills/yt-dlp-downloader/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install MapleShaw/yt-dlp-downloader-skill yt-dlp-downloader2Manually: put the files in place
.github/skills/yt-dlp-downloader/SKILL.md1Skills CLI (Vercel)
npx skills add MapleShaw/yt-dlp-downloader-skill --skill yt-dlp-downloader -a gemini-cli2Platform CLI
gemini skills install https://github.com/MapleShaw/yt-dlp-downloader-skillManually: put the files in place
.devin/skills/yt-dlp-downloader/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add MapleShaw/yt-dlp-downloader-skill --skill yt-dlp-downloader -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about yt-dlp-downloader
How do I install yt-dlp-downloader in Claude Code?
Run npx skills add MapleShaw/yt-dlp-downloader-skill --skill yt-dlp-downloader -a claude-code. The skill ends up at ~/.claude/skills/yt-dlp-downloader/SKILL.md.
What does yt-dlp-downloader do?
It builds and runs yt-dlp commands from a video URL: downloads, MP3 extraction, subtitles, quality choice, playlist ranges. It also checks that yt-dlp and ffmpeg are present first.
Do I need browser cookies for YouTube?
YouTube often answers without them with a 403, so the skill advises --cookies-from-browser chrome and a signed-in browser on the same machine. On other sites it tries without cookies.