crazynomad/tutorial/youtube-downloader

Claude Code and agent skill by crazynomad/tutorial

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Install

npx vskill@latest install crazynomad/tutorial/youtube-downloader

SKILL.md

YouTube Video Downloader (yt-dlp)

Download videos from YouTube and 1000+ other sites using yt-dlp.

Description

A powerful video downloader skill based on yt-dlp that supports YouTube, Bilibili, Twitter/X, TikTok, and many other platforms. Features include format selection, audio extraction, subtitle download, playlist support, and metadata preservation.

When to Use

Use this skill when users:

  • Provide YouTube URLs and want to download videos
  • Mention "download video", "下载视频", "save video from YouTube"
  • Want to extract audio from videos (MP3)
  • Need to download playlists or channels
  • Want subtitles/captions from videos
  • Request video download from supported sites (Bilibili, Twitter, TikTok, etc.)

Features

  • Multi-Platform Support: YouTube, Bilibili, Twitter/X, TikTok, Vimeo, and 1000+ sites
  • Format Selection: Choose video quality (1080p, 720p, 4K) or audio-only
  • Audio Extraction: Extract audio as MP3, M4A, or other formats
  • Subtitle Download: Auto-download subtitles in multiple languages
  • Playlist Support: Download entire playlists or channels
  • Metadata Preservation: Save video info, thumbnails, and descriptions
  • Resume Support: Continue interrupted downloads
  • Progress Display: Real-time download progress

Usage

Basic Syntax
bash
python scripts/download_video.py "VIDEO_URL" [OPTIONS]
Common Scenarios

Download single video (best quality):

bash
python scripts/download_video.py "https://www.youtube.com/watch?v=dQw4w9WgXcQ"

Download video in specific quality:

bash
python scripts/download_video.py "https://www.youtube.com/watch?v=VIDEO_ID" -f 1080

Extract audio only (MP3):

bash
python scripts/download_video.py "https://www.youtube.com/watch?v=VIDEO_ID" --audio-only

Download with subtitles:

bash
python scripts/download_video.py "https://www.youtube.com/watch?v=VIDEO_ID" --subtitles

Download playlist:

bash
python scripts/download_video.py "https://www.youtube.com/playlist?list=PLAYLIST_ID" --playlist

Download N videos from playlist:

bash
python scripts/download_video.py "https://www.youtube.com/playlist?list=PLAYLIST_ID" --playlist -n 5

Specify output directory:

bash
python scripts/download_video.py "URL" -o /path/to/output
Arguments
ArgumentDescriptionDefault
urlVideo/Playlist URL (required)-
-o, --outputOutput directoryCurrent directory
-f, --formatVideo quality: best, 1080, 720, 480, 360best
--audio-onlyExtract audio only (MP3)False
--subtitlesDownload subtitlesFalse
--sub-langSubtitle language(s)en,zh-Hans
--playlistEnable playlist downloadFalse
-n, --countNumber of videos from playlistAll
--metadataSave video metadata JSONTrue
--thumbnailDownload thumbnailFalse
--cookiesPath to cookies file (for age-restricted content)None

Dependencies

bash
# Install yt-dlp
pip install yt-dlp --break-system-packages
# For audio extraction (optional)
# macOS
brew install ffmpeg
# Ubuntu/Debian
apt-get install ffmpeg

Output Structure

Single Video
OutputDir/
├── Video Title [VIDEO_ID].mp4 # Video file
├── Video Title [VIDEO_ID].json # Metadata (if --metadata)
├── Video Title [VIDEO_ID].jpg # Thumbnail (if --thumbnail)
└── Video Title [VIDEO_ID].en.vtt # Subtitles (if --subtitles)
Playlist
OutputDir/
└── PlaylistName/
├── playlist_info.json
├── 001 - Video Title.mp4
├── 001 - Video Title.json
├── 002 - Another Video.mp4
└── ...
Metadata Example
json
{
"title": "Video Title",
"uploader": "Channel Name",
"upload_date": "2024-01-15",
"duration": 300,
"view_count": 1000000,
"description": "Video description...",
"tags": ["tag1", "tag2"],
"video_file": "Video Title [VIDEO_ID].mp4"
}

Claude Integration

When user requests video download:

  1. Read skill documentation:

``python view("/mnt/skills/user/youtube-downloader/SKILL.md") ``

  1. Install dependencies (if needed):

``bash pip install yt-dlp --break-system-packages ``

  1. Execute download:

``bash python /mnt/skills/user/youtube-downloader/scripts/download_video.py \ "USER_URL" -o /mnt/user-data/outputs ``

  1. Present files to user:

``python present_files(["/mnt/user-data/outputs/..."]) ``

Supported Platforms

Major Platforms
  • YouTube: Videos, Shorts, Playlists, Channels, Live streams
  • Bilibili: Videos, Episodes (may need cookies)
  • Twitter/X: Video tweets
  • TikTok: Videos (may need cookies)
  • Vimeo: Videos
  • Twitch: VODs, Clips
Full List

yt-dlp supports 1000+ sites. Run yt-dlp --list-extractors for full list.

Common Issues

Q: Age-restricted videos? A: Use --cookies with exported browser cookies: --cookies cookies.txt

Q: Format not available? A: Some videos may not have all quality options. Script will auto-select best available.

Q: Download speed slow? A: This is usually server-side throttling. Consider using a VPN or waiting.

Q: Need to login for private videos? A: Export cookies from your browser after logging in, then use --cookies.

Q: Audio extraction fails? A: Install ffmpeg: brew install ffmpeg (macOS) or apt install ffmpeg (Linux)

Example Conversations

User: "帮我下载这个 YouTube 视频: https://www.youtube.com/watch?v=dQw4w9WgXcQ"

Claude:

bash
# Install yt-dlp
pip install yt-dlp --break-system-packages
# Download video
python /mnt/skills/user/youtube-downloader/scripts/download_video.py \
"https://www.youtube.com/watch?v=dQw4w9WgXcQ" \
-o /mnt/user-data/outputs
# Present files
present_files([...])

User: "下载这个 YouTube 视频的音频,我只要 MP3"

Claude:

bash
python /mnt/skills/user/youtube-downloader/scripts/download_video.py \
"VIDEO_URL" \
--audio-only \
-o /mnt/user-data/outputs

User: "Download this playlist, but only the first 5 videos"

Claude:

bash
python /mnt/skills/user/youtube-downloader/scripts/download_video.py \
"PLAYLIST_URL" \
--playlist -n 5 \
-o /mnt/user-data/outputs

How It Works

Workflow
  1. URL Parsing: Detect platform and content type (video/playlist)
  2. Format Selection: Determine best available format based on user preference
  3. Download: Stream video/audio with progress display
  4. Post-Processing: Extract audio (if requested), embed subtitles
  5. Metadata: Save video information to JSON
Under the Hood

This skill wraps yt-dlp with sensible defaults:

  • Automatic format selection for best quality
  • Proper filename sanitization
  • Retry logic for failed downloads
  • Progress display with ETA

Limitations

  • Some sites may require authentication (cookies)
  • Age-restricted content needs browser cookies
  • Download speed depends on source server
  • Some DRM-protected content cannot be downloaded
  • Live streams can only be downloaded after they end (VOD)

Legal Notice

This tool is for personal use only. Please respect:

  • YouTube Terms of Service
  • Copyright laws in your jurisdiction
  • Content creators' rights

Only download content you have the right to access. Do not redistribute copyrighted material.

Version History

v1.0 (Current)

  • Initial release with yt-dlp wrapper
  • Support for video, audio, subtitles, playlists
  • Metadata and thumbnail preservation
  • Multi-platform support

References

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
184
Repository forks
57
7-day trend score
26

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 22 Mar 2026, 7 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/crazynomad/tutorial/youtube-downloader/badge)](https://verified-skill.com/skills/crazynomad/tutorial/youtube-downloader)

Something wrong with this skill or its page? Tell us.