Skills bilibili-video-transcriber
专业处理B站视频字幕问题,支持语音转文字、字幕下载、内容分析。基于实际B站字幕系统错误问题开发,提供完整的解决方案。
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/adolescen-he/bilibili-video-transcriber" ~/.claude/skills/openclaw-skills-bilibili-video-transcriber && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/adolescen-he/bilibili-video-transcriber" ~/.openclaw/skills/openclaw-skills-bilibili-video-transcriber && rm -rf "$T"
manifest:
skills/adolescen-he/bilibili-video-transcriber/SKILL.mdsource content
🎬 B站视频转录专家
专业处理B站视频字幕问题,支持语音转文字、字幕下载、内容分析
📋 功能特性
✅ 核心功能
- 智能字幕处理:自动检测B站字幕系统状态,智能选择最佳方案
- 语音转文字:使用Whisper模型进行高精度语音识别
- 国内镜像支持:自动使用国内镜像源,解决网络问题
- 错误处理:自动检测字幕关联错误,切换到语音转文字
- 批量处理:支持批量处理多个B站视频
🔧 技术特点
- 绕过B站字幕系统:直接处理音频,避免字幕关联错误
- 多模型支持:Whisper base/small/medium模型可选
- Cookie管理:支持Cookie文件管理和自动刷新
- 进度显示:实时显示下载和转录进度
- 结果验证:自动验证转录内容与视频标题相关性
🚀 快速开始
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
~/.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
)
transcript.txt[0.00s -> 3.90s] 兄弟们HermesAgent刚刚发布了更新4.13 [3.90s -> 5.76s] 那么这一次最大的一个升级呢 [5.76s -> 9.00s] 是它带来了本地的外部控制面板 ...
2. JSON格式 (transcript.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
)
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 TranscriptAnalyzer analyzer = 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 BatchAnalyzer analyzer = 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 VideoMonitor monitor = 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
🤝 贡献指南
- Fork项目
- 创建功能分支
- 提交更改
- 创建Pull Request
📞 支持
- 问题反馈: GitHub Issues
- 文档: https://github.com/yourname/bilibili-transcriber-pro
- 讨论: Discord/微信群
基于实际经验开发,专门解决B站字幕系统错误问题,稳定可靠!