# yt-dlp-downloader

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.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 809 installs · ★ 212
- Author: MapleShaw
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/MapleShaw/yt-dlp-downloader-skill/tree/HEAD/SKILL.md
- Updated: 2026-01-24
- HTML: https://affpapa.org/en/nevibecode/skills/yt-dlp-downloader

## What it 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.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add MapleShaw/yt-dlp-downloader-skill --skill yt-dlp-downloader -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/yt-dlp-downloader/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/yt-dlp-downloader/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add MapleShaw/yt-dlp-downloader-skill --skill yt-dlp-downloader -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/yt-dlp-downloader/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add MapleShaw/yt-dlp-downloader-skill --skill yt-dlp-downloader -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/yt-dlp-downloader/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install MapleShaw/yt-dlp-downloader-skill yt-dlp-downloader
```

2. **Manually: put the files in place**
- File: `.github/skills/yt-dlp-downloader/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add MapleShaw/yt-dlp-downloader-skill --skill yt-dlp-downloader -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/MapleShaw/yt-dlp-downloader-skill
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/yt-dlp-downloader/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add MapleShaw/yt-dlp-downloader-skill --skill yt-dlp-downloader -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/MapleShaw/yt-dlp-downloader-skill/tree/HEAD/SKILL.md

## When to use it
- 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
- Download `VIDEO_URL` at 720p into `~/Downloads/yt-dlp`
- Extract just the audio from `VIDEO_URL` as mp3
- List the formats for `VIDEO_URL` with `-F`, then grab the one matching `FORMAT_ID`

## Similar
- [agent-browser](https://affpapa.org/en/nevibecode/skills/vercel-labs-agent-browser.md) — skill · 1200000 installs
- [webapp-testing](https://affpapa.org/en/nevibecode/skills/webapp-testing.md) — skill · 186758 installs
- [computer-use](https://affpapa.org/en/nevibecode/skills/computer-use.md) — skill · 239400 installs
- [browser-use](https://affpapa.org/en/nevibecode/skills/browser-use.md) — skill · 98200 installs
- [playwright-cli](https://affpapa.org/en/nevibecode/skills/playwright-cli.md) — skill · 195700 installs
- [last30days](https://affpapa.org/en/nevibecode/skills/last30days.md) — skill · 53000 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
