isjiamu

video-downloader

35
5
# Install this skill:
npx skills add isjiamu/jiamu-skills --skill "video-downloader"

Install specific skill from multi-skill repository

# Description

Download videos from 1000+ websites (YouTube, Bilibili, Twitter/X, TikTok, etc.) using yt-dlp. Use this skill when users provide video URLs and want to download videos, extract audio, or need help with video download issues.

# SKILL.md


name: video-downloader
description: Download videos from 1000+ websites (YouTube, Bilibili, Twitter/X, TikTok, etc.) using yt-dlp. Use this skill when users provide video URLs and want to download videos, extract audio, or need help with video download issues.


Video Downloader

Overview

Download videos from YouTube, Bilibili, Twitter/X, TikTok, and 1000+ other websites using yt-dlp. Supports multiple quality options, audio extraction, and automatic format selection.

When to Use This Skill

Invoke this skill when users:
- Provide a video URL and want to download it
- Ask to download videos from any website
- Want to extract audio from online videos
- Need to download videos in specific quality (1080p, 4K, etc.)
- Request help with video download issues

Quick Start

When a user provides a video URL:

# Run the bundled download script
python3 scripts/download.py "VIDEO_URL"

Default output: ~/Downloads/Videos/

Prerequisites

Install yt-dlp

# macOS
brew install yt-dlp

# Cross-platform (pip)
pip install yt-dlp

# Update to latest version
brew upgrade yt-dlp  # or: pip install --upgrade yt-dlp

Verify Installation

which yt-dlp && yt-dlp --version

Common Download Commands

Basic Download (Best Quality)

yt-dlp -P ~/Downloads/Videos "VIDEO_URL"

Specific Quality

# Best quality up to 1080p
yt-dlp -f "bestvideo[height<=1080]+bestaudio/best" -P ~/Downloads/Videos "VIDEO_URL"

# Best quality up to 720p
yt-dlp -f "bestvideo[height<=720]+bestaudio/best" -P ~/Downloads/Videos "VIDEO_URL"

# Best available (including 4K)
yt-dlp -f "bestvideo+bestaudio/best" -P ~/Downloads/Videos "VIDEO_URL"

Audio Only (MP3)

yt-dlp -x --audio-format mp3 -P ~/Downloads/Videos "VIDEO_URL"

List Available Formats

yt-dlp -F "VIDEO_URL"

Download with Subtitles

yt-dlp --write-subs --sub-lang zh,en -P ~/Downloads/Videos "VIDEO_URL"

Playlist Download

yt-dlp -P ~/Downloads/Videos "PLAYLIST_URL"

Bundled Script Reference

scripts/download.py

Convenience wrapper with sensible defaults:

# Basic usage
python3 scripts/download.py "VIDEO_URL"

# Options
python3 scripts/download.py "VIDEO_URL" -o ~/Desktop          # Custom output
python3 scripts/download.py "VIDEO_URL" -f 1080               # Max 1080p
python3 scripts/download.py "VIDEO_URL" -a                    # Audio only (MP3)
python3 scripts/download.py "VIDEO_URL" -F                    # List formats
python3 scripts/download.py "VIDEO_URL" --subs                # With subtitles

Supported Websites (Examples)

Platform Example URL Pattern
YouTube youtube.com/watch?v=, youtu.be/
Bilibili bilibili.com/video/
Twitter/X twitter.com/*/status/, x.com/*/status/
TikTok tiktok.com/@*/video/
Vimeo vimeo.com/
Twitch twitch.tv/videos/
Instagram instagram.com/p/, instagram.com/reel/
Facebook facebook.com/watch/

Full list: https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md

Platform-Specific Notes

YouTube

For high-quality (1080p+) YouTube downloads, you may need:

  1. Browser cookies (recommended):
yt-dlp --cookies-from-browser chrome "VIDEO_URL"
  1. PO token provider (for persistent access):
    See references/platform-tips.md for setup instructions.

Bilibili

# Download with best quality
yt-dlp --cookies-from-browser chrome "https://www.bilibili.com/video/BV..."

Twitter/X

# Usually works without authentication
yt-dlp "https://twitter.com/user/status/123456789"

Troubleshooting

"Video unavailable" or "Sign in required"

Use browser cookies:

yt-dlp --cookies-from-browser chrome "VIDEO_URL"

Only Low Quality Available

  1. Update yt-dlp: brew upgrade yt-dlp
  2. Use browser cookies for authentication
  3. Check available formats: yt-dlp -F "VIDEO_URL"

Download Speed Issues

# Limit concurrent fragments
yt-dlp --concurrent-fragments 3 "VIDEO_URL"

# Use specific format to avoid merging
yt-dlp -f best "VIDEO_URL"

Network Errors (China/Proxy)

# Use proxy
yt-dlp --proxy socks5://127.0.0.1:1080 "VIDEO_URL"

# Or set environment variable
export ALL_PROXY=socks5://127.0.0.1:1080
yt-dlp "VIDEO_URL"

Output Format

Default filename template: %(title)s [%(id)s].%(ext)s

Custom template:

yt-dlp -o "%(uploader)s - %(title)s.%(ext)s" "VIDEO_URL"

Further Reading

  • Platform Tips: See references/platform-tips.md for site-specific guidance
  • yt-dlp Documentation: https://github.com/yt-dlp/yt-dlp
  • Supported Sites: https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.