About bilibili-subtitle
bilibili-subtitle extracts subtitles and transcripts from Bilibili videos for people processing video content. It falls back to ASR when subtitles are unavailable and can produce proofreading and summary files.
Key features
- 01Extract Bilibili subtitles
- 02Use ASR when subtitles are absent
- 03Create SRT, VTT, and Markdown transcripts
- 04Optional proofreading and summaries
- 05JSON and bilingual output
Use cases
- 01Create a Markdown transcript from a video
- 02Transcribe videos without subtitles
- 03Pass JSON output to a parent skill
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ hamsterider-m/ bilibili-subtitle --skill bilibili-subtitleAfter installing, type/bilibili-subtitlein Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
.gitignoreREADME.mdpixi.tomlopencode.jsoninstall.shbilibili_subtitle/bbdown_client.pyaudio_extractor.py__main__.py__init__.pycache.pychunker.pycontract.pyerrors.pymerger.pydetector.pylanguages.pypreflight.pysegment.pysubtitle_loader.pyurl_parser.pybilibili_subtitle/agents/translate_agent.pyproofread_agent.pysummarize_agent.pytranscribe_agent.pybilibili_subtitle/converters/srt_converter.pybilibili_subtitle/renderers/_time.pymarkdown.pysrt.pyvtt.pyplans/bilibili-subtitle-skill-plan.mdDetails
From the project READMEBilibili 字幕提取工具
从 Bilibili 视频提取字幕,支持 AI 字幕检测和 ASR 转录回退。
Quick Reference
| 任务 | 命令 |
|---|---|
| 前置检查 | pixi run python -m bilibili_subtitle --check |
| 基本提取 | pixi run python -m bilibili_subtitle "BV1234567890" |
| 快速模式 | pixi run python -m bilibili_subtitle "URL" --skip-proofread --skip-summary |
| JSON 输出 | pixi run python -m bilibili_subtitle "URL" --json-output |
| 双语输出 | pixi run python -m bilibili_subtitle "URL" --output-lang zh+en |
执行层级
┌─────────────────────────────────────────────────────────┐
│ Layer 0: Preflight Check (前置检查) │
│ --check → 验证 BBDown/API Keys/登录状态 │
├─────────────────────────────────────────────────────────┤
│ Layer 1: Video Detection (视频检测) │
│ URL → BBDown → 字幕存在性检测 │
├─────────────────────────────────────────────────────────┤
│ Layer 2: Content Extraction (内容提取) │
│ 有字幕 → 加载 SRT → 校对 │
│ 无字幕 → 下载音频 → ASR 转录 → 校对 │
├─────────────────────────────────────────────────────────┤
│ Layer 3: Enhancement (增强处理) │
│ 校对(ANTHROPIC_API_KEY) → 摘要(ANTHROPIC_API_KEY) │
└─────────────────────────────────────────────────────────┘
前置条件检查
必须先运行,验证环境配置:
pixi run python -m bilibili_subtitle --check
输出示例:
✅ BBDown: Installed (1.6.3)
✅ BBDown Auth: Logged in
✅ ffmpeg: Installed
⚠️ ANTHROPIC_API_KEY: Not set (required for proofreading)
⚠️ DASHSCOPE_API_KEY: Not set (required for ASR)
✅ Python Dependencies: All installed
JSON 格式输出(便于父 skill 解析):
pixi run python -m bilibili_subtitle --check --check-json
错误分级
| Code | Level | 说明 | 修复建议 |
|---|---|---|---|
| E001 | FATAL | BBDown 未安装 | ./install.sh |
| E002 | FATAL | BBDown 未登录 | BBDown login |
| E003 | RECOVERABLE | 下载失败 | 检查 URL/网络 |
| E004 | RECOVERABLE | 无字幕 | 自动触发 ASR |
| E005 | FATAL | ASR 未配置 | 设置 DASHSCOPE_API_KEY |
| E006 | RECOVERABLE | AI 功能未配置 | 使用 --skip-* 或设置 API Key |
| E007 | FATAL | ffmpeg 未安装 | pixi install |
| E008 | FATAL | URL 无效 | 提供正确的 BV/URL |
| E010 | FATAL | 视频不存在 | 检查视频是否删除/私有 |
退出码:
0- 成功1- 致命错误(FATAL)2- 可恢复错误(RECOVERABLE,部分完成)3- 部分成功(有警告)
作为子 Skill 的调用契约
标准调用
pixi run python -m bilibili_subtitle "<URL>" \
-o /tmp/bilibili_output \
--skip-summary \
--json-output
成功判定
- 退出码为
0或2 - 输出目录存在
*.transcript.md
JSON 输出结构
{
"exit_code": 0,
"success": true,
"output": {
"video_id": "BV1xxx",
"title": "视频标题",
"files": {
"transcript": "/path/to/xxx.transcript.md",
"srt": "/path/to/xxx.srt",
"vtt": "/path/to/xxx.vtt",
"summary_json": null
}
},
"warnings": [],
"errors": []
}
父 Skill 集成示例
from bilibili_subtitle import build_cli_command, ExitCode
cmd = build_cli_command(
"BV1xxx",
output_dir="/tmp/output",
skip_proofread=True,
skip_summary=True,
)
# ['pixi', 'run', 'python', '-m', 'bilibili_subtitle', 'BV1xxx', ...]
输出文件
output/
├── {title}.srt # SRT 字幕
├── {title}.vtt # VTT 字幕
├── {title}.transcript.md # Markdown 逐字稿
├── {title}.summary.json # 结构化摘要 (可选)
└── {title}.summary.md # 摘要 Markdown (可选)
API Keys
| Key | Provider | 用途 | 必需性 |
|---|---|---|---|
ANTHROPIC_API_KEY | Anthropic | 校对/摘要 | 推荐 |
DASHSCOPE_API_KEY | 阿里云 | ASR 转录 | 无字幕时必需 |
安装
cd ~/.agents/skills/bilibili-subtitle
./install.sh
BBDown login # 扫码登录
详细文档
- references/preflight.md - 前置检查详解
- references/errors.md - 错误处理指南
- references/contract.md - 子 Skill 契约
- references/agents.md - AI Agent 配置
版本: v0.2.0
Comments
Markdown supported