Security Tests
Includes tests that verify dangerous inputs are properly rejected:
- Command injection attempts are blocked
- Path traversal is detected and denied
- SQL injection patterns are sanitized
Test payloads in tests/test_security.py are for validation only.
Bilibili Transcript v2.2
High-accuracy Bilibili video transcription with multi-language AI subtitle support.
Overview
This skill provides a complete transcription workflow for Bilibili videos:
- Extract Video Metadata - Title, author, publish date, duration
- Smart Subtitle Detection - Priority: CC subtitles → AI subtitles (multi-language) → Whisper transcription
- Multi-language AI Subtitle Support - Auto-detects:
ai-zh, ai-en, ai-ja, ai-es, ai-ar, ai-pt, ai-ko, ai-de, ai-fr
- Browser Cookie Support - WSL Chromium or Windows Edge for member-only videos
- Formatted Output - Saves as structured TXT file with metadata + summary placeholder + full transcript
- Simplified Chinese - Automatically converts Traditional to Simplified Chinese
What's New in v2.2
- ✅ Fixed cookie detection - Now uses browser config directory instead of SQLite file (avoids encoding errors)
- ✅ One-stop solution - CC subtitles → AI subtitles → Whisper transcription, all in one script
- ✅ Better WSL support - Automatically detects WSL Chromium and Windows Edge cookies
- ✅ Smart fallback - Seamlessly switches between subtitle sources without user intervention
What's New in v2.1
- ✅ Improved cookie handling - Fixed UTF-8 encoding issues with snap Chromium
- ✅ Three-tier fallback - CC subtitles → AI subtitles → Whisper transcription
- ✅ Better error handling - Gracefully degrades when cookie sources fail
What's New in v2.0
- ✅ Multi-language AI subtitles - Supports 9 languages: Chinese, English, Japanese, Spanish, Arabic, Portuguese, Korean, German, French
- ✅ WSL Chromium support - Better cookie extraction than Windows Edge
- ✅ Correct subtitle download - Uses
--write-subs --write-auto-subs combo
- ✅ Language auto-detection - Automatically finds available AI subtitle language
AI Subtitle Language Codes
Bilibili uses ai- prefix for AI-generated subtitles:
| Code |
Language |
语言 |
ai-zh |
Chinese |
中文 |
ai-en |
English |
英文 |
ai-ja |
Japanese |
日文 |
ai-es |
Spanish |
西班牙文 |
ai-ar |
Arabic |
阿拉伯文 |
ai-pt |
Portuguese |
葡萄牙文 |
ai-ko |
Korean |
韩文 |
ai-de |
German |
德文 |
ai-fr |
French |
法文 |
Requirements
Hardware (Your Setup)
- GPU: NVIDIA RTX 4070 Super (12GB VRAM) - ✅ Perfect for medium model
- WSL Memory: 16GB (configured)
- WSL CPU: 6 cores (configured)
Software
yt-dlp - Video/audio download
ffmpeg - Audio processing
whisper - Speech-to-text (local, no API key)
opencc - Traditional to Simplified Chinese conversion (optional)
Browser (for AI subtitles)
- WSL Chromium (recommended) - Log in to Bilibili in WSL
- Windows Edge - Alternative option
Workflow
Step 1: Run Transcription Script
./scripts/bilibili_transcript.sh "https://www.bilibili.com/video/BVxxxxx"
Priority order:
- CC Subtitles (manual) - Fastest, highest accuracy
- AI Subtitles (auto-generated) - Fast, good accuracy, multi-language
- Whisper Transcription - Slowest, ~95% accuracy, works for all videos
Step 2: Generate Detailed Summary
After the script completes, read the generated TXT file and:
- Read the full transcript (第二部分)
- Generate a comprehensive summary (第一部分)
- Save the updated file
Step 3: Present to User
In Discord, post:
- Brief summary in message
- Attach the TXT file for full content
Setup WSL Chromium Login
For best results with AI subtitles:
Start WSL Chromium:
chromium-browser &
Navigate to bilibili.com
Log in with your Bilibili account
Run the transcription script
The script will automatically use Chromium's cookies to access member-only AI subtitles.
Usage Examples
Example 1: Basic Transcription (Default Output)
./scripts/bilibili_transcript.sh "https://www.bilibili.com/video/BV1Z1wJzgEAj/"
# Output: workspace/Bilibili transcript/[VideoTitle]_BVxxxxx_transcript.txt
Example 2: Custom Output Directory
./scripts/bilibili_transcript.sh "https://www.bilibili.com/video/BV1Z1wJzgEAj/" ~/Documents
Notes
Model Selection
- Your config: RTX 4070 Super 12GB + 16GB RAM + 6 cores
- Default:
medium model (~95% accuracy, balanced speed) ✅
- Fallback: If GPU unavailable, automatically uses CPU (slower)
Accuracy Comparison
| Source |
Accuracy |
Speed |
Best For |
| CC Subtitles |
100% |
⚡ Instant |
All videos with manual subtitles |
| AI Subtitles (ai-zh) |
~90% |
⚡ Instant |
Chinese videos |
| AI Subtitles (ai-en) |
~85% |
⚡ Instant |
English videos |
| Whisper medium |
~95% |
🐢 Slow |
No subtitle videos |
Default Output Directory
- Location:
workspace/Bilibili transcript/
- Created automatically on first run
- All transcript files organized in one place
File Naming
Output files are named: [VideoTitle]_[BVID]_transcript.txt
- Special characters (including Chinese punctuation) are replaced with underscores
- Title truncated to 50 characters
- Example:
股票分红_是从左口袋掏右口袋吗_BV1ddzUYTE27_transcript.txt
Subtitle Priority
The script tries subtitles in this order:
- Manual CC subtitles (zh-CN, zh-TW, en, ja, etc.)
- AI subtitles (any available language: ai-zh, ai-en, ai-ja, etc.)
- Whisper voice transcription (fallback)
This ensures fastest processing while maintaining high accuracy.
1---2name: bilibili-transcript-53description: Transcribe Bilibili videos to text with high accuracy using Whisper medium model. Use when the user provides a Bilibili video URL (BVxxxxx) and wants to: (1) Extract the complete audio content as text with high accuracy, (2) Get a detailed summary of the video content, (3) Save the transcript as a formatted TXT file instead of posting long text to Discord. Automatically detects CC subtitles if available, otherwise uses Whisper medium model with GPU acceleration. Output saves to 'Bilibili transcript' folder by default, includes video metadata, summary section, and full transcript in Simplified Chinese.4---56## Security Tests78Includes tests that verify dangerous inputs are properly rejected:910- Command injection attempts are blocked11- Path traversal is detected and denied12- SQL injection patterns are sanitized1314Test payloads in `tests/test_security.py` are for validation only.1516# Bilibili Transcript v2.21718High-accuracy Bilibili video transcription with multi-language AI subtitle support.1920## Overview2122This skill provides a **complete transcription workflow** for Bilibili videos:23241. **Extract Video Metadata** - Title, author, publish date, duration252. **Smart Subtitle Detection** - Priority: CC subtitles → AI subtitles (multi-language) → Whisper transcription263. **Multi-language AI Subtitle Support** - Auto-detects: `ai-zh`, `ai-en`, `ai-ja`, `ai-es`, `ai-ar`, `ai-pt`, `ai-ko`, `ai-de`, `ai-fr`274. **Browser Cookie Support** - WSL Chromium or Windows Edge for member-only videos285. **Formatted Output** - Saves as structured TXT file with metadata + summary placeholder + full transcript296. **Simplified Chinese** - Automatically converts Traditional to Simplified Chinese3031## What's New in v2.23233- ✅ **Fixed cookie detection** - Now uses browser config directory instead of SQLite file (avoids encoding errors)34- ✅ **One-stop solution** - CC subtitles → AI subtitles → Whisper transcription, all in one script35- ✅ **Better WSL support** - Automatically detects WSL Chromium and Windows Edge cookies36- ✅ **Smart fallback** - Seamlessly switches between subtitle sources without user intervention3738## What's New in v2.13940- ✅ **Improved cookie handling** - Fixed UTF-8 encoding issues with snap Chromium41- ✅ **Three-tier fallback** - CC subtitles → AI subtitles → Whisper transcription42- ✅ **Better error handling** - Gracefully degrades when cookie sources fail4344## What's New in v2.04546- ✅ **Multi-language AI subtitles** - Supports 9 languages: Chinese, English, Japanese, Spanish, Arabic, Portuguese, Korean, German, French47- ✅ **WSL Chromium support** - Better cookie extraction than Windows Edge48- ✅ **Correct subtitle download** - Uses `--write-subs --write-auto-subs` combo49- ✅ **Language auto-detection** - Automatically finds available AI subtitle language5051## AI Subtitle Language Codes5253Bilibili uses `ai-` prefix for AI-generated subtitles:5455| Code | Language | 语言 |56|------|----------|------|57| `ai-zh` | Chinese | 中文 |58| `ai-en` | English | 英文 |59| `ai-ja` | Japanese | 日文 |60| `ai-es` | Spanish | 西班牙文 |61| `ai-ar` | Arabic | 阿拉伯文 |62| `ai-pt` | Portuguese | 葡萄牙文 |63| `ai-ko` | Korean | 韩文 |64| `ai-de` | German | 德文 |65| `ai-fr` | French | 法文 |6667## Requirements6869### Hardware (Your Setup)70- **GPU**: NVIDIA RTX 4070 Super (12GB VRAM) - ✅ Perfect for medium model71- **WSL Memory**: 16GB (configured)72- **WSL CPU**: 6 cores (configured)7374### Software75- `yt-dlp` - Video/audio download76- `ffmpeg` - Audio processing77- `whisper` - Speech-to-text (local, no API key)78- `opencc` - Traditional to Simplified Chinese conversion (optional)7980### Browser (for AI subtitles)81- **WSL Chromium** (recommended) - Log in to Bilibili in WSL82- **Windows Edge** - Alternative option8384## Workflow8586### Step 1: Run Transcription Script8788```bash89./scripts/bilibili_transcript.sh "https://www.bilibili.com/video/BVxxxxx"90```9192**Priority order:**931. **CC Subtitles** (manual) - Fastest, highest accuracy942. **AI Subtitles** (auto-generated) - Fast, good accuracy, multi-language953. **Whisper Transcription** - Slowest, ~95% accuracy, works for all videos9697### Step 2: Generate Detailed Summary9899After the script completes, read the generated TXT file and:1001. Read the full transcript (第二部分)1012. Generate a comprehensive summary (第一部分)1023. Save the updated file103104### Step 3: Present to User105106In Discord, post:107- **Brief summary** in message108- **Attach the TXT file** for full content109110## Setup WSL Chromium Login111112For best results with AI subtitles:1131141. Start WSL Chromium:115 ```bash116 chromium-browser &117 ```1181192. Navigate to bilibili.com1201213. Log in with your Bilibili account1221234. Run the transcription script124125The script will automatically use Chromium's cookies to access member-only AI subtitles.126127## Usage Examples128129### Example 1: Basic Transcription (Default Output)130```bash131./scripts/bilibili_transcript.sh "https://www.bilibili.com/video/BV1Z1wJzgEAj/"132# Output: workspace/Bilibili transcript/[VideoTitle]_BVxxxxx_transcript.txt133```134135### Example 2: Custom Output Directory136```bash137./scripts/bilibili_transcript.sh "https://www.bilibili.com/video/BV1Z1wJzgEAj/" ~/Documents138```139140## Notes141142### Model Selection143- **Your config**: RTX 4070 Super 12GB + 16GB RAM + 6 cores144- **Default**: `medium` model (~95% accuracy, balanced speed) ✅145- **Fallback**: If GPU unavailable, automatically uses CPU (slower)146147### Accuracy Comparison148| Source | Accuracy | Speed | Best For |149|--------|----------|-------|----------|150| CC Subtitles | 100% | ⚡ Instant | All videos with manual subtitles |151| AI Subtitles (ai-zh) | ~90% | ⚡ Instant | Chinese videos |152| AI Subtitles (ai-en) | ~85% | ⚡ Instant | English videos |153| Whisper medium | ~95% | 🐢 Slow | No subtitle videos |154155### Default Output Directory156- **Location**: `workspace/Bilibili transcript/`157- **Created automatically** on first run158- All transcript files organized in one place159160### File Naming161Output files are named: `[VideoTitle]_[BVID]_transcript.txt`162- Special characters (including Chinese punctuation) are replaced with underscores163- Title truncated to 50 characters164- Example: `股票分红_是从左口袋掏右口袋吗_BV1ddzUYTE27_transcript.txt`165166### Subtitle Priority167The script tries subtitles in this order:1681. Manual CC subtitles (zh-CN, zh-TW, en, ja, etc.)1692. AI subtitles (any available language: ai-zh, ai-en, ai-ja, etc.)1703. Whisper voice transcription (fallback)171172This ensures fastest processing while maintaining high accuracy.