{"skill":{"slug":"multi-platform-video-downloader","displayName":"Multi-Platform Video Downloader","summary":"Universal video downloader supporting multiple platforms (Douyin, Bilibili, YouTube, TikTok, etc.). Can download videos by URL or search by keyword (Douyin s...","description":"---\nname: video-downloader\ndescription: Universal video downloader supporting multiple platforms (Douyin, Bilibili, YouTube, TikTok, etc.). Can download videos by URL or search by keyword (Douyin supported). Use when users need to download videos from video platforms.\n---\n\n# Universal Video Downloader\n\nA versatile video downloading tool that supports multiple video platforms with intelligent platform detection and multiple download methods.\n\n## Supported Platforms\n\n- **Douyin** (抖音) - Chinese TikTok\n- **Bilibili** (B站) - Chinese video platform\n- **YouTube** - Global video platform\n- **TikTok** - International short video\n- **Xigua** (西瓜视频) - Chinese video platform\n- **Kuaishou** (快手) - Chinese short video\n- **Generic** - Any other video site (using browser mode)\n\n## Features\n\n- **Automatic Platform Detection** - Identifies platform from URL\n- **Smart Download Method** - Uses yt-dlp for most sites, DrissionPage for anti-crawl sites\n- **Search & Download** - Search Douyin by keyword and download results\n- **Batch Download** - Download multiple videos at once\n- **Metadata Extraction** - Saves title, author, platform info\n\n## Installation Options\n\n### Option 1: Docker (Recommended - No dependencies needed)\n\n```bash\n# Build image\ndocker build -t video-downloader .\n\n# Download video\ndocker run -v $(pwd)/downloads:/app/downloads video-downloader \"URL\"\n```\n\nSee `DOCKER_README.md` for detailed Docker usage.\n\n### Option 2: Python (Manual installation)\n\n```bash\n# Required dependencies\npip install yt-dlp requests DrissionPage\n\n# For DrissionPage browser automation\n# Chrome browser will be auto-downloaded on first use\n```\n\n## Usage\n\n### Download Single Video\n\n```bash\n# Douyin\npython scripts/video_downloader.py \"https://www.douyin.com/video/xxx\"\n\n# Bilibili\npython scripts/video_downloader.py \"https://www.bilibili.com/video/xxx\"\n\n# YouTube\npython scripts/video_downloader.py \"https://www.youtube.com/watch?v=xxx\"\n\n# Any other platform\npython scripts/video_downloader.py \"https://example.com/video\"\n```\n\n### Batch Download\n\n```bash\npython scripts/video_downloader.py \\\n  -u \"https://www.douyin.com/video/xxx\" \\\n  -u \"https://www.bilibili.com/video/yyy\" \\\n  -u \"https://www.youtube.com/watch?v=zzz\"\n```\n\n### Search and Download (Douyin)\n\n```bash\n# Search \"美女\" and download 5 videos\npython scripts/video_downloader.py 美女 --search --count 5\n\n# Search with custom count\npython scripts/video_downloader.py 美女 --search --count 10\n```\n\n### Force Browser Mode\n\nFor sites with strong anti-crawl protection:\n\n```bash\npython scripts/video_downloader.py \"https://example.com/video\" --browser\n```\n\n### Specify Output Directory\n\n```bash\npython scripts/video_downloader.py \"URL\" --output \"D:\\\\MyVideos\"\n```\n\n## Parameters\n\n- `url_or_keyword` - Video URL or search keyword\n- `--url, -u` - Video URL(s), can be used multiple times\n- `--search, -s` - Enable search mode (for Douyin)\n- `--platform, -p` - Platform for search (default: douyin)\n- `--count, -n` - Number of videos to download (default: 5)\n- `--output, -o` - Output directory (default: D:\\video_downloads)\n- `--browser, -b` - Force use browser mode for downloading\n\n## Output Structure\n\n```\nvideo_downloads/\n├── single_20240312_121029/\n│   ├── 001_video_title.mp4\n│   └── 001_video_title.json\n├── batch_20240312_121102/\n│   ├── 001_video1.mp4\n│   ├── 001_video1.json\n│   ├── 002_video2.mp4\n│   ├── 002_video2.json\n│   └── _summary.json\n└── douyin_keyword_20240312_121205/\n    ├── 001_video1.mp4\n    ├── 001_video1.json\n    ├── 002_video2.mp4\n    ├── 002_video2.json\n    └── _summary.json\n```\n\n### Metadata Format\n\n```json\n{\n  \"index\": 1,\n  \"title\": \"Video Title\",\n  \"author\": \"Uploader Name\",\n  \"platform\": \"douyin\",\n  \"url\": \"https://www.douyin.com/video/xxx\",\n  \"video_filename\": \"001_video_title.mp4\",\n  \"file_size_mb\": 16.84,\n  \"download_time\": \"2024-03-12T12:20:30\"\n}\n```\n\n## How It Works\n\n### Platform Detection\n\nThe tool automatically detects the platform from the URL:\n- `douyin.com` → Douyin\n- `bilibili.com` / `b23.tv` → Bilibili\n- `youtube.com` / `youtu.be` → YouTube\n- `tiktok.com` → TikTok\n- etc.\n\n### Download Methods\n\n1. **yt-dlp** (default for most platforms)\n   - Fast and reliable\n   - Supports 1000+ sites\n   - Best for YouTube, Bilibili, etc.\n\n2. **DrissionPage** (for anti-crawl sites)\n   - Real browser automation\n   - Bypasses most anti-crawl protections\n   - Used automatically for Douyin\n   - Can be forced with `--browser` flag\n\n### Search Functionality\n\nFor Douyin search:\n1. Opens browser and navigates to search page\n2. Extracts video links from search results\n3. Downloads each video using browser session\n\n## Troubleshooting\n\n### \"yt-dlp not installed\"\n\n```bash\npip install yt-dlp\n```\n\n### \"DrissionPage not installed\"\n\n```bash\npip install DrissionPage\n```\n\n### Download fails for specific site\n\nTry forcing browser mode:\n```bash\npython video_downloader.py \"URL\" --browser\n```\n\n### Chrome not found (DrissionPage)\n\nDrissionPage will auto-download Chrome on first use. If it fails:\n1. Install Chrome manually\n2. Or set Chrome path in DrissionPage config\n\n### Connection errors\n\nSome sites may block automated access. Try:\n- Using a VPN\n- Waiting a few minutes between requests\n- Using `--browser` mode\n\n## Notes\n\n- **Respect Copyright** - Only download videos you have permission to use\n- **Rate Limiting** - The tool includes delays to avoid overwhelming servers\n- **Cookie Support** - DrissionPage mode uses browser cookies for authenticated access\n- **File Naming** - Special characters in titles are sanitized for filesystem compatibility\n\n## Dependencies\n\n- Python 3.8+\n- yt-dlp\n- DrissionPage\n- requests\n- BeautifulSoup4 (optional, for parsing)\n\n## License\n\nThis tool is for educational and personal use only. Respect the terms of service of video platforms.\n","tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":731,"installsAllTime":1,"installsCurrent":1,"stars":0,"versions":1},"createdAt":1773583832188,"updatedAt":1779000263575},"latestVersion":{"version":"1.0.0","createdAt":1773583832188,"changelog":"Initial release: Universal video downloader supporting Douyin, Bilibili, YouTube, TikTok and more platforms with automatic platform detection and multiple download methods","license":"MIT-0"},"metadata":null,"owner":{"handle":"wwkgit","userId":"s1758g64vaja4ty8svh29emmt58851q1","displayName":"wwkGit","image":"https://avatars.githubusercontent.com/u/45025686?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780089899159}}