소스 정보
- 저장소
- CNife/bilibili-transcript
- 최근 소스 활동
- 2026년 8월 9일 14:46
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 0
- 포크
- 0
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/CNife/bilibili-transcript --skill bilibili-transcript명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | bilibili-transcript |
| disable-model-invocation | true |
| description | 把哔哩哔哩直播回放(单 P 视频)转成时间线回顾(Recap)。输入 BV 号或视频 URL。 |
把哔哩哔哩直播回放转成按时间线组织、按主题分组的 Recap Markdown。
领域语言见 CONTEXT.md;形态决策见 docs/adr/。
Video → Audio → Transcript → Recap
transcript.json + meta.json)Transcript 是缓存层:同一 BV 已生成则跳过 ASR。重跑 Recap 时步骤 2 直接缓存命中,不重下载、不重转录。
后端三选一,禁止静默替用户决定、禁止自动降级:
| backend | 含义 | 依赖 extra | 费用 |
|---|---|---|---|
cpu | 本地 SenseVoice,CPU | cpu | 免费 |
rocm | 本地 SenseVoice,ROCm GPU | rocm | 免费 |
aliyun | 云端 Paraformer-v2 | aliyun + .env 凭证 | 按量 |
解析顺序:
.bilibili-transcript.json 且含合法 backend → 采用之,向用户确认本次沿用(一句话即可)uv run bili-prepare --probe
根据 JSON(suggested、rocm_available、aliyun_ready 等)给出建议,询问用户选 cpu / rocm / aliyun。
3. 用户确认后写入项目根(该文件已 gitignore):
{
"backend": "cpu"
}
可用 shell 写入,例如:
printf '%s\n' '{"backend":"cpu"}' > .bilibili-transcript.json
rocm 但 GPU 不可用、选 aliyun 缺凭证)→ 硬失败;向用户解释错误,征得同意后改配置/参数再跑,不要擅自换后端重试。在项目根目录同步执行(不要后台):
uv run bili-prepare <BV号或URL> --backend <cpu|rocm|aliyun> [--force]
--backend;推荐显式传入以便日志与用户预期一致.cache/<BV>/:transcript.json(segments [{start, end, text}],秒)、meta.json(元信息 + ASR 统计)--force 重下载并重跑 ASR完成标准:exit 0,transcript.json 非空(≥1 段),meta.json 可读且含 backend、duration_s、title。
读 .cache/<BV>/transcript.json 的全部 segments(整段喂入,不做 map-reduce)与 meta.json(title、uploader、duration_s)。
超长分支:转录文本超出上下文窗口时,按时间顺序切块,每块按同一契约归纳,再按时间合并;任何块不得整块丢弃。
Recap Markdown 契约:
# {视频标题}## {主题} (start-end),时间戳 MM:SS,时间戳只出现在段级标题,条目内不加示例:
# 老木匠直播20260808(弹幕版)
## 开场闲聊 (00:00-05:00)
开场打招呼说早上变冷了,和弹幕聊了会儿天气,气氛轻松。
## 木工话题 (05:00-30:00)
开始讲今天的木工活:准备做一张桌子,先交代木料选择和尺寸规划。
完成标准(全部可检查):
duration_s - 60,尾段不得遗漏MM:SS-MM:SS 区间,与段内内容的时间范围一致;段内正文无时间戳写 recaps/{标题}.md(recaps/ 在项目根,不存在则创建;标题取 meta.json 的 title,把 /\:*?"<>| 替换为 _,去掉首尾空白)。
告知用户:Recap 路径 + ASR 统计(backend、耗时、成本,取自 meta.json)。