This 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:
URL:
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共 2 个版本