mcpField
M
media-downloader

media-downloader

github.com/dp-archiveCreative & media1.1k47 installsUpdated 34w ago
Repository

About media-downloader

media-downloader is a yt-dlp-based skill for people who need to save online video and audio. It covers common download settings for formats, subtitles, playlists, and output naming.

Key features

  1. 01Download media from 1,500+ sites
  2. 02Select resolution and output format
  3. 03Download manual or auto subtitles
  4. 04Handle playlists and selected entries
  5. 05Customize output naming templates

Use cases

  1. 01Download video at a chosen resolution
  2. 02Save video with subtitles in selected languages
  3. 03Download selected playlist entries in bulk
  4. 04Organize files by uploader or date

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/dp-archive/archive --skill media-downloader

After installing, type/media-downloaderin Claude Code to confirm it loaded.

Bundled filesscripts/download.py

Details

From the project README

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
RequestCommand
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
VariableDescriptionExample
%(title)sVideo titleMy Video
%(id)sVideo IDdQw4w9WgXcQ
%(ext)sFile extensionmp4
%(upload_date)sUpload date20231215
%(uploader)sChannel nameRick Astley
%(playlist)sPlaylist nameBest Songs
%(playlist_index)sPosition in playlist01
%(resolution)sVideo resolution1920x1080
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-browser for 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-browser for private content
Instagram
  • Stories require login
  • Use --cookies-from-browser firefox or --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
IssueSolution
"Video unavailable"Try --cookies-from-browser
Slow downloadAdd --concurrent-fragments 4
Format merge failsInstall ffmpeg
Geo-blockedUse --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/..."

Comments

Markdown supported