Open-skills using-youtube-download
Download YouTube video or audio with yt-dlp and ffmpeg at highest available quality.
install
source · Clone the upstream repo
git clone https://github.com/besoeasy/open-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/besoeasy/open-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/using-youtube-download" ~/.claude/skills/besoeasy-open-skills-using-youtube-download && rm -rf "$T"
manifest:
skills/using-youtube-download/SKILL.mdsource content
YouTube Download Skill
Teach how to download YouTube videos as video files and MP3 audio, defaulting to highest quality.
Prerequisites
(recommended fork of youtube-dl): https://github.com/yt-dlp/yt-dlpyt-dlp
(for merging/conversion)ffmpeg
Install (Linux/macOS):
python3 -m pip install -U yt-dlp # or sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp && sudo chmod a+rx /usr/local/bin/yt-dlp # ffmpeg sudo apt install ffmpeg # Debian/Ubuntu brew install ffmpeg # macOS (Homebrew)
Windows: use the yt-dlp.exe release and install ffmpeg for Windows.
Download highest-quality video (merged MP4)
This downloads the best video and best audio and merges them into an MP4 (default highest quality).
yt-dlp -f "bestvideo+bestaudio/best" --merge-output-format mp4 -o "%(title)s.%(ext)s" <VIDEO_URL>
Notes:
prefers separate best video and audio streams and falls back to the single best format.-f "bestvideo+bestaudio/best"
ensures a widely compatible container.--merge-output-format mp4- Output template
names the file by video title.%(title)s.%(ext)s
To force a max resolution (e.g., 1080p):
yt-dlp -f "bestvideo[height<=1080]+bestaudio/best" --merge-output-format mp4 -o "%(title)s.%(ext)s" <VIDEO_URL>
Download as MP3 (highest audio quality)
Extract and convert the best available audio to MP3 (highest quality):
yt-dlp -x --audio-format mp3 --audio-quality 0 -o "%(title)s.%(ext)s" <VIDEO_URL>
Options:
/-x
extracts audio.--extract-audio
converts to MP3.--audio-format mp3
tells ffmpeg to use best VBR quality.--audio-quality 0
If you prefer 320kbps constant bitrate MP3:
yt-dlp -x --audio-format mp3 --postprocessor-args "-b:a 320k" -o "%(title)s.%(ext)s" <VIDEO_URL>
Download a playlist
Download an entire playlist (preserve order):
yt-dlp -f "bestvideo+bestaudio/best" --merge-output-format mp4 -o "%(playlist_index)s - %(title)s.%(ext)s" <PLAYLIST_URL>
To download only a single video from a playlist use
--no-playlist.
Advanced examples
- Download best audio only (no conversion):
yt-dlp -f bestaudio -o "%(title)s.%(ext)s" <VIDEO_URL>
- Download a clip by time range (requires ffmpeg post-processing):
yt-dlp -f bestvideo+bestaudio --external-downloader ffmpeg --external-downloader-args "-ss 00:01:00 -to 00:02:00" -o "%(title)s.%(ext)s" <VIDEO_URL>
Windows PowerShell examples
. # Highest-quality video yt-dlp.exe -f "bestvideo+bestaudio/best" --merge-output-format mp4 -o "%(title)s.%(ext)s" https://www.youtube.com/watch?v=... # MP3 yt-dlp.exe -x --audio-format mp3 --audio-quality 0 -o "%(title)s.%(ext)s" https://www.youtube.com/watch?v=...
Notes & best practices
- Respect YouTube's terms of service and copyright laws. Only download content you have rights to or permission to download.
- Use
to avoid replacing existing files.--no-overwrites - Use
to avoid re-downloading previously downloaded videos when processing playlists or channels.--download-archive archive.txt - Use
for scripting and check exit codes for success.--quiet - Cache and limit requests to avoid rate limits.
This skill covers common
yt-dlp patterns to download highest-quality video and audio (MP3). For automation, combine these commands into scripts and use environment variables for URLs and output directories.