Skip to content
Video & Audio
Skill

/video-download

Download video and audio from YouTube and 1000+ sites using yt-dlp. No API keys needed. Use when: (1) Downloading a video from YouTube or other sites, (2) Extracting audio from a video URL, (3) Downloading subtitles/captions from a video, (4) Getting video metadata without

From plugin
openmontage
80k49 skills4 commands

Claude Code

$ npx -y skills add openmontageinc/openmontage --skill video-download --agent claude-code

SKILL.md

video-download.SKILL.md
name: video-download
description: |
  Download video and audio from YouTube and 1000+ sites using yt-dlp. No API keys needed.
  Use when: (1) Downloading a video from YouTube or other sites, (2) Extracting audio from a video URL,
  (3) Downloading subtitles/captions from a video, (4) Getting video metadata without downloading.

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

| Quality | Format 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:

| Variable | Description | |----------|-------------| | `%(title)s` | Video title | | `%(ext)s` | File extension | | `%(id)s` | Video ID | | `%(uploader)s` | Channel/uploader name | | `%(upload_date)s` | Upload date (YYYYMMDD) | | `%(duration)s` | Duration in seconds | | `%(resolution)s` | Video 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.
Read more
@calesthio
Ships withopenmontage

World's first open-source, agentic video production system. 12 production pipelines, 100+ tools, 700+ agent skill and production-knowledge files. Turn your AI coding assistant into a full video production studio.

Stars on GitHub

Momentum

stars in total
80.1k
Star history of calesthio/OpenMontage on GitHub, a chart by star-history.com

Other skills on openmontage.

acestep

acestep

AI music generation with ACE-Step 1.5 — background music, vocal tracks, covers, stem extraction for video production. Use when…

agents

agents

Build voice AI agents with ElevenLabs. Use when creating voice assistants, customer service bots, interactive voice characters,…

ai-video-gen

ai-video-gen

Generate AI videos from text prompts using multiple provider gateways. Use when: (1) Generating videos from text descriptions,…

avatar-video

avatar-video

Create AI avatar videos with precise control over avatars, voices, scripts, scenes, and backgrounds using HeyGen's v2 API. Use…

azure-speech-to-text

azure-speech-to-text

Transcribe audio to text using Azure AI Speech (Fast Transcription REST API). Use when converting audio/video to text, generating…

More skills from other plugins.

captions-overlay

captions-overlay

Overlay doctrine for captions in HyperFrames videos — the caption MODEL (drop / rail / embed) and the rule that captions are an…

@heygen-com@heygen-comInstall Skill
seedance-antislop

seedance-antislop

This skill should be used when a Seedance 2.0 prompt contains generic AI filler, hollow superlatives, vague cinematic language,…

@emily2040@emily2040Install Skill

Questions about video-download.

Which coding agents can use video-download?
video-download installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.