Install
openclaw skills install video-downloadDownload videos from 1800+ websites and generate subtitles using Faster Whisper AI. Use when user wants to download videos from YouTube, Bilibili, Twitter, TikTok, Facebook, Vimeo, or any other supported video site, extract audio, or transcribe video content to text/subtitles.
openclaw skills install video-downloadThis skill downloads videos from 1800+ websites and generates subtitles using Faster Whisper AI.
This skill supports downloading from virtually any video website thanks to yt-dlp. Some popular ones include:
Video Platforms:
Chinese Platforms:
International:
For the complete list of 1800+ supported sites, see: yt-dlp supported extractors Local document about supported sites: references/supportedsites.md
Important: If you see an error like Sign in to confirm you’re not a bot, you should use the cookiefile parameter for authenticated downloads. See the cookiefile usage section at the end of this document.
Ensure the following Python packages are installed:
yt-dlp - For downloading videos from any supported siteyt-dlp-ejs - External JavaScript for yt-dlp supporting many runtimesffmpeg-python - For audio extractionfaster-whisper - For speech-to-text transcription (faster and more memory-efficient than openai-whisper). Note: The first run will download models from HuggingFace (default: small, ~3GB). A VPN is required for mainland China users.tqdm - For progress bar display during transcriptionInstall via pip:
pip install yt-dlp yt-dlp-ejs ffmpeg-python faster-whisper tqdm
ffmpeg must also be installed on your system
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO_ID"],"output":"./downloads"}'
| Parameter | Type | Required | Description |
|---|---|---|---|
urls | array | Yes | List of video URLs from any supported website |
output | string | No | Output directory (default: "./downloads") |
model | string | No | Faster Whisper model size: tiny, base, small, medium, large, large-v2, large-v3, turbo (default: "small") |
transcribe | boolean | No | Whether to transcribe video to subtitle (default: true) |
subtitle_format | string | No | Subtitle format: txt, srt, vtt, json (default: "txt") |
download_subtitle | boolean | No | Download video's built-in subtitles if available (default: false) |
onlysubtitle | boolean | No | Only download subtitles. When true, the script uses skip_download + writesubtitles + writeautomaticsub internally (default: false) |
overwrite_subtitle | boolean | No | Overwrite existing subtitle files (default: true, set to false to skip if exists) |
cookie | string | No | Cookie header string; injected into http_headers.Cookie (default: "") |
cookiesfrombrowser | string | No | Read cookies from browser (default: ""; injected only when non-empty) |
cookiefile | string | No | Netscape-format cookie file path (default: ""; injected only when non-empty) |
The skill will:
Output structure:
downloads/
└── Video Title/
├── Video Title.mp4
├── Video Title.wav
└── Video Title.txt
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],"output":"./my_videos"}'
python scripts/video_parser.py '{"urls":["https://www.bilibili.com/video/BV1xx411c7XD"],"output":"./downloads"}'
python scripts/video_parser.py '{"urls":["https://www.tiktok.com/@username/video/1234567890"],"output":"./tiktok"}'
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO1","https://www.bilibili.com/video/BV1xx","https://twitter.com/user/status/123"],"output":"./videos"}'
python scripts/video_parser.py '{"urls":["https://www.twitch.tv//channel/clip/ClipName"],"output":"./clips"}'
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO_ID"],"output":"./downloads","transcribe":false}'
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO_ID"],"output":"./downloads","subtitle_format":"srt"}'
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO_ID"],"output":"./downloads","subtitle_format":"vtt"}'
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO_ID"],"output":"./downloads","download_subtitle":true}'
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO_ID"],"output":"./downloads","model":"large"}'
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO_ID"],"output":"./downloads","overwrite_subtitle":false}'
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO_ID"],"output":"./downloads","cookie":"sid=xxx; token=yyy"}'
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO_ID"],"output":"./downloads","cookiesfrombrowser":"chrome"}'
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO_ID"],"output":"./downloads","cookiefile":"/path/to/cookies.txt"}'
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO_ID"],"output":"./downloads","onlysubtitle":true,"cookiefile":"/path/to/cookies.txt"}'
cookiefile usage:
cookies.txt to your local machine.cookiefile to that local file path, for example:python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO_ID"],"output":"./downloads","cookiefile":"/Users/yourname/Downloads/cookies.txt"}'
brew install ffmpeg (macOS) or your system's package manager