DSH 插件 bilibili_subtitle:B 站视频字幕提取与本地 ASR 回退

前言

在 DeepSeek Harness(DSH)里做视频内容相关的智能体任务时,常见需求是把 B 站讲的要点落成可检索、可引用的文本。手动开播放器抄字幕,或单独写脚本拉接口、再折腾语音识别,都会打断工作区里的对话流。

下面介绍的 dsh-plugin-bilibili-subtitle(维护者 TimYi,分类为联网工具)把这件事收成 DSH 里一个工具:传入视频链接或 BV 号,在工作区生成 .srt 与 .txt。有官方 CC/AI 字幕时优先取用;没有时在本机用 SenseVoice-small 转写,不依赖显卡与 B 站登录。

这是什么

该插件面向 DeepSeek Harness 用户,注册工具名 bilibili_subtitle。源码与说明见 GitHub:TimYi/dsh-plugin-bilibili-subtitle,社区目录页为 SkillHub 插件页。当前 package 版本为 0.1.0,许可证 MIT,要求 DSH >=0.2.0。

核心功能

依据仓库 README,能力边界如下。

  1. 官方字幕:通过 B 站播放器相关接口获取 CC/AI 轨道(含 wbi 签名),转成 SRT/TXT。
  2. ASR 回退:无可用官方字幕时,拉取音轨,经 PyAV 解码后用 sherpa-onnx 加载 SenseVoice-small 在 CPU 上逐段识别,再按规则分配时间轴。
  3. 输出位置固定:文件落在工作区 bilibili-subtitles/ 下,命名含 BV 与标题。
  4. 模式可选:mode 支持 auto(默认)、official、asr;language 默认 zh。

返回结果中的 source 会标明本次用的是 official 还是 asr,便于后续校对策略。

安装与启用

插件以 bundle 形式声明(cordis.patch.yml),装好后工具随 profile 全局可用。安装前请自行审阅源码与 MIT 许可证;插件在 当前 DSH 进程权限 下运行,会发起联网请求并可能写入本机缓存目录。

从插件市场索引安装

在 DSH 设置 → 插件 → 索引(Discover)中加入市场索引地址:

https://raw.githubusercontent.com/TimYi/dsh-plugin-bilibili-subtitle/main/market/index.json

随后在 Discover 中搜索「B 站字幕」完成安装。

从 Git 安装

dsh plugin install "git+https://github.com/TimYi/dsh-plugin-bilibili-subtitle.git"

或在 profile 目录执行:

pnpm add "git+https://github.com/TimYi/dsh-plugin-bilibili-subtitle.git"

典型用法

工具参数如下(摘自 README)。

参数 必填 说明
url 是 视频链接或 BV 号
mode 否 auto / official / asr,默认 auto
language 否 官方字幕语言偏好或 ASR 语言标签,默认 zh

输出示例路径:

<工作区>/bilibili-subtitles/<BV>-<标题>.srt
<工作区>/bilibili-subtitles/<BV>-<标题>.txt

在 DSH 会话中可直接用自然语言触发,例如:

用 bilibili_subtitle 提取 https://www.bilibili.com/video/BV13Axv6EEsa/

工作原理与运行环境(摘要)

README 中的处理顺序便于排查「为什么这次是 ASR」:

  1. 先取视频信息(x/web-interface/view;遇 412 风控则解析页面 __INITIAL_STATE__)。
  2. 官方字幕走 x/player/wbi/v2 → 轨道 JSON → SRT。
  3. ASR 路径:x/player/playurl 取音轨 → 16 kHz 单声道 → 静音切段 → SenseVoice 识别。

首次 ASR 会准备 Python 虚拟环境与模型(约 240 MB),默认缓存于 ~/.cache/dsh-bilibili-subtitle/(不可写时退回 <工作区>/.bilibili-subtitle-cache/)。需要本机 python3(≥3.10)与 python3 -m venv。性能参考:README 记载 83 分钟视频在 8 核 CPU 上约 5 分钟(RTF≈0.055)。

适用场景与注意

适合:需要在 DSH 工作区里快速拿到 B 站口述稿、做摘要/检索/二次加工,且能接受 ASR 误差时校对。

限制(均来自 README,勿当作保证):

  • 多 P 视频只处理第一 P。
  • 官方字幕对匿名请求多数不可用,实际常走 ASR。
  • ASR 对专名、术语易错;首次需联网拉依赖与模型,之后 ASR 部分可离线,取音轨仍要联网。

SkillHub 上的社区目录由第三方维护,与 DeepSeek / 幻方无官方从属关系;安装来源以你配置的索引或上述 Git 地址为准。

结尾

dsh-plugin-bilibili-subtitle 把「链接触发 → 字幕文件落盘」收进 DSH 工具链:能拿官方轨就拿,否则本机 SenseVoice 顶上。进一步细节、Issue 与更新以仓库为准。

  • 目录页:https://www.skillhub.cn/plugins/TimYi/dsh-plugin-bilibili-subtitle
  • GitHub:https://github.com/TimYi/dsh-plugin-bilibili-subtitle
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜