bilibili-subtitle

SKILL.md

Bilibili 字幕提取工具

从 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

成功判定

  1. 退出码为 02
  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  # 扫码登录

详细文档


版本: v0.2.0

Weekly Installs
1
First Seen
6 days ago
Installed on
amp1
cline1
pi1
openclaw1
opencode1
cursor1