关于 bilibili-subtitle
bilibili-subtitle 是用于从 Bilibili 视频提取字幕并生成逐字稿的工具,适合处理视频文本的用户。它会在视频无字幕时回退到 ASR,并可输出校对和摘要文件。
主要功能
- 01提取 Bilibili 字幕
- 02无字幕时使用 ASR 转录
- 03生成 SRT、VTT 和 Markdown 逐字稿
- 04可选校对与摘要
- 05支持 JSON 和双语输出
适用场景
- 01为视频生成 Markdown 逐字稿
- 02在视频缺少字幕时进行转录
- 03以 JSON 格式交由父 Skill 解析
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ hamsterider-m/ bilibili-subtitle --skill bilibili-subtitle安装后在 Claude Code 中输入/bilibili-subtitle确认已加载。
包含的文件
除 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.md详细介绍
来自项目 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
评论
支持 Markdown