agents/skills/yt-dlp/SKILL.md
Download videos, extract audio, and get transcripts from YouTube and 1000+ sites. Use when asked to download a video, extract audio, get a transcript, rip subtitles, or fetch media. Triggers on "download video", "yt-dlp", "extract audio", "YouTube download", "get transcript", "subtitles", or any media download request.
npx skillsauth add juanibiapina/dotfiles 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.
Video/audio downloader supporting YouTube and 1000+ sites.
Extract transcript text from YouTube videos.
# Get auto-generated transcript (most YouTube videos have this)
yt-dlp --write-auto-subs --sub-lang en --convert-subs srt --skip-download -o "transcript" <url>
cat transcript.en.srt | sed '/^[0-9]*$/d; /^$/d; /-->/d' | awk '!seen[$0]++'
# Get manual/uploaded subtitles (higher quality when available)
yt-dlp --write-subs --sub-lang en --convert-subs srt --skip-download -o "transcript" <url>
cat transcript.en.srt | sed '/^[0-9]*$/d; /^$/d; /-->/d' | awk '!seen[$0]++'
# List available subtitle languages
yt-dlp --list-subs <url>
# Get subtitles in a specific language
yt-dlp --write-auto-subs --sub-lang es --convert-subs srt --skip-download -o "transcript" <url>
# Keep timestamps (raw SRT)
yt-dlp --write-auto-subs --sub-lang en --convert-subs srt --skip-download -o "transcript" <url>
cat transcript.en.srt
Tip: Use --write-auto-subs for auto-generated captions (available on most YouTube videos). Use --write-subs for human-uploaded subtitles (fewer videos, but higher quality).
# Best quality (default)
yt-dlp <url>
# Specific quality
yt-dlp -f "bestvideo[height<=720]+bestaudio/best[height<=720]" <url>
yt-dlp -f "bestvideo[height<=1080]+bestaudio/best[height<=1080]" <url>
# List available formats
yt-dlp -F <url>
# Pick a specific format by ID
yt-dlp -f 137+140 <url>
# Output to specific path
yt-dlp -o "/path/to/%(title)s.%(ext)s" <url>
# Extract audio as mp3
yt-dlp -x --audio-format mp3 <url>
# Best audio quality
yt-dlp -x --audio-format mp3 --audio-quality 0 <url>
# Other formats: m4a, wav, flac, opus
yt-dlp -x --audio-format m4a <url>
# Download entire playlist
yt-dlp <playlist-url>
# Download specific items (1-indexed)
yt-dlp --playlist-items 1,3,5 <playlist-url>
yt-dlp --playlist-items 1:5 <playlist-url>
# Extract audio from playlist
yt-dlp -x --audio-format mp3 <playlist-url>
# List playlist contents without downloading
yt-dlp --flat-playlist --print "%(title)s %(url)s" <playlist-url>
# Print title
yt-dlp --print title <url>
# Print metadata as JSON
yt-dlp --dump-json <url>
# Print duration, view count, etc.
yt-dlp --print "%(title)s | %(duration>%H:%M:%S)s | %(view_count)s views" <url>
Common placeholders for -o:
%(title)s # Video title
%(id)s # Video ID
%(ext)s # File extension
%(upload_date)s # Upload date (YYYYMMDD)
%(channel)s # Channel name
%(playlist)s # Playlist name
%(playlist_index)s # Position in playlist
Example: yt-dlp -o "%(channel)s/%(title)s.%(ext)s" <url>
--no-playlist to download a single video from a playlist URL--cookies-from-browser chrome for age-restricted or private content--limit-rate 1M to throttle download speed--download-archive archive.txt to skip already-downloaded videosdevelopment
My end-to-end development flow for any change. Use when fixing a bug, building a feature, or shipping any code change from understanding through production verification.
development
Creating plans. Use it for planning code changes.
tools
Send a message to another running pi session via its Unix socket. Use when the user wants to hand off context to another session, continue a conversation elsewhere, or notify another pi instance.
data-ai
Use when adding, installing, removing, or managing agent skills in this dotfiles repo. Triggers on "add skill", "install skill", "remove skill", "delete skill", "new skill", "manage skills", or any skill management task.