content-pipeline/advanced-video-downloader/SKILL.md
Download and transcribe videos from YouTube, Bilibili, TikTok and 1000+ platforms. Use when user requests video download, transcription (转录/字幕提取), or converting video to text/markdown. Supports quality selection, audio extraction, playlist downloads, cookie-based authentication, and AI-powered transcription via SiliconFlow API (免费转录).
npx skillsauth add Jst-Well-Dan/Skill-Box advanced-video-downloaderInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill provides comprehensive video downloading and transcription capabilities from 1000+ platforms including YouTube, Bilibili, TikTok, Twitter, Instagram, and more. It combines:
Activate this skill when the user:
Download individual videos from any supported platform with automatic quality selection.
Example usage:
User: "Download this YouTube video: https://youtube.com/watch?v=abc123"
User: "下载这个B站视频: https://bilibili.com/video/BV1xxx"
Download multiple videos or entire playlists at once.
Example usage:
User: "Download all videos from this playlist"
User: "Download these 3 videos: [URL1], [URL2], [URL3]"
Extract audio only from videos, saving as MP3 or M4A.
Example usage:
User: "Download only the audio from this video"
User: "Convert this video to MP3"
Choose specific video quality (4K, 1080p, 720p, etc.).
Example usage:
User: "Download in 4K quality"
User: "Get the 720p version to save space"
Convert video or audio files to Markdown text using SiliconFlow's free AI transcription API.
Example usage:
User: "Transcribe this video to text" / "转录这个视频"
User: "Download and transcribe this YouTube video"
User: "将这个音频转成文字"
User: "Extract transcript from this MP4 file"
Supported formats:
When a user requests video download:
# Extract video URL(s) from user message
# Identify platform: YouTube, Bilibili, TikTok, etc.
# Check if yt-dlp is installed
yt-dlp --version
Based on platform and requirements:
-f with height filter-x --audio-format mp3Use yt-dlp directly with appropriate options:
# Basic download (best quality MP4)
yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best" --merge-output-format mp4 -o "%(title)s.%(ext)s" "VIDEO_URL"
# Specific quality (1080p)
yt-dlp -f "bestvideo[height<=1080]+bestaudio/best[height<=1080]" --merge-output-format mp4 -o "%(title)s.%(ext)s" "VIDEO_URL"
# Audio only (MP3)
yt-dlp -x --audio-format mp3 -o "%(title)s.%(ext)s" "VIDEO_URL"
# With cookies file (for protected content)
yt-dlp --cookies cookies.txt -o "%(title)s.%(ext)s" "VIDEO_URL"
# Playlist download
yt-dlp -o "%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s" "PLAYLIST_URL"
After download completes, report:
Example output:
✅ Downloaded: "Video Title Here"
Duration: 15:30
Quality: 1080p MP4
Size: 234 MB
Location: ./Video Title Here.mp4
Time: 45 seconds at 5.2 MB/s
When a user requests video/audio transcription:
# Verify SiliconFlow API key is available
echo $SILICONFLOW_API_KEY
# Or user must provide via --api-key parameter
API Key Setup:
.env.example to .env and add your API keySILICONFLOW_API_KEY=sk-xxxEnsure the file exists and is a supported format (audio or video).
Use the bundled script scripts/transcribe_siliconflow.py:
# Basic transcription
python scripts/transcribe_siliconflow.py --file video.mp4 --api-key sk-xxx
# With custom output path
python scripts/transcribe_siliconflow.py --file audio.mp3 --output transcript.md --api-key sk-xxx
# Using environment variable for API key
python scripts/transcribe_siliconflow.py --file video.mp4
✅ Transcription complete!
File: video.mp4
Output: 2025-01-15-video.md
Size: 12.5 KB
Preview:
--------------------------------------------------
[First 200 characters of transcription...]
--------------------------------------------------
For requests like "Download and transcribe this video":
# Step 1: Download video
yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best" --merge-output-format mp4 -o "%(title)s.%(ext)s" "VIDEO_URL"
# Step 2: Transcribe the downloaded file
python scripts/transcribe_siliconflow.py --file "Downloaded Video Title.mp4" --api-key sk-xxx
--cookies with cookies.txt for member-only contentreferences/supported_platforms.md for full listFor platforms requiring authentication (Bilibili VIP, member-only content, etc.):
# Use browser extension "Get cookies.txt LOCALLY"
# Export cookies.txt, then:
yt-dlp --cookies cookies.txt "VIDEO_URL"
# Create cookies.txt in Netscape format
# Use browser extension "Get cookies.txt LOCALLY"
# Then use with yt-dlp
yt-dlp --cookies cookies.txt "VIDEO_URL"
Solution:
--cookies cookies.txt for authenticated access-f parameterSolution:
--concurrent-fragments for faster downloadsSolution:
Solution:
sk-SILICONFLOW_API_KEY=sk-xxxSolution:
# 4K (2160p)
yt-dlp -f "bestvideo[height<=2160]+bestaudio/best[height<=2160]" --merge-output-format mp4 "VIDEO_URL"
# 1080p (Full HD)
yt-dlp -f "bestvideo[height<=1080]+bestaudio/best[height<=1080]" --merge-output-format mp4 "VIDEO_URL"
# 720p (HD)
yt-dlp -f "bestvideo[height<=720]+bestaudio/best[height<=720]" --merge-output-format mp4 "VIDEO_URL"
# 480p (SD)
yt-dlp -f "bestvideo[height<=480]+bestaudio/best[height<=480]" --merge-output-format mp4 "VIDEO_URL"
# Extract as MP3
yt-dlp -x --audio-format mp3 -o "%(title)s.%(ext)s" "VIDEO_URL"
# Extract as M4A (better quality)
yt-dlp -x --audio-format m4a -o "%(title)s.%(ext)s" "VIDEO_URL"
# Download multiple URLs from file
yt-dlp -a urls.txt
# Download playlist with custom naming
yt-dlp -o "%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s" "PLAYLIST_URL"
# Download channel's videos
yt-dlp -o "%(uploader)s/%(title)s.%(ext)s" "CHANNEL_URL"
.env.exampleTemplate for environment variables. Copy to .env and add your SiliconFlow API key.
scripts/transcribe_siliconflow.pyAI-powered transcription script using SiliconFlow's free API.
Usage:
python scripts/transcribe_siliconflow.py --file <audio/video> [--api-key <key>] [--output <path>]
Parameters:
--file, -f: Input audio/video file (required)--api-key, -k: SiliconFlow API key (or use SILICONFLOW_API_KEY env var)--output, -o: Output markdown file path (default: YYYY-MM-DD-filename.md)--model, -m: Model to use (default: FunAudioLLM/SenseVoiceSmall)references/supported_platforms.mdComprehensive list of 1000+ supported platforms with platform-specific notes and requirements.
references/quality_formats.mdDetailed explanation of video formats, codecs, and quality selection strategies.
tools
Extract frames or short clips from videos using ffmpeg.
tools
Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.
tools
Toolkit for creating animated GIFs optimized for Slack, with validators for size constraints and composable animation primitives. This skill applies when users request animated GIFs or emoji animations for Slack from descriptions like "make me a GIF for Slack of X doing Y".
development
Best practices for Remotion - Video creation in React