plugins/yt-dlp/skills/yt-dlp/SKILL.md
Download videos, audio, and transcripts from YouTube and 1000+ sites with yt-dlp. Use when the user mentions "yt-dlp", "youtube-dl", wants to download a video, rip audio from a video, or extract a transcript from a URL.
npx skillsauth add shillem/cc-marketplace yt-dlpInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
$ACTION, remainder as $URL.$ACTION matches one of the actions, follow the action's instructions.$ACTION is empty or does not match an action, list the available actions.Important: downloads are saved to <cwd>/.ai/yt-dlp (current working directory) unless the user specifies another path.
scripts/strip-transcript.mjs — Transcript utilityDownload a video at the best available quality.
yt-dlp --restrict-filenames -P <yt-dlp-download-folder> -o "%(title)s.%(ext)s" <url>
Common variants:
yt-dlp --restrict-filenames -P <yt-dlp-download-folder> -o "%(title)s.%(ext)s" \
-f "bv*[height<=1080]+ba/b[height<=1080]" --merge-output-format mp4 <url>
yt-dlp -F <url>,
then pick by id: yt-dlp -f 137+140 <url>--playlist-items 1-5--continue --no-overwrites (default behavior is fine for most cases)Extract audio only — strips the video stream.
yt-dlp -x --audio-format mp3 --audio-quality 0 --restrict-filenames -P <yt-dlp-download-folder> -o "%(title)s.%(ext)s" <url>
--audio-format accepts mp3, m4a, opus, flac, wav, aac, vorbis--audio-quality 0 means best VBR; use 192K for a fixed bitrate--embed-thumbnail --add-metadata-o "%(playlist_title)s/%(playlist_index)02d - %(title)s.%(ext)s"Download subtitles for a video and produce a clean plain-text transcript. Default to English unless the user specifies a language.
Download subs directly into <yt-dlp-download-folder> with --restrict-filenames so the
sub file has a safe basename we can reuse for the transcript:
yt-dlp --skip-download --write-subs --write-auto-subs --sub-langs "en" --sub-format "vtt/srt/best" --restrict-filenames -P <yt-dlp-download-folder> -o "%(title)s.%(ext)s" <url>
en) over wildcards (en.*) — YouTube
exposes en, en-en, and en-orig auto-caption tracks and a wildcard
downloads all threeyt-dlp --list-subs <url>--sub-langs "en,it,fr"--convert-subs srtFind the sub and run the stripper with --in-place. The script writes the
transcript alongside the source (stripping a trailing BCP-47 language tag
like .en, .pt-BR, .zh-Hant from the filename), deletes the subtitle,
and prints the new path. Use find rather than a glob — zsh errors on
unmatched patterns (e.g. no .srt present):
SUB=$(find <yt-dlp-download-folder> -maxdepth 1 \( -name '*.vtt' -o -name '*.srt' \) | head -n1)
OUT=$(node scripts/strip-transcript.mjs --in-place "$SUB")
The script auto-detects VTT vs SRT, removes cue numbers, timestamp lines,
inline timing tags (<00:00:01.000>), and dedupes the rolling lines that
YouTube auto-captions emit. When reading from stdin it defaults to VTT; for
SRT from stdin pass --format srt.
If the user explicitly asked for the raw subtitle file (e.g. for a video
editor), drop --in-place and redirect stdout to a .txt yourself so the
.vtt/.srt is preserved.
Show the user the path in $OUT and offer to summarize the transcript.
--cookies-from-browser <browser>
(e.g. safari, chrome, firefox) to use the user's logged-in session--sleep-requests 1 --sleep-interval 5 --max-sleep-interval 15"<url>" to avoid
& query-string surprisestools
Create commits and pull requests for current git work. Use when the user wants to commit changes, open or refresh a pull request.
tools
Fetches authoritative, current, version-specific documentation and official code examples via Context7 for a named external library, framework, SDK, CLI, or cloud product. Use when the user needs exact API behavior, setup, configuration, integration, migration, or version-specific guidance rather than general web research or real-world repository patterns.
development
Review pull requests, diffs, and code changes across behavior, contracts, tests, maintainability, and documentation. Use when the user asks for review of a PR, patch, diff, commit, or code change.
tools
Manage stickies as markdown files — create new, read, list, or delete. Use when the user mentions "sticky", "stickies", or wants to take a quick note or save a reminder.