mcpField
V
video-download

video-download

github.com/calesthioCreative & media72.7k1.2k installsUpdated today
Repository

About video-download

video-download is a skill for downloading video and audio from URLs with yt-dlp. It is intended for command-line media downloads and covers quality selection, subtitles, metadata, and output paths.

Key features

  1. 01Download video by quality
  2. 02Extract audio as MP3
  3. 03Download subtitles or subtitles only
  4. 04Inspect metadata and available formats
  5. 05Set filenames and output directories

Use cases

  1. 01Save URL videos for offline viewing
  2. 02Extract MP3 audio from a video
  3. 03Download subtitles for reference
  4. 04Check video details and formats before downloading

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/calesthio/openmontage --skill video-download

After installing, type/video-downloadin Claude Code to confirm it loaded.

Details

From the project README

video-download

Download video and audio from URLs using yt-dlp directly. No wrapper scripts needed.

Prerequisites

  • yt-dlp: brew install yt-dlp or pip install yt-dlp
  • ffmpeg: brew install ffmpeg or apt install ffmpeg (required for merging video+audio streams)

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

QualityFormat flag
Best-f "bestvideo+bestaudio/best" (default)
1080p-f "bestvideo[height<=1080]+bestaudio/best[height<=1080]"
720p-f "bestvideo[height<=720]+bestaudio/best[height<=720]"
480p-f "bestvideo[height<=480]+bestaudio/best[height<=480]"
Worst-f "worstvideo+worstaudio/worst"

Output Template Variables

Common variables for -o templates:

VariableDescription
%(title)sVideo title
%(ext)sFile extension
%(id)sVideo ID
%(uploader)sChannel/uploader name
%(upload_date)sUpload date (YYYYMMDD)
%(duration)sDuration in seconds
%(resolution)sVideo resolution

Tips

  • Always use --merge-output-format mp4 to avoid ending up with .webm or .mkv files.
  • Use --no-download with --dump-json for metadata-only queries -- no files written to disk.
  • If a download fails with HTTP errors, update yt-dlp first (yt-dlp -U).
  • Use -f "bestvideo[height<=720]+bestaudio" to save bandwidth when full resolution is not needed.
  • yt-dlp automatically handles rate limiting and retries.
  • The --dump-json output includes title, duration, uploader, view_count, description, formats, subtitles, and much more.

Troubleshooting

  • "yt-dlp: command not found": Install it (pip install yt-dlp) and ensure your PATH includes pip's bin directory.
  • "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 yt-dlp -U to update. Sites change frequently and yt-dlp ships fixes regularly.

Comments

Markdown supported