media-downloader
Media Downloader
Download video/audio from 1500+ websites using yt-dlp. Supports format selection, subtitles, playlists, and custom output naming.
Quick Start
# Basic download (best quality)
yt-dlp "URL"
# Specific resolution
yt-dlp -f "bestvideo[height<=1080]+bestaudio/best[height<=1080]" "URL"
# With subtitles
yt-dlp --write-subs --sub-langs "en,zh" "URL"
# Audio only
yt-dlp -f "bestaudio" "URL"
Format Selection
Resolution Presets
| Request | Command |
|---|---|
| Best quality | -f "bestvideo+bestaudio/best" |
| 4K | -f "bestvideo[height<=2160]+bestaudio/best" |
| 1080p | -f "bestvideo[height<=1080]+bestaudio/best" |
| 720p | -f "bestvideo[height<=720]+bestaudio/best" |
| 480p | -f "bestvideo[height<=480]+bestaudio/best" |
List Available Formats
yt-dlp -F "URL" # Show all formats with codes
Advanced Format Selection
# Prefer MP4 container
yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best" "URL"
# Specific format code (from -F output)
yt-dlp -f 137+140 "URL"
# Merge to specific container
yt-dlp --merge-output-format mkv "URL"
Subtitles
Download Subtitles
# Manual subtitles (human-created)
yt-dlp --write-subs --sub-langs "en,zh,ja" "URL"
# Auto-generated subtitles
yt-dlp --write-auto-subs --sub-langs "en" "URL"
# Both manual and auto
yt-dlp --write-subs --write-auto-subs --sub-langs "en,zh" "URL"
# Embed subtitles in video (MP4/MKV/WebM)
yt-dlp --write-subs --embed-subs "URL"
List Available Subtitles
yt-dlp --list-subs "URL"
Subtitle Format
# Convert to SRT
yt-dlp --write-subs --sub-format srt "URL"
# Available: srt, ass, vtt, lrc
Output Naming
Template Variables
| Variable | Description | Example |
|---|---|---|
%(title)s |
Video title | My Video |
%(id)s |
Video ID | dQw4w9WgXcQ |
%(ext)s |
File extension | mp4 |
%(upload_date)s |
Upload date | 20231215 |
%(uploader)s |
Channel name | Rick Astley |
%(playlist)s |
Playlist name | Best Songs |
%(playlist_index)s |
Position in playlist | 01 |
%(resolution)s |
Video resolution | 1920x1080 |
Common Patterns
# Default: title + extension
yt-dlp -o "%(title)s.%(ext)s" "URL"
# Date prefix
yt-dlp -o "%(upload_date)s - %(title)s.%(ext)s" "URL"
# Organized by uploader
yt-dlp -o "%(uploader)s/%(title)s.%(ext)s" "URL"
# Playlist with numbering
yt-dlp -o "%(playlist)s/%(playlist_index)02d - %(title)s.%(ext)s" "URL"
# Sanitize title (remove special chars)
yt-dlp -o "%(title).100B.%(ext)s" "URL" # Limit to 100 bytes
Playlist Handling
# Download entire playlist
yt-dlp "PLAYLIST_URL"
# Only video (not playlist)
yt-dlp --no-playlist "URL"
# Specific items (1-indexed)
yt-dlp -I 1:5 "PLAYLIST_URL" # First 5
yt-dlp -I 1,3,5 "PLAYLIST_URL" # Items 1, 3, 5
yt-dlp -I -3: "PLAYLIST_URL" # Last 3
# Skip already downloaded
yt-dlp --download-archive downloaded.txt "PLAYLIST_URL"
Platform-Specific Notes
YouTube
- Supports: videos, playlists, channels, shorts, live streams
- Cookies may be needed for age-restricted/member content
Bilibili
- Use
--cookies-from-browserfor premium content - Subtitles:
--write-subs --sub-langs "zh-Hans"
TikTok / Douyin
- Direct URL download works
- Watermark may be present in some cases
Twitter/X
- Supports video tweets and spaces
- Use
--cookies-from-browserfor private content
- Stories require login
- Use
--cookies-from-browser firefoxor--cookies cookies.txt
Authentication
# Browser cookies (recommended)
yt-dlp --cookies-from-browser firefox "URL"
yt-dlp --cookies-from-browser chrome "URL"
# Cookie file
yt-dlp --cookies cookies.txt "URL"
# Username/password (limited support)
yt-dlp -u USERNAME -p PASSWORD "URL"
Troubleshooting
Common Issues
| Issue | Solution |
|---|---|
| "Video unavailable" | Try --cookies-from-browser |
| Slow download | Add --concurrent-fragments 4 |
| Format merge fails | Install ffmpeg |
| Geo-blocked | Use --geo-bypass or proxy |
Update yt-dlp
yt-dlp -U # Update to latest stable
Complete Examples
Download YouTube video in 1080p with Chinese subtitles:
yt-dlp -f "bestvideo[height<=1080]+bestaudio/best" \
--write-subs --sub-langs "zh" \
-o "%(title)s.%(ext)s" \
"https://youtube.com/watch?v=..."
Download TikTok video:
yt-dlp -o "%(uploader)s - %(title)s.%(ext)s" \
"https://tiktok.com/@user/video/..."
Download Bilibili playlist:
yt-dlp --cookies-from-browser chrome \
-o "%(playlist)s/%(playlist_index)02d - %(title)s.%(ext)s" \
"https://bilibili.com/video/BV..."
Download Twitter video:
yt-dlp --cookies-from-browser firefox \
"https://twitter.com/user/status/..."
More from moosegoose0701/skill-compose
skill-creator
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
30skill-evolver
Analyze skill execution traces to identify issues and automatically evolve/improve skills. Use when users provide trace files (JSON) from skill runs and want to improve skill performance based on real execution data. Triggers on requests like "analyze traces", "evolve skill based on traces", "improve skill from execution history", "find issues in skill traces", or when working with skill trace/log files.
29gemini-imagegen
>
29audio-extractor
Extract audio from videos and download audio-only content from 1500+ websites using yt-dlp. Converts to MP3, M4A, FLAC, WAV, or OPUS with embedded metadata and cover art. Use when the user wants to extract audio from videos, download podcasts, download music from YouTube/SoundCloud/Bandcamp, convert video to audio, or batch download playlist audio. Triggers on requests like 'extract audio', 'download as MP3', 'get the audio from this video', 'download this podcast', 'download music', 'convert to FLAC'.
26skills-planner
Plan which skills are needed to fulfill user requirements. Use when the user wants to design an agent workflow, plan skill composition, or determine what skills are needed for a task. Input includes user requirements and existing skills list. Output includes recommended existing skills, new skills to create, and a system prompt for the composed agent.
23imagegen
Use when the user asks to generate or edit images via the OpenAI Image API (for example: generate image, edit/inpaint/mask, background removal or replacement, transparent background, product shots, concept art, covers, or batch variants); run the bundled CLI (`scripts/image_gen.py`) and require `OPENAI_API_KEY` for live calls.
23