agentsclimarketplace

Media downloader

Skill MemTensor/skills-vote/examples/recommend_skills/media-downloader

SkillsVote: Lifecycle Governance of Agent Skills from Collection, Recommendation to Evolution

Install
npx -y skills add MemTensor/skills-vote --skill media-downloader

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its author says it does

Copied from the file, not written here

Download videos and audio from 1500+ websites including YouTube, Bilibili, TikTok, Twitter/X, Instagram, Vimeo, and more using yt-dlp. Use when the user wants to download videos, save media from social platforms, download with specific resolution (720p/1080p/4K), get subtitles, or download entire playlists. Triggers on requests like 'download this video', 'save this YouTube video', 'download in 1080p', 'download with subtitles', 'download this playlist'.

SKILL.md

5.3 KB, as published. Nobody here has run it

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/..."

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.