
Youtube Downloader
Download YouTube videos or audio with chosen quality and format when you need source media for clips, transcripts, or offline review.
Overview
youtube-downloader is an agent skill for the Grow phase that downloads YouTube videos or MP3 audio with explicit quality and format flags via a Python script.
Install
npx skills add https://github.com/composiohq/awesome-claude-skills --skill youtube-downloaderWhat is this skill?
- CLI wrapper `download_video.py` with URL as the only required argument
- Quality presets: best, 1080p, 720p, 480p, 360p, worst
- Video formats: mp4 (default), webm, mkv
- Audio-only flag `-a` exports MP3 without video
- Custom output directory via `-o` (default path documented in skill)
- 6 quality presets including best and worst
- 3 video container formats plus audio-only MP3
Adoption & trust: 3.5k installs on skills.sh; 63.7k GitHub stars; 1/3 security scanners passed (skills.sh audits); trending (+100% hot-view momentum).
What problem does it solve?
You have a YouTube URL and need a local mp4, webm, mkv, or MP3 file without re-deriving downloader CLI options every session.
Who is it for?
Solo builders archiving talks, demos, or competitor videos for content pipelines or offline note-taking.
Skip if: Teams that need licensed stock media, bulk channel mirroring, or workflows where downloading may violate YouTube ToS or rights—you should confirm rights and policy first.
When should I use this skill?
User asks to download, save, or grab YouTube videos with customizable quality, format, or audio-only output.
What do I get? / Deliverables
After the skill runs, the agent executes `download_video.py` with the right `-q`, `-f`, `-a`, and `-o` options and leaves a saved media file ready for editing or analysis.
- Local video file (mp4, webm, or mkv)
- Optional MP3 audio extract
Recommended Skills
Journey fit
Content and distribution work in Grow often starts with grabbing reference or source footage you do not own on-platform. Content subphase covers repurposing and asset prep; local downloads are a common step before editing or summarizing.
How it compares
Use instead of asking the agent to improvise yt-dlp one-liners without documented quality and format presets.
Common Questions / FAQ
Who is youtube-downloader for?
Indie builders and content-focused solos who want their coding agent to save YouTube media with predictable quality and format options.
When should I use youtube-downloader?
Use it in Grow when preparing content assets, or during Idea research when you need offline reference footage; invoke whenever the user explicitly asks to download, save, or grab a YouTube video or audio track.
Is youtube-downloader safe to install?
It runs shell Python against public video URLs and writes to disk—review the Security Audits panel on this page and only download content you are allowed to store.
SKILL.md
READMESKILL.md - Youtube Downloader
# YouTube Video Downloader Download YouTube videos with full control over quality and format settings. ## Quick Start The simplest way to download a video: ```bash 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 available - `1080p`: Full HD - `720p`: HD - `480p`: Standard definition - `360p`: Lower quality - `worst`: Lowest quality available Example: ```bash python scripts/download_video.py "URL" -q 720p ``` ### Format Options Use `-f` or `--format` to specify output format (video downloads only): - `mp4` (default): Most compatible - `webm`: Modern format - `mkv`: Matroska container Example: ```bash python scripts/download_video.py "URL" -f webm ``` ### Audio Only Use `-a` or `--audio-only` to download only audio as MP3: ```bash python scripts/download_video.py "URL" -a ``` ### Custom Output Directory Use `-o` or `--output` to specify a different output directory: ```bash python scripts/download_video.py "URL" -o /path/to/directory ``` ## Complete Examples 1. Download video in 1080p as MP4: ```bash python scripts/download_video.py "https://www.youtube.com/watch?v=dQw4w9WgXcQ" -q 1080p ``` 2. Download audio only as MP3: ```bash python scripts/download_video.py "https://www.youtube.com/watch?v=dQw4w9WgXcQ" -a ``` 3. Download in 720p as WebM to custom directory: ```bash python scripts/download_video.py "https://www.youtube.com/watch?v=dQw4w9WgXcQ" -q 720p -f webm -o /custom/path ``` ## How 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()