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 dp-archive/archive
skill-finder
Helps users discover and install agent skills from the open skills ecosystem (skills.sh). Use when users ask 'how do I do X', 'find a skill for X', 'is there a skill that can...', want to search for tools/templates/workflows, or express interest in extending agent capabilities.
12brand-identity
>
12code-to-diagram
Generate architecture diagrams, ER diagrams, sequence diagrams, flowcharts, and class diagrams from codebases using Mermaid.js. Use when users ask to visualize code structure, draw architecture diagrams, create ER diagrams from database models, generate sequence diagrams from API flows, or produce any diagram from source code. Triggers on: 'draw architecture', 'generate diagram', 'visualize code', 'ER diagram', 'sequence diagram', 'class diagram', 'flowchart from code', 'module dependency graph'.
10canvas-design
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.
8skill-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.
8humanizer
|
8