OpenMontage video-download
install
source · Clone the upstream repo
git clone https://github.com/calesthio/OpenMontage
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/calesthio/OpenMontage "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/video-download" ~/.claude/skills/calesthio-openmontage-video-download-350159 && rm -rf "$T"
manifest:
.claude/skills/video-download/SKILL.mdsource content
video-download
Download video and audio from URLs using yt-dlp directly. No wrapper scripts needed.
Prerequisites
- yt-dlp:
orbrew install yt-dlppip install yt-dlp - ffmpeg:
orbrew install ffmpeg
(required for merging video+audio streams)apt install ffmpeg
Update yt-dlp periodically to keep up with site changes:
yt-dlp -U or pip install -U yt-dlp.
Commands
Download best quality
yt-dlp "URL" -o "%(title)s.%(ext)s" --merge-output-format mp4
Download specific resolution
# 720p yt-dlp "URL" -f "bestvideo[height<=720]+bestaudio/best[height<=720]" --merge-output-format mp4 # 1080p yt-dlp "URL" -f "bestvideo[height<=1080]+bestaudio/best[height<=1080]" --merge-output-format mp4
Audio only
yt-dlp "URL" -x --audio-format mp3 --audio-quality 0
Download subtitles
# Download video with English subtitles yt-dlp "URL" --write-subs --sub-langs en --merge-output-format mp4 # Download video with multiple subtitle languages yt-dlp "URL" --write-subs --sub-langs "en,es,fr" --merge-output-format mp4 # Download only subtitles (no video) yt-dlp "URL" --write-subs --sub-langs en --skip-download
Get metadata (no download)
yt-dlp "URL" --dump-json --no-download
List available formats
yt-dlp "URL" -F
Specify output directory
yt-dlp "URL" -o "./downloads/%(title)s.%(ext)s" --merge-output-format mp4
Quality Presets
| Quality | Format flag |
|---|---|
| Best | (default) |
| 1080p | |
| 720p | |
| 480p | |
| Worst | |
Output Template Variables
Common variables for
-o templates:
| Variable | Description |
|---|---|
| Video title |
| File extension |
| Video ID |
| Channel/uploader name |
| Upload date (YYYYMMDD) |
| Duration in seconds |
| Video resolution |
Tips
- Always use
to avoid ending up with--merge-output-format mp4
or.webm
files..mkv - Use
with--no-download
for metadata-only queries -- no files written to disk.--dump-json - If a download fails with HTTP errors, update yt-dlp first (
).yt-dlp -U - Use
to save bandwidth when full resolution is not needed.-f "bestvideo[height<=720]+bestaudio" - yt-dlp automatically handles rate limiting and retries.
- The
output includes--dump-json
,title
,duration
,uploader
,view_count
,description
,formats
, and much more.subtitles
Troubleshooting
- "yt-dlp: command not found": Install it (
) and ensure your PATH includes pip's bin directory.pip install yt-dlp - "ffmpeg: command not found": Install ffmpeg. Without it, downloads fail when video and audio are separate streams (common on YouTube for HD).
- Downloads fail or return errors: Run
to update. Sites change frequently and yt-dlp ships fixes regularly.yt-dlp -U