
Youtube Downloader
- 4.7k installs
- 71.1k repo stars
- Updated July 24, 2026
- composiohq/awesome-claude-skills
youtube-downloader is an agent skill for Download YouTube videos with customizable quality and format options. Use this skill when the user asks to download, sav
About
The youtube-downloader skill download YouTube videos with customizable quality and format options. Use this skill when the user asks to download, save, or grab YouTube videos. Supports various quality settings (best, 1080p, 720p, 480p, 360p), multiple formats (mp4, webm, mkv), and audio-only downloads as MP3.. YouTube Video Downloader Download YouTube videos with full control over quality and format settings. Quick Start The simplest way to download a video: This downloads the video in best available quality as MP4 to /mnt/user-data/outputs/ . Options Quality Settings Use -q or --quality to specify video quality: - best (default): Highest quality available - 1080p : Full HD - 720p : HD - 480p : Standard definition - 360p : Lower quality - worst : Lowest quality available Example: Format Options Use -f or --format to specify output format (video downloads only): - mp4 (default): Most compatible - webm : Modern format - mkv : Matroska container Example: Audio Only Use -a or --audio-only to download only audio as MP3: Custom Output Directory Use -o
- Download YouTube videos with customizable quality and format options. Use this skill when the user asks to download, sav
- `best` (default): Highest quality available
- `1080p`: Full HD
- `720p`: HD
- `480p`: Standard definition
Youtube Downloader by the numbers
- 4,706 all-time installs (skills.sh)
- +160 installs in the week ending Jul 28, 2026 (Skillselion tracking)
- Ranked #104 of 1,340 Generative Media skills by installs in the Skillselion catalog
- Security screen: MEDIUM risk (skills.sh audit)
- Data as of Jul 28, 2026 (Skillselion catalog sync)
youtube-downloader capabilities & compatibility
- Capabilities
- download youtube videos with customizable qualit · `best` (default): highest quality available · `1080p`: full hd
What youtube-downloader says it does
Download YouTube videos with customizable quality and format options. Use this skill when the user asks to download, save, or grab YouTube videos. Supports various quality settings
npx skills add https://github.com/composiohq/awesome-claude-skills --skill youtube-downloaderAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 4.7k |
|---|---|
| repo stars | ★ 71.1k |
| Security audit | 1 / 3 scanners passed |
| Last updated | July 24, 2026 |
| Repository | composiohq/awesome-claude-skills ↗ |
How do I run youtube-downloader tasks with correct setup and documented commands?
Download YouTube videos with customizable quality and format options. Use this skill when the user asks to download, save, or grab YouTube videos. Supports various quality settings (best, 1080p, 720p,
Who is it for?
Developers automating youtube downloader via agent-guided SKILL.md workflows.
Skip if: Skip when unrelated tooling already covers the task without this skill's documented flow.
When should I use this skill?
Download YouTube videos with customizable quality and format options. Use this skill when the user asks to download, save, or grab YouTube videos. Supports various quality settings (best, 1080p, 720p,
What you get
Repeatable youtube-downloader workflows with grounded commands and expected outputs.
- Downloaded MP4 or webm files
- MP3 audio extracts
By the numbers
- 5 documented quality settings: best, 1080p, 720p, 480p, 360p
- 3 video formats plus MP3 audio-only option
- Bundled scripts/download_video.py Python downloader
Files
YouTube Video Downloader
Download YouTube videos with full control over quality and format settings.
Quick Start
The simplest way to download a video:
python scripts/download_video.py "https://www.youtube.com/watch?v=VIDEO_ID"This downloads the video in best available quality as MP4 to /mnt/user-data/outputs/.
Options
Quality Settings
Use -q or --quality to specify video quality:
best(default): Highest quality available1080p: Full HD720p: HD480p: Standard definition360p: Lower qualityworst: Lowest quality available
Example:
python scripts/download_video.py "URL" -q 720pFormat Options
Use -f or --format to specify output format (video downloads only):
mp4(default): Most compatiblewebm: Modern formatmkv: Matroska container
Example:
python scripts/download_video.py "URL" -f webmAudio Only
Use -a or --audio-only to download only audio as MP3:
python scripts/download_video.py "URL" -aCustom Output Directory
Use -o or --output to specify a different output directory:
python scripts/download_video.py "URL" -o /path/to/directoryComplete Examples
1. Download video in 1080p as MP4:
python scripts/download_video.py "https://www.youtube.com/watch?v=dQw4w9WgXcQ" -q 1080p2. Download audio only as MP3:
python scripts/download_video.py "https://www.youtube.com/watch?v=dQw4w9WgXcQ" -a3. Download in 720p as WebM to custom directory:
python scripts/download_video.py "https://www.youtube.com/watch?v=dQw4w9WgXcQ" -q 720p -f webm -o /custom/pathHow It Works
The skill uses yt-dlp, a robust YouTube downloader that:
- Automatically installs itself if not present
- Fetches video information before downloading
- Selects the best available streams matching your criteria
- Merges video and audio streams when needed
- Supports a wide range of YouTube video formats
Important Notes
- Downloads are saved to
/mnt/user-data/outputs/by default - Video filename is automatically generated from the video title
- The script handles installation of yt-dlp automatically
- Only single videos are downloaded (playlists are skipped by default)
- Higher quality videos may take longer to download and use more disk space
#!/usr/bin/env python3
"""
YouTube Video Downloader
Downloads videos from YouTube with customizable quality and format options.
"""
import argparse
import sys
import subprocess
import json
def check_yt_dlp():
"""Check if yt-dlp is installed, install if not."""
try:
subprocess.run(["yt-dlp", "--version"], capture_output=True, check=True)
except (subprocess.CalledProcessError, FileNotFoundError):
print("yt-dlp not found. Installing...")
subprocess.run([sys.executable, "-m", "pip", "install", "--break-system-packages", "yt-dlp"], check=True)
def get_video_info(url):
"""Get information about the video without downloading."""
result = subprocess.run(
["yt-dlp", "--dump-json", "--no-playlist", url],
capture_output=True,
text=True,
check=True
)
return json.loads(result.stdout)
def download_video(url, output_path="/mnt/user-data/outputs", quality="best", format_type="mp4", audio_only=False):
"""
Download a YouTube video.
Args:
url: YouTube video URL
output_path: Directory to save the video
quality: Quality setting (best, 1080p, 720p, 480p, 360p, worst)
format_type: Output format (mp4, webm, mkv, etc.)
audio_only: Download only audio (mp3)
"""
check_yt_dlp()
# Build command
cmd = ["yt-dlp"]
if audio_only:
cmd.extend([
"-x", # Extract audio
"--audio-format", "mp3",
"--audio-quality", "0", # Best quality
])
else:
# Video quality settings
if quality == "best":
format_string = "bestvideo+bestaudio/best"
elif quality == "worst":
format_string = "worstvideo+worstaudio/worst"
else:
# Specific resolution (e.g., 1080p, 720p)
height = quality.replace("p", "")
format_string = f"bestvideo[height<={height}]+bestaudio/best[height<={height}]"
cmd.extend([
"-f", format_string,
"--merge-output-format", format_type,
])
# Output template
cmd.extend([
"-o", f"{output_path}/%(title)s.%(ext)s",
"--no-playlist", # Don't download playlists by default
])
cmd.append(url)
print(f"Downloading from: {url}")
print(f"Quality: {quality}")
print(f"Format: {'mp3 (audio only)' if audio_only else format_type}")
print(f"Output: {output_path}\n")
try:
# Get video info first
info = get_video_info(url)
print(f"Title: {info.get('title', 'Unknown')}")
print(f"Duration: {info.get('duration', 0) // 60}:{info.get('duration', 0) % 60:02d}")
print(f"Uploader: {info.get('uploader', 'Unknown')}\n")
# Download the video
subprocess.run(cmd, check=True)
print(f"\n✅ Download complete!")
return True
except subprocess.CalledProcessError as e:
print(f"\n❌ Error downloading video: {e}")
return False
except Exception as e:
print(f"\n❌ Error: {e}")
return False
def main():
parser = argparse.ArgumentParser(
description="Download YouTube videos with customizable quality and format"
)
parser.add_argument("url", help="YouTube video URL")
parser.add_argument(
"-o", "--output",
default="/mnt/user-data/outputs",
help="Output directory (default: /mnt/user-data/outputs)"
)
parser.add_argument(
"-q", "--quality",
default="best",
choices=["best", "1080p", "720p", "480p", "360p", "worst"],
help="Video quality (default: best)"
)
parser.add_argument(
"-f", "--format",
default="mp4",
choices=["mp4", "webm", "mkv"],
help="Video format (default: mp4)"
)
parser.add_argument(
"-a", "--audio-only",
action="store_true",
help="Download only audio as MP3"
)
args = parser.parse_args()
success = download_video(
url=args.url,
output_path=args.output,
quality=args.quality,
format_type=args.format,
audio_only=args.audio_only
)
sys.exit(0 if success else 1)
if __name__ == "__main__":
main()Related skills
How it compares
Use youtube-downloader for agent-wrapped YouTube fetches; invoke yt-dlp directly when customizing exotic post-processing chains.
FAQ
Who is youtube-downloader for?
Developers using agents to execute youtube downloader workflows from SKILL.md.
When should I use youtube-downloader?
Download YouTube videos with customizable quality and format options. Use this skill when the user asks to download, save, or grab YouTube videos. Supports various quality settings
Is youtube-downloader safe to install?
Review the Security Audits panel on this page before installing in production.