Bilibili Video Transcriber
by @adolescen-he
【B站字幕获取】专业处理 B 站视频字幕问题,支持语音转文字、字幕下载、内容分析。基于实际 B 站字幕系统错误问题开发,提供完整的解决方案。
clawhub install bilibili-video-transcriber📖 About This Skill
name: bilibili-video-transcriber description: 专业处理B站视频字幕问题,支持语音转文字、字幕下载、内容分析。基于实际B站字幕系统错误问题开发,提供完整的解决方案。 metadata: clawdbot: emoji: "🎬" requires: anyBins: - python3 - ffmpeg os: - linux - darwin - win32
🎬 B站视频转录专家
专业处理B站视频字幕问题,支持语音转文字、字幕下载、内容分析
📋 功能特性
✅ 核心功能
1. 智能字幕处理:自动检测B站字幕系统状态,智能选择最佳方案 2. 语音转文字:使用Whisper模型进行高精度语音识别 3. 国内镜像支持:自动使用国内镜像源,解决网络问题 4. 错误处理:自动检测字幕关联错误,切换到语音转文字 5. 批量处理:支持批量处理多个B站视频🔧 技术特点
🚀 快速开始
1. 安装依赖
# 安装技能包
clawhub install bilibili-transcriber-pro或手动安装依赖
pip install bilibili-api requests pydub faster-whisper
2. 配置Cookie
# 创建Cookie文件
echo "SESSDATA=xxx; bili_jct=xxx; buvid3=xxx; DedeUserID=xxx" > ~/.bilibili_cookie.txt
3. 基本使用
# 处理单个视频
bilibili-transcribe BV1txQGByERW指定Cookie文件
bilibili-transcribe BV1txQGByERW --cookie ~/.bilibili_cookie.txt批量处理
bilibili-transcribe --batch bv_list.txt
📖 详细用法
命令行工具
# 查看帮助
bilibili-transcribe --help处理视频并保存结果
bilibili-transcribe BV1txQGByERW --output ./results使用指定模型
bilibili-transcribe BV1txQGByERW --model medium仅下载音频
bilibili-transcribe BV1txQGByERW --audio-only检查字幕状态
bilibili-transcribe BV1txQGByERW --check-only
Python API
from bilibili_transcriber import BilibiliTranscriber初始化
transcriber = BilibiliTranscriber(
cookie_file="~/.bilibili_cookie.txt",
model="base",
use_china_mirror=True
)处理视频
result = transcriber.process(
bvid="BV1txQGByERW",
output_dir="./output"
)批量处理
results = transcriber.process_batch(
bvids=["BV1txQGByERW", "BV1xxxxxxx"],
output_dir="./batch_output"
)
🛠️ 配置选项
配置文件 ~/.config/bilibili_transcriber/config.yaml
# Cookie配置
cookie:
file: "~/.bilibili_cookie.txt"
auto_refresh: true
refresh_interval: 86400 # 24小时模型配置
model:
name: "base" # base/small/medium
device: "cpu" # cpu/cuda
compute_type: "int8"
language: "zh"网络配置
network:
hf_endpoint: "https://hf-mirror.com"
timeout: 30
retry_times: 3输出配置
output:
default_dir: "./bilibili_transcripts"
save_audio: true
save_subtitles: true
format: "txt" # txt/json/markdown验证配置
validation:
keyword_match_threshold: 0.3
min_transcript_length: 50
check_duration_match: true
📊 输出格式
1. 文本格式 (transcript.txt)
[0.00s -> 3.90s] 兄弟们HermesAgent刚刚发布了更新4.13
[3.90s -> 5.76s] 那么这一次最大的一个升级呢
[5.76s -> 9.00s] 是它带来了本地的外部控制面板
...
2. JSON格式 (transcript.json)
{
"video_info": {
"bvid": "BV1txQGByERW",
"title": "HermesAgent突然上WebUI了!这一波,体验直接拉满",
"duration": 210,
"up": "磊哥聊AI"
},
"transcript": [
{
"start": 0.0,
"end": 3.9,
"text": "兄弟们HermesAgent刚刚发布了更新4.13",
"confidence": 0.95
},
...
],
"metadata": {
"model": "base",
"language": "zh",
"processing_time": 45.2
}
}
3. Markdown格式 (summary.md)
# HermesAgent突然上WebUI了!这一波,体验直接拉满视频信息
BV号: BV1txQGByERW
时长: 210秒
UP主: 磊哥聊AI
处理时间: 2026-04-15 08:16:00 核心内容
1. HermesAgent 4.13版本发布
2. 新增本地WebUI控制面板
3. 支持中英文界面
4. 提供状态监控、会话管理等功能
完整转录
[0.00s -> 3.90s] 兄弟们HermesAgent刚刚发布了更新4.13
...
🔍 高级功能
1. 字幕验证系统
# 自动验证字幕准确性
validator = SubtitleValidator()
result = validator.validate(
transcript=transcript_text,
video_title=video_title,
keywords=["HermesAgent", "WebUI", "控制面板"]
)if result["is_valid"]:
print(f"✅ 字幕验证通过: {result['match_rate']:.1%} 匹配度")
else:
print(f"⚠️ 字幕可能有问题: {result['match_rate']:.1%} 匹配度")
2. 批量处理
# 创建视频列表文件
echo "BV1txQGByERW" > bv_list.txt
echo "BV1xxxxxxx" >> bv_list.txt批量处理
bilibili-transcribe --batch bv_list.txt --parallel 3
3. 结果分析
from bilibili_transcriber.analyzer import TranscriptAnalyzeranalyzer = TranscriptAnalyzer()
analysis = analyzer.analyze(transcript_text)
print(f"总时长: {analysis['duration']}秒")
print(f"段落数: {analysis['segment_count']}")
print(f"关键词: {analysis['top_keywords']}")
print(f"摘要: {analysis['summary']}")
⚙️ 故障排除
常见问题
#### 1. Cookie失效
# 重新获取Cookie
bilibili-transcribe --update-cookie手动设置Cookie
export BILIBILI_COOKIE="SESSDATA=xxx; bili_jct=xxx"
#### 2. 网络问题
# 使用代理
bilibili-transcribe BV1txQGByERW --proxy http://127.0.0.1:7890切换镜像源
bilibili-transcribe BV1txQGByERW --mirror https://mirror.example.com
#### 3. 模型下载失败
# 使用本地模型
bilibili-transcribe BV1txQGByERW --model-path ./local_models/跳过模型下载检查
bilibili-transcribe BV1txQGByERW --skip-model-check
调试模式
# 启用详细日志
bilibili-transcribe BV1txQGByERW --verbose调试模式
bilibili-transcribe BV1txQGByERW --debug保存中间文件
bilibili-transcribe BV1txQGByERW --keep-temp
📈 性能优化
1. 缓存机制
# 启用缓存
transcriber = BilibiliTranscriber(
use_cache=True,
cache_dir="~/.cache/bilibili_transcriber",
cache_ttl=3600 # 1小时
)
2. 并行处理
# 并行处理多个视频
bilibili-transcribe --batch bv_list.txt --parallel 4指定线程数
bilibili-transcribe BV1txQGByERW --threads 2
3. 资源限制
# 限制内存使用
bilibili-transcribe BV1txQGByERW --max-memory 2G限制CPU使用
bilibili-transcribe BV1txQGByERW --cpu-limit 50%
🔗 集成示例
1. 与OpenClaw集成
from openclaw.skills import bilibili_transcriber@skill("bilibili-transcribe")
def handle_bilibili_transcribe(request):
"""处理B站视频转录请求"""
bvid = request.params.get("bvid")
# 调用转录功能
result = bilibili_transcriber.process(bvid)
# 返回结果
return {
"success": True,
"data": result
}
2. 自动化工作流
# workflow.yaml
name: B站视频处理流水线
steps:
- name: 下载视频
action: bilibili-transcribe
params:
bvid: "{{ input.bvid }}"
output: "./raw"
- name: 内容分析
action: analyze-transcript
params:
input: "./raw/transcript.txt"
output: "./analysis"
- name: 生成报告
action: generate-report
params:
analysis: "./analysis"
template: "video_report.md"
📚 使用案例
案例1:技术教程转录
# 转录AI技术教程
bilibili-transcribe BV1txQGByERW --output ./ai_tutorials生成学习笔记
bilibili-transcribe BV1txQGByERW --format markdown --template study_note.md
案例2:内容分析
# 分析多个视频内容
from bilibili_transcriber import BatchAnalyzeranalyzer = BatchAnalyzer()
results = analyzer.analyze_batch(
bvids=["BV1txQGByERW", "BV1xxxxxxx"],
analysis_types=["keywords", "summary", "sentiment"]
)
生成对比报告
report = analyzer.generate_comparison_report(results)
案例3:自动化监控
# 监控特定UP主的新视频
from bilibili_transcriber.monitor import VideoMonitormonitor = VideoMonitor(
up_mid="12345678", # UP主ID
check_interval=3600, # 每小时检查一次
callback=process_new_video
)
monitor.start()
🧪 测试
单元测试
# 运行测试
python -m pytest tests/测试特定功能
python -m pytest tests/test_download.py
python -m pytest tests/test_transcribe.py
集成测试
# 测试完整流程
python -m pytest tests/integration/test_full_flow.py使用测试Cookie
BILIBILI_TEST_COOKIE="test_cookie" python -m pytest
📄 许可证
MIT License
🤝 贡献指南
1. Fork项目 2. 创建功能分支 3. 提交更改 4. 创建Pull Request
📞 支持
基于实际经验开发,专门解决B站字幕系统错误问题,稳定可靠!
📋 Tips & Best Practices
#### 1. Cookie失效
# 重新获取Cookie
bilibili-transcribe --update-cookie手动设置Cookie
export BILIBILI_COOKIE="SESSDATA=xxx; bili_jct=xxx"
#### 2. 网络问题
# 使用代理
bilibili-transcribe BV1txQGByERW --proxy http://127.0.0.1:7890切换镜像源
bilibili-transcribe BV1txQGByERW --mirror https://mirror.example.com
#### 3. 模型下载失败
# 使用本地模型
bilibili-transcribe BV1txQGByERW --model-path ./local_models/跳过模型下载检查
bilibili-transcribe BV1txQGByERW --skip-model-check
调试模式
# 启用详细日志
bilibili-transcribe BV1txQGByERW --verbose调试模式
bilibili-transcribe BV1txQGByERW --debug保存中间文件
bilibili-transcribe BV1txQGByERW --keep-temp