New to Claude Skills? Learn how to install them →

calesthio on GitHub

Video Download

Free

Download videos and audio from YouTube and more effortlessly.

Get this skill

Free · Opens the source repo

What Video Download does

The Video Download skill enables users to download video and audio content from YouTube and over 1000 other sites using yt-dlp, a powerful command-line tool. This skill is particularly useful for developers and designers looking to incorporate multimedia into their projects or for anyone wanting to save content for offline use. With no API keys required, users can quickly access a variety of features that facilitate downloading, including options for specific resolutions, audio extraction, and subtitle downloads.

To utilize the skill, users must ensure they have yt-dlp and ffmpeg installed on their systems. The skill provides straightforward command examples for downloading videos in the best quality, extracting audio in various formats, and even obtaining metadata without downloading the actual video. This flexibility allows users to customize their downloads based on their specific needs, whether they are looking to save bandwidth or require certain subtitle languages.

Additionally, the skill includes commands for listing available formats and specifying output directories, making it easy to organize downloaded content. Users are encouraged to keep yt-dlp updated to avoid issues with changing site structures, ensuring a smooth downloading experience. The skill is designed for both casual users and developers who need a reliable tool for managing video content efficiently.

When to use it

Use this skill when you need to download videos or audio from YouTube or other supported sites, extract audio, or obtain subtitles.

When not to use it

This skill may not be suitable if you require a graphical user interface for downloading videos or if you need advanced features not supported by yt-dlp.

What you can build with it

Downloading a YouTube Video

Use the skill to download a YouTube video in the best quality with a simple command.

Extracting Audio for a Podcast

Quickly extract audio from a video URL to create content for a podcast or audio project.

Obtaining Video Metadata

Retrieve video metadata without downloading the video, useful for cataloging or analysis.

How to install Video Download

View source

1. Install with the skills CLI

npx skills add calesthio/openmontage/video-download --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by calesthio

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.

Frequently asked questions about Video Download

Similar skills