dsh-bili-danmaku-Lite: A Lightweight Plugin for Bilibili Live Danmaku in DSH

前言

在 DeepSeek Harness(DSH)里做 B 站直播相关能力时,常见需求是:让模型能读实时弹幕、在人工授权后再发言,而不是再搭一套 QQ 机器人或独立的 Node/Go 挂机服务。社区里也有「刷 B 站」类插件,但侧重点在推荐流浏览与评论,和直播间事件不是同一条路。

下面介绍维护者 rentaoyan0628-collab 发布的 dsh-bili-danmaku-lite(联网工具分类)。它把直播间边界收在「看弹幕、发弹幕、挂着听、可选自动陪聊与可选语音转写」上,且进房与发弹幕都卡在用户手里;包名里的 lite 指运行开销小,不是砍掉上述能力。

这是什么

dsh-bili-danmaku-lite 是跑在 DSH 宿主里的 B 站直播弹幕插件:实时读取直播间弹幕、在用户授权后发送弹幕,并提供可选的 AI 自动陪聊;不依赖 QQBridge 或 QQ 机器人。

该包原名为 dsh-bili-live,已停止发新版;改用新包名安装即可。插件在宿主里的运行时 id 仍是 bili-live,配置目录($DSH_HOME/bili-live)、放行名单与发弹幕日志沿用,不会丢。当前 npm 包版本为 0.5.0(MIT 许可证)。

与常见「关键词命中就回复」的弹幕机器人相比,这里默认放行名单为空则任何房间都进不去,发弹幕总开关默认关闭;模型只能申请进房或带 confirm=true 请求发送,放行与开关由人在设置页完成。

核心功能

能力按触发方划分如下(均来自项目 README)。

能力 谁触发 说明
查房间信息 / 最近弹幕 模型 只读:是否在播、标题、分区、在线人数等
监听实时弹幕若干秒 模型 只读:弹幕、礼物、SC、进场等
发弹幕 模型(需 confirm=true)或设置页 默认关;同一房间 60 秒 1 条;每次写日志
申请进入某房间 模型 只写待批申请,放行必须人来点
挂着听 模型或设置页 后台 worker 收弹幕写 hint,可向 webhook 白名单内的地址 POST
自动陪聊 设置页开关 读增量弹幕(含可选转录)→ 模型判断是否接话 → 队列发送
听声音 / 语音转写(v0.4 起) 模型或设置页 拉流转文字,只转写不发弹幕;不抽帧、不看画面
高光时间点(v0.5.0,可选) 离线脚本 + bili_highlights 直播结束后读本机日志分析弹幕密度与反应,不联网

轻量体现在:不常驻重进程、不默认下载模型,闲时几乎不占 CPU;重活仅在打开对应开关时启动。

模型侧主要工具包括:bili_live_info、bili_live_feed、bili_live_send、bili_live_request、bili_live_watch_start / watch_status / watch_stop、bili_live_audio_start 等转写相关工具,以及 v0.5.0 的 bili_highlights。完整列表见 GitHub README。

安装与启用

宿主要求:dsh >= 0.1.7-rc.1,node >= 22。

从 GitHub 安装到 desktop profile:

dsh plugin --profile desktop add github:rentaoyan0628-collab/dsh-bili-danmaku-lite

或通过 npm(包页发布者 n0y0t):

dsh plugin --profile desktop add dsh-bili-danmaku-lite

勿与旧包 dsh-bili-live 同时安装,运行时 id 相同会冲突。

安装插件后还需完成 Python 依赖与 B 站凭证,步骤如下。

  1. 确认插件已在 profile 的 bundles 中(自带 cordis.patch.yml 插入默认全关配置)。

  2. 在插件专用 venv 中安装 Python 依赖(勿装进系统 Python):

python -m venv "$DSH_HOME/bili-live/.venv"
"$DSH_HOME/bili-live/.venv/bin/python" -m pip install -r requirements.txt

Windows 下将 bin/python 换为 .venv/Scripts/python.exe。插件查找解释器顺序:设置页「Python 路径」→ 家目录 .venv → PATH 中的 python。

  1. 在本机放置 B 站登录凭证 $DSH_HOME/bili-live/bili_credential.json:
{ "sessdata": "...", "bili_jct": "...", "buvid3": "...", "dedeuserid": "..." }

只读能力部分可不登录;发弹幕必须有凭证。该文件仅落本机运行目录,不进仓库与发布包。

  1. 打开 DSH 设置页 →「B站直播」→「重新自检」,看到 Python 就绪 / 已有 B站 凭证 后再用。

配置主文件为 $DSH_HOME/bili-live/config.json,设置页为其前端。例如发弹幕默认关闭(sendEnabled: false),webhook 与自动陪聊等也在此配置。

典型用法

经过上面的安装与自检,可按 README 建议顺序使用。

  1. 先放行:设置页「放行名单」填写房间号 / UP 主昵称 / UID 并「放行」。名单为空则任何房间都进不去。

  2. 再挂机(可选):在「挂着听」里填房间;webhook 从「挂机叫醒 · webhook 白名单」下拉选择。模型调用 bili_live_watch_start 时若 webhook 不在白名单,会返回 status: webhook_not_allowed,worker 不会启动。

  3. 要它开口:打开「允许发弹幕」。之后模型调用 bili_live_send 且 confirm=true,或在设置页手动发送。每次发送(含草稿、被拦、失败)写入 logs/danmaku.jsonl。

  4. 自动陪聊(可选):在设置页选择 provider / 模型、写人设、定节奏后启用。模型多数会回 SKIP 保持沉默;默认约 4 分钟不重复、每小时 8 句、单句 40 字内。

若需 听声音:需 ffmpeg 在 PATH(或设置 DSH_BILI_LIVE_FFMPEG),并在 venv 或指定解释器中安装 faster-whisper 或配置 whisper.cpp;在设置页「听声音」对已放行房间「开始听」。转写文本默认只留最近约 5 分钟,仅作上下文,不代替画面。

v0.5.0 直播结束后,可用仓库内 python/highlights_analyze.py 与 highlights_index.py 分析本机 danmaku.jsonl 等日志,生成索引后用 bili_highlights 查询;规则与路径见 README「高光时间点」一节。

适用场景与注意

适合谁:已在用 DSH、希望把 B 站直播间当作模型可读可写(但写操作受控)的数据源,又不想维护独立弹幕机器人栈的开发者或主播侧实验。

权限与安全:插件以当前 DSH 进程权限运行;B 站 cookie 仅本机配置目录。挂机 webhook 只允许预先放行的 http(s) 地址;v0.4.x 起对认证不可用时的敏感接口、解释器路径、webhook 等有安全收紧,安装前建议在 GitHub 阅读源码与 MIT 许可证。

生态说明:DSH 社区插件目录(如 SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系;本文事实以项目 README 与 package.json 为准。

结尾

dsh-bili-danmaku-lite 把 B 站直播弹幕、授权发送、挂机监听与可选陪聊/转写收进 DSH 插件边界,强调「人能决定能不能进、能不能说」,而不是尽量多说话。

  • 目录页:https://www.skillhub.cn/plugins/rentaoyan0628-collab/dsh-bili-danmaku-lite
  • GitHub:https://github.com/rentaoyan0628-collab/dsh-bili-danmaku-lite
羽毛球分组比赛记分
小程序二维码

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

Xiaoye