Video Download
Download videos from 1800+ websites and generate subtitles using Faster Whisper AI.
- Rating
- 3.8 (322 reviews)
- Downloads
- 814 downloads
- Version
- 1.0.0
Overview
Download videos from 1800+ websites and generate subtitles using Faster Whisper AI.
Complete Documentation
View Source →
Video Download & Subtitle Generation
This skill downloads videos from 1800+ websites and generates subtitles using Faster Whisper AI.
Supported Websites
This skill supports downloading from virtually any video website thanks to yt-dlp. Some popular ones include:
Video Platforms:
- YouTube, YouTube Shorts
- Bilibili (哔哩哔哩), Niconico (ニコニコ動画)
- TikTok, Douyin (抖音)
- Twitter/X, Facebook, Instagram
- Vimeo, Dailymotion
- Twitch (clips, VODs), Kick
- Rutube, VK Video
- iQiyi (爱奇艺), Youku (优酷), MangoTV (芒果TV)
- Weibo Video, Douyu (斗鱼), Huya (虎牙)
- Netflix, Disney+, HBO Max, Amazon Prime Video
- BBC iPlayer, ITV, Channel 4
- ARD, ZDF, Arte
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.
Prerequisites
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 transcription
pip install yt-dlp yt-dlp-ejs ffmpeg-python faster-whisper tqdm
ffmpeg must also be installed on your system
Usage
Command Line
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO_ID"],"output":"./downloads"}'
Parameters
| 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) |
Output
The skill will:
- Create a folder for each video (named after the video title)
- Download the video file to that folder
- Extract audio as WAV file
- Generate transcript using Faster Whisper
- Save subtitle as .txt file
downloads/
└── Video Title/
├── Video Title.mp4
├── Video Title.wav
└── Video Title.txt
Examples
Download YouTube video:
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],"output":"./my_videos"}'
Download Bilibili video:
python scripts/video_parser.py '{"urls":["https://www.bilibili.com/video/BV1xx411c7XD"],"output":"./downloads"}'
Download TikTok video:
python scripts/video_parser.py '{"urls":["https://www.tiktok.com/@username/video/1234567890"],"output":"./tiktok"}'
Download multiple videos from different sites:
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"}'
Download Twitch clip:
python scripts/video_parser.py '{"urls":["https://www.twitch.tv//channel/clip/ClipName"],"output":"./clips"}'
Download only (without transcription):
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO_ID"],"output":"./downloads","transcribe":false}'
Generate SRT subtitle:
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO_ID"],"output":"./downloads","subtitle_format":"srt"}'
Generate VTT subtitle:
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO_ID"],"output":"./downloads","subtitle_format":"vtt"}'
Download video with built-in subtitles:
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO_ID"],"output":"./downloads","download_subtitle":true}'
Download with custom Faster Whisper model:
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO_ID"],"output":"./downloads","model":"large"}'
Skip transcription if subtitle already exists:
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO_ID"],"output":"./downloads","overwrite_subtitle":false}'
Download video with Cookie:
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO_ID"],"output":"./downloads","cookie":"sid=xxx; token=yyy"}'
Download video with cookies from browser:
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO_ID"],"output":"./downloads","cookiesfrombrowser":"chrome"}'
Download video with cookie file:
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO_ID"],"output":"./downloads","cookiefile":"/path/to/cookies.txt"}'
Only download subtitles:
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:
- Install the Get cookies.txt LOCALLY Chrome extension first.
- Log in to the target website, then use the extension to export
cookies.txtto your local machine. - Set
cookiefileto 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"}'
Troubleshooting
- ffmpeg not found: Install ffmpeg via
brew install ffmpeg(macOS) or your system's package manager - Faster Whisper model download fails: Models are downloaded from HuggingFace. Mainland China users need a VPN/proxy to download models. The default small model is ~75MB.
- Download fails: Some videos may be geo-restricted, age-gated, or unavailable. Check the video URL and try again.
- Cookie/auth required: Some sites need authentication. You can pass cookies via yt-dlp options if needed.
Installation
openclaw install video-download
💻Code Examples
python scripts/video_parser.py '{"urls":["https://www.youtube.com/watch?v=VIDEO_ID"],"output":"./downloads"}'
## Parameters
| 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) |
## Output
The skill will:
1. Create a folder for each video (named after the video title)
2. Download the video file to that folder
3. Extract audio as WAV file
4. Generate transcript using Faster Whisper
5. Save subtitle as .txt file
Output structure:└── Video Title.txt
## Examples
### Download YouTube video: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:
- Install the **Get cookies.txt LOCALLY** Chrome extension first.
URL: <https://chromewebstore.google.com/detail/get-cookiestxt-locally/cclelndahbckbenkjhflpdbgdldlbecc?pli=1>
- Log in to the target website, then use the extension to export `cookies.txt` to your local machine.
- Set `cookiefile` to that local file path, for example:downloads/
└── Video Title/
├── Video Title.mp4
├── Video Title.wav
└── Video Title.txtTags
Quick Info
Ready to Install?
Get started with this skill in seconds
Related Skills
4claw
4claw — a moderated imageboard for AI agents.
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
Acestep Lyrics Transcription
Transcribe audio to timestamped lyrics using OpenAI Whisper or ElevenLabs Scribe API.
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.