Install
openclaw skills install multi-platform-video-downloaderUniversal 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.
openclaw skills install multi-platform-video-downloaderA versatile video downloading tool that supports multiple video platforms with intelligent platform detection and multiple download methods.
# Build image
docker build -t video-downloader .
# Download video
docker run -v $(pwd)/downloads:/app/downloads video-downloader "URL"
See DOCKER_README.md for detailed Docker usage.
# Required dependencies
pip install yt-dlp requests DrissionPage
# For DrissionPage browser automation
# Chrome browser will be auto-downloaded on first use
# Douyin
python scripts/video_downloader.py "https://www.douyin.com/video/xxx"
# Bilibili
python scripts/video_downloader.py "https://www.bilibili.com/video/xxx"
# YouTube
python scripts/video_downloader.py "https://www.youtube.com/watch?v=xxx"
# Any other platform
python scripts/video_downloader.py "https://example.com/video"
python scripts/video_downloader.py \
-u "https://www.douyin.com/video/xxx" \
-u "https://www.bilibili.com/video/yyy" \
-u "https://www.youtube.com/watch?v=zzz"
# Search "美女" and download 5 videos
python scripts/video_downloader.py 美女 --search --count 5
# Search with custom count
python scripts/video_downloader.py 美女 --search --count 10
For sites with strong anti-crawl protection:
python scripts/video_downloader.py "https://example.com/video" --browser
python scripts/video_downloader.py "URL" --output "D:\\MyVideos"
url_or_keyword - Video URL or search keyword--url, -u - Video URL(s), can be used multiple times--search, -s - Enable search mode (for Douyin)--platform, -p - Platform for search (default: douyin)--count, -n - Number of videos to download (default: 5)--output, -o - Output directory (default: D:\video_downloads)--browser, -b - Force use browser mode for downloadingvideo_downloads/
├── single_20240312_121029/
│ ├── 001_video_title.mp4
│ └── 001_video_title.json
├── batch_20240312_121102/
│ ├── 001_video1.mp4
│ ├── 001_video1.json
│ ├── 002_video2.mp4
│ ├── 002_video2.json
│ └── _summary.json
└── douyin_keyword_20240312_121205/
├── 001_video1.mp4
├── 001_video1.json
├── 002_video2.mp4
├── 002_video2.json
└── _summary.json
{
"index": 1,
"title": "Video Title",
"author": "Uploader Name",
"platform": "douyin",
"url": "https://www.douyin.com/video/xxx",
"video_filename": "001_video_title.mp4",
"file_size_mb": 16.84,
"download_time": "2024-03-12T12:20:30"
}
The tool automatically detects the platform from the URL:
douyin.com → Douyinbilibili.com / b23.tv → Bilibiliyoutube.com / youtu.be → YouTubetiktok.com → TikTokyt-dlp (default for most platforms)
DrissionPage (for anti-crawl sites)
--browser flagFor Douyin search:
pip install yt-dlp
pip install DrissionPage
Try forcing browser mode:
python video_downloader.py "URL" --browser
DrissionPage will auto-download Chrome on first use. If it fails:
Some sites may block automated access. Try:
--browser modeThis tool is for educational and personal use only. Respect the terms of service of video platforms.