PluginBench
Skill
Review
Audit score 70

yt-dlp

lwmxiaobei/yt-dlp-skill

Download videos and extract audio from YouTube, TikTok, Twitter, Instagram, and 100+ other platforms.

What is yt-dlp?

yt-dlp is a video downloader skill that fetches videos and audio from major platforms like YouTube, Twitter/X, TikTok, Instagram, and many others. Use it when a user provides a video URL, asks to download content, or when video links appear in conversation.

  • Download videos from 100+ platforms including YouTube, TikTok, Twitter/X, Instagram, Vimeo, and Facebook
  • Extract audio in multiple formats (MP3, M4A, OPUS, FLAC, WAV)
  • Auto-detect video URLs in conversation and prompt for download
  • Support quality selection (best, 1080p, 720p, 480p, audio-only)
  • Extract video metadata and information without downloading
  • Handle multiple URLs and playlist downloads

How to install yt-dlp

npx skills add https://github.com/lwmxiaobei/yt-dlp-skill --skill yt-dlp
Prerequisites
  • yt-dlp installed (pip install yt-dlp or brew install yt-dlp)
  • ffmpeg installed for audio/video format conversion (brew install ffmpeg or apt install ffmpeg)
  • Python 3 with standard library
Claude Code
Cursor
Windsurf
Cline

How to use yt-dlp

  1. 1.Provide a video URL or ask to download a video from a supported platform
  2. 2.Specify desired quality (best, 1080p, 720p, 480p) or format (for audio: mp3, m4a, opus, flac, wav) if needed, or accept defaults
  3. 3.The skill extracts the URL, confirms the action, and executes the download
  4. 4.Retrieved files are saved to your specified output directory

Use cases

Good for
  • User shares a YouTube link and asks you to download it for offline viewing
  • Extract audio from a TikTok or Instagram video as an MP3 file
  • Detect video URLs mentioned casually in conversation and offer to download them
  • Download a Twitter/X video before it's deleted
  • Batch download multiple videos from the same platform
Who it's for
  • Content creators who need to archive or repurpose videos
  • Users wanting to download videos for offline access
  • Researchers collecting video data from public sources
  • Anyone needing audio extraction from video content

yt-dlp FAQ

Which platforms are supported?

YouTube, Twitter/X, TikTok, Instagram, Facebook, Vimeo, Twitch, Dailymotion, Reddit, Streamable, and 100+ others supported by yt-dlp.

What audio formats can I extract?

MP3 (default), M4A, OPUS, FLAC, and WAV. Default quality is 192kbps MP3.

Can I download multiple videos at once?

Yes. The skill can handle multiple URLs and offers playlist download options if URLs are from the same source.

What if a video requires authentication or is age-restricted?

Some videos may need cookies or authentication. The skill will report if a video is unavailable or inaccessible.

Do I need ffmpeg?

Yes, ffmpeg is required for audio/video format conversion. Install via brew (macOS) or apt (Linux).

Full instructions (SKILL.md)

Source of truth, from lwmxiaobei/yt-dlp-skill.


name: yt-dlp description: Download videos and extract audio from various platforms using yt-dlp. Use when user provides a video URL, asks to download a video, or when conversation contains video links from YouTube, Twitter/X, Vimeo, TikTok, Instagram, etc.

yt-dlp Video Downloader Skill

This skill provides tools for downloading videos and extracting audio from various platforms using yt-dlp.

Features

  • Download videos from multiple platforms (YouTube, Twitter/X, Vimeo, TikTok, Instagram, Facebook, etc.)
  • Extract audio from videos
  • Auto-detect video URLs in conversations
  • Support for different quality settings and formats

Usage Patterns

1. Command-based Download

When user explicitly asks to download a video:

User: Download this video https://youtube.com/watch?v=...

Action: Extract URL and call download script

2. Auto-detection in Conversations

When conversation contains video URLs:

User: Check out this video https://twitter.com/... and let me know what you think

Action: Detect video URL, ask user if they want to download it

3. Audio Extraction

When user wants to extract audio only:

User: Extract the audio from https://youtu.be/...

Action: Use audio extraction script

Available Scripts

Note: Scripts are located in the scripts/ directory

download_video.py

Main video downloader with quality and format options.

Usage:

# Download video
scripts/download_video.py <url> -o <output_dir>

# Download with specific quality
scripts/download_video.py <url> --quality 720p
scripts/download_video.py <url> --quality audio  # For audio only

# Custom format selector
scripts/download_video.py <url> --format "bestvideo[height<=1080]+bestaudio/best"

# Extract info only
scripts/download_video.py <url> --info-only

Quality options: best, 1080p, 720p, 480p, audio

extract_audio.py

Extract audio from videos in various formats.

Usage:

# Extract as MP3 (default)
/scripts/extract_audio.py <url> -o <output_dir>

# Extract as M4A
/scripts/extract_audio.py <url> --format m4a

# Custom quality
/scripts/extract_audio.py <url> --quality 320

Formats: mp3, m4a, opus, flac, wav

extract_urls.py

Extract video URLs from text or files.

Usage:

# Extract from text argument
/scripts/extract_urls.py "Check https://youtube.com/watch?v=..."

# Extract from file
/scripts/extract_urls.py <file_path>

# Read from stdin
cat file.txt | /scripts/extract_urls.py

Video Platform Support

The skill recognizes URLs from:

  • YouTube (youtube.com, youtu.be)
  • Twitter/X (twitter.com, x.com)
  • Vimeo (vimeo.com)
  • TikTok (tiktok.com)
  • Instagram (instagram.com)
  • Facebook (facebook.com, fb.watch)
  • Twitch (twitch.tv, clips.twitch.tv)
  • Dailymotion (dailymotion.com)
  • Reddit (reddit.com)
  • Streamable (streamable.com)
  • And many more supported by yt-dlp

Workflow

When User Provides Video URL

  1. Extract URL from user's input using extract_urls.py
  2. Confirm with user what action to take:
    • Download video
    • Extract audio
    • Show video info
  3. Execute appropriate script based on user's choice
  4. Notify user of success/failure and file location

When Auto-detecting URLs

  1. Scan conversation text with extract_urls.py (can process stdin)
  2. If video URLs found, ask user: "I found video URLs in this conversation. Would you like me to download them?"
  3. If yes, proceed with download workflow
  4. If no, continue with conversation

Handling Multiple URLs

  • For single URL: Direct download
  • For multiple URLs: Ask user if they want to download all or select specific ones
  • Provide option to download as playlist if URLs are from the same source

Quality and Format Selection

When user doesn't specify preferences:

  • Default to best available quality
  • For audio: Default to MP3 at 192kbps

When options needed:

# Ask user for quality preference if not specified
# Options: best (default), 1080p, 720p, 480p, audio

# Ask for format if extracting audio
# Options: mp3 (default), m4a, opus, flac, wav

Error Handling

Common issues and solutions:

  1. yt-dlp not installed:

    • Check with yt-dlp --version
    • Install with pip install yt-dlp or brew install yt-dlp
  2. ffmpeg not installed (required for format conversion):

    • Install with brew install ffmpeg (macOS)
    • Or apt install ffmpeg (Linux)
  3. Video not available:

    • Check if URL is accessible
    • Some videos may require authentication
    • Age-restricted content may need cookies
  4. Network errors:

    • Retry download
    • Check internet connection

Dependencies

  • yt-dlp: Main video downloader
  • ffmpeg: Audio/video processing (required for format conversion)
  • python3 with standard library

All scripts are self-contained and use only built-in Python modules.