yt-dlp Video Downloader
When To Use
- Downloading a public video or audio asset from a supported site
- Extracting audio, subtitles, or metadata from a media URL
- Saving media locally when the user provides a concrete URL
Do Not Use
- DRM-protected streams you cannot legally or technically access
- Private content that requires credentials the user did not provide
- Browser automation tasks that need site interaction beyond yt-dlp
Workflow
- Check if
$ARGUMENTSprovides a URL. If empty, ask the user for a video URL. - Determine the user's requirements:
- video vs audio
- target quality / format
- subtitles or metadata needs
- output directory if the user gave one
- Check whether FFmpeg is installed by running
ffmpeg -version.- If FFmpeg is missing, stop and show installation guidance instead of starting a partial download flow.
- Read
$SKILL_DIR/references/COMMANDS.mdfor format selection syntax and command templates. - Read
$SKILL_DIR/references/TROUBLESHOOTING.mdfor site-specific rules such as cookies, rate limits, or proxy requirements. - Resolve the output location:
- use the user-provided path when present
- otherwise default to the user's downloads folder (
~/Downloadsor%USERPROFILE%/Downloads)
- Execute the
yt-dlpcommand with a clear output template in the resolved directory. - Verify that the expected file exists locally after download.
- If the command fails, match the error against
TROUBLESHOOTING.md, apply one targeted retry, and stop after that if it still fails.
Output
- The executed command
- Brief explanation of the parameters used
- Location of the downloaded file
Failure Handling
- If the site requires cookies or login, say so explicitly and point to the troubleshooting reference.
- If subtitles are unavailable, report that clearly instead of implying a partial success was complete.
- If only audio was requested, say what container/codec was produced.
- If the retry also fails, include the error category and the next likely fix.
Final Checklist
- URL and requested mode match the executed command
- Output path is explicit
- Download result was actually verified on disk