yt-dlp Video Downloader
Download videos from thousands of websites using yt-dlp.
Best use case
yt-dlp Video Downloader is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Download videos from thousands of websites using yt-dlp.
Teams using yt-dlp Video Downloader should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/yt-dlp-downloader-skill/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How yt-dlp Video Downloader Compares
| Feature / Agent | yt-dlp Video Downloader | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Download videos from thousands of websites using yt-dlp.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# yt-dlp Video Downloader Download videos from thousands of websites using yt-dlp. ## Prerequisites Before downloading, verify dependencies are installed: ```bash # Check yt-dlp which yt-dlp || echo "yt-dlp not installed. Install with: pip install yt-dlp" # Check ffmpeg (required for audio extraction and format merging) which ffmpeg || echo "ffmpeg not installed. Install with: brew install ffmpeg" ``` If not installed, install them first: ```bash pip install yt-dlp brew install ffmpeg # macOS ``` ## Quick Start ### Basic Download (Best Quality) ```bash yt-dlp -P "~/Downloads/yt-dlp" "VIDEO_URL" ``` ### YouTube Download (Recommended - with cookies) YouTube often blocks direct downloads with 403 errors. Always use browser cookies for YouTube: ```bash yt-dlp -P "~/Downloads/yt-dlp" --cookies-from-browser chrome "YOUTUBE_URL" ``` Supported browsers: `chrome`, `firefox`, `safari`, `edge`, `brave`, `opera` ### Download with Custom Output Path ```bash yt-dlp -P "/path/to/save" -o "%(title)s.%(ext)s" "VIDEO_URL" ``` ## Common Tasks ### 1. Download Video (Default - Best Quality) ```bash yt-dlp -P "~/Downloads/yt-dlp" "VIDEO_URL" ``` ### 2. Extract Audio Only (MP3) ```bash yt-dlp -P "~/Downloads/yt-dlp" -x --audio-format mp3 "VIDEO_URL" ``` ### 3. Download with Subtitles ```bash yt-dlp -P "~/Downloads/yt-dlp" --write-subs --sub-langs all "VIDEO_URL" ``` ### 4. Download Specific Quality **720p:** ```bash yt-dlp -P "~/Downloads/yt-dlp" -f "bestvideo[height<=720]+bestaudio/best[height<=720]" "VIDEO_URL" ``` **1080p:** ```bash yt-dlp -P "~/Downloads/yt-dlp" -f "bestvideo[height<=1080]+bestaudio/best[height<=1080]" "VIDEO_URL" ``` **Best available:** ```bash yt-dlp -P "~/Downloads/yt-dlp" -f "bestvideo+bestaudio/best" "VIDEO_URL" ``` ### 5. List Available Formats (Before Download) ```bash yt-dlp -F "VIDEO_URL" ``` Then download specific format by ID: ```bash yt-dlp -P "~/Downloads/yt-dlp" -f FORMAT_ID "VIDEO_URL" ``` ### 6. Download Playlist ```bash # Download entire playlist yt-dlp -P "~/Downloads/yt-dlp" -o "%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s" "PLAYLIST_URL" # Download specific range (e.g., items 1-5) yt-dlp -P "~/Downloads/yt-dlp" -I 1:5 "PLAYLIST_URL" ``` ### 7. Download with Thumbnail ```bash yt-dlp -P "~/Downloads/yt-dlp" --write-thumbnail "VIDEO_URL" ``` ## Workflow When user provides a video URL: 1. **Identify the platform**: - YouTube/YouTube Music → **Always use `--cookies-from-browser chrome`** - Other sites → Try without cookies first 2. **Ask what they want** (if not specified): - Just download the video? - Extract audio only? - Need subtitles? - Specific quality? 3. **Construct the command** based on requirements 4. **Execute the download** using Shell tool with `required_permissions: ["all", "network"]` 5. **Handle errors**: - 403 Forbidden → Retry with `--cookies-from-browser` - Connection issues → yt-dlp auto-resumes, just retry - Format unavailable → Use `-F` to list formats, then select 6. **Report the result** - file location and any errors ## Example Interaction User: "帮我下载这个视频 https://www.youtube.com/watch?v=xxx" Response: ```bash # YouTube - use cookies to avoid 403 errors yt-dlp -P "~/Downloads/yt-dlp" --cookies-from-browser chrome "https://www.youtube.com/watch?v=xxx" ``` User: "下载这个视频的音频 https://www.bilibili.com/video/xxx" Response: ```bash # Bilibili - extracting audio as MP3 yt-dlp -P "~/Downloads/yt-dlp" -x --audio-format mp3 "https://www.bilibili.com/video/xxx" ``` User: "下载这个 Twitter 视频 https://twitter.com/xxx/status/123" Response: ```bash # Twitter/X - direct download usually works yt-dlp -P "~/Downloads/yt-dlp" "https://twitter.com/xxx/status/123" ``` ## Supported Sites yt-dlp supports thousands of sites including: - YouTube, YouTube Music - Bilibili (B站) - Twitter/X - TikTok, Douyin (抖音) - Vimeo - Twitch - And many more... Full list: https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md ## Troubleshooting ### Common Errors and Solutions | Error | Cause | Solution | |-------|-------|----------| | HTTP 403 Forbidden | YouTube blocks unauthenticated requests | Use `--cookies-from-browser chrome` | | Video unavailable | Geo-restricted or private | Use cookies or VPN | | Download interrupted | Network issues | Retry - yt-dlp auto-resumes | | Format not available | Requested format doesn't exist | Use `-F` to list formats | ### Error: "yt-dlp: command not found" ```bash pip install yt-dlp ``` ### Error: "ffmpeg not found" (for audio extraction) ```bash brew install ffmpeg # macOS ``` ### Error: HTTP 403 Forbidden (YouTube) This is the most common YouTube error. **Always use cookies for YouTube:** ```bash # Recommended approach for YouTube yt-dlp -P "~/Downloads/yt-dlp" --cookies-from-browser chrome "YOUTUBE_URL" ``` Supported browsers: `chrome`, `firefox`, `safari`, `edge`, `brave`, `opera` ### Error: Video unavailable or geo-restricted ```bash # Try with cookies from browser yt-dlp --cookies-from-browser chrome "VIDEO_URL" # Or use a specific format yt-dlp -F "VIDEO_URL" # List formats first yt-dlp -f FORMAT_ID "VIDEO_URL" ``` ### Error: Download keeps failing ```bash # Update yt-dlp to latest version pip install -U yt-dlp # Force IPv4 (sometimes helps with connection issues) yt-dlp -4 "VIDEO_URL" ``` ### Best Practices 1. **YouTube downloads**: Always use `--cookies-from-browser chrome` 2. **Large files**: yt-dlp auto-resumes, just retry if interrupted 3. **Keep yt-dlp updated**: `pip install -U yt-dlp` 4. **Check formats first**: Use `-F` before downloading if unsure
Related Skills
capy-video-gen-skill
Multi-shot AI video generation pipeline with face identity consistency. Converts scripts or ideas into complete videos using character extraction, storyboarding, frame generation, and video assembly. 300 experiments validated, 70% face distance improvement. Use when the user asks to create a video from a script, story, idea, or wants multi-shot video with consistent characters.
video-comparer
This skill should be used when comparing two videos to analyze compression results or quality differences. Generates interactive HTML reports with quality metrics (PSNR, SSIM) and frame-by-frame visual comparisons. Triggers when users mention "compare videos", "video quality", "compression analysis", "before/after compression", or request quality assessment of compressed videos.
media-downloader
智能媒体下载器。根据用户描述自动搜索和下载图片、视频片段,支持视频自动剪辑。 Smart media downloader. Automatically search and download images/video clips based on user description, with auto-trimming support. 触发方式 Triggers: "下载图片", "找视频", "download media", "download images", "find video", "/media"
video-enhancement
AI Video Enhancement - Upscale video resolution, improve quality, denoise, sharpen, enhance low-quality videos to HD/4K. Supports local video files, remote URLs (YouTube, Bilibili), auto-download, real-time progress tracking.
ai-avatar-video
Create AI avatar and talking head videos with OmniHuman, Fabric, PixVerse via inference.sh CLI. Models: OmniHuman 1.5, OmniHuman 1.0, Fabric 1.0, PixVerse Lipsync. Capabilities: audio-driven avatars, lipsync videos, talking head generation, virtual presenters. Use for: AI presenters, explainer videos, virtual influencers, dubbing, marketing videos. Triggers: ai avatar, talking head, lipsync, avatar video, virtual presenter, ai spokesperson, audio driven video, heygen alternative, synthesia alternative, talking avatar, lip sync, video avatar, ai presenter, digital human
video-prompting-guide
Best practices and techniques for writing effective AI video generation prompts. Covers: Veo, Seedance, Wan, Grok, Kling, Runway, Pika, Sora prompting strategies. Learn: shot types, camera movements, lighting, pacing, style keywords, negative prompts. Use for: improving video quality, getting consistent results, professional video prompts. Triggers: video prompt, how to prompt video, veo prompts, video generation tips, better ai video, video prompt engineering, video prompt guide, video prompt template, ai video tips, video prompt best practices, video prompt examples, cinematography prompts
image-to-video
Still-to-video conversion guide: model selection, motion prompting, and camera movement. Covers Wan 2.5 i2v, Seedance, Fabric, Grok Video with when to use each. Use for: animating images, creating video from stills, adding motion, product animations. Triggers: image to video, i2v, animate image, still to video, add motion to image, image animation, photo to video, animate still, wan i2v, image2video, bring image to life, animate photo, motion from image
ai-marketing-videos
Create AI marketing videos for ads, promos, product launches, and brand content. Models: Veo, Seedance, Wan, FLUX for visuals, Kokoro for voiceover. Types: product demos, testimonials, explainers, social ads, brand videos. Use for: Facebook ads, YouTube ads, product launches, brand awareness. Triggers: marketing video, ad video, promo video, commercial, brand video, product video, explainer video, ad creative, video ad, facebook ad video, youtube ad, instagram ad, tiktok ad, promotional video, launch video
p-video
Generate videos with Pruna P-Video and WAN models via inference.sh CLI. Models: P-Video, WAN-T2V, WAN-I2V. Capabilities: text-to-video, image-to-video, audio support, 720p/1080p, fast inference. Pruna optimizes models for speed without quality loss. Triggers: pruna video, p-video, pruna ai video, fast video generation, optimized video, wan t2v, wan i2v, economic video generation, cheap video generation, pruna text to video, pruna image to video
ai-video-generation
Generate AI videos with Google Veo, Seedance, Wan, Grok and 40+ models via inference.sh CLI. Models: Veo 3.1, Veo 3, Seedance 1.5 Pro, Wan 2.5, Grok Imagine Video, OmniHuman, Fabric, HunyuanVideo. Capabilities: text-to-video, image-to-video, lipsync, avatar animation, video upscaling, foley sound. Use for: social media videos, marketing content, explainer videos, product demos, AI avatars. Triggers: video generation, ai video, text to video, image to video, veo, animate image, video from image, ai animation, video generator, generate video, t2v, i2v, ai video maker, create video with ai, runway alternative, pika alternative, sora alternative, kling alternative
video-processor
Process video files with audio extraction, format conversion (mp4, webm), and Whisper transcription. Use when user mentions video conversion, audio extraction, transcription, mp4, webm, ffmpeg, or whisper transcription.
youtube-downloader
Download YouTube videos with customizable quality and format options. Use this skill when the user asks to download, save, or grab YouTube videos. Supports various quality settings (best, 1080p, 720p, 480p, 360p), multiple formats (mp4, webm, mkv), and audio-only downloads as MP3.