前言¶
在 DeepSeek Harness(DSH)里做智能体时,若要把能力接到 B 站直播间,常见做法是另起一套弹幕机器人或依赖 QQBridge 等桥接。那样往往进房、发话边界模糊,和 DSH 的插件模型也不一致。下面介绍社区插件 dsh-bili-live(维护者 rentaoyan0628-collab,分类:联网工具):在 DSH 内读弹幕、在用户授权后发弹幕、可选挂机监听与 AI 自动陪聊;v0.4 起还可选把直播语音转成文字供陪聊上下文,但不看画面。所有「进入某房间」「发弹幕」的动作默认卡在用户手里——模型只能申请,放行在设置页点。
这是什么¶
dsh-bili-live 是给 DSH 用的 B 站直播间插件:查房间与弹幕、监听实时事件、发弹幕、后台「挂着听」、可选自动陪聊;无需 QQ 机器人。数据与凭证落在本机 $DSH_HOME/bili-live/(可用 DSH_BILI_LIVE_HOME 覆盖),B 站 cookie 不进仓库、不进发布包。
与「刷 B 站」类插件(推荐流、评论、报告)或常见关键词即回的直播机器人不同,这里刻意把边界画死:放行名单为空则哪个房间都进不去;发弹幕总开关默认关,且同一房间约 60 秒 1 条;自动陪聊会先让模型判断要不要接话(可回 SKIP)。当前 npm 包版本为 0.4.0(MIT),要求 DSH >=0.1.7-rc.1、Node >=22。
核心功能¶
能力按「谁触发」划分如下(均来自项目 README)。
| 能力 | 触发方 | 说明 |
|---|---|---|
| 查房间信息 / 最近弹幕 | 模型 | 只读:是否在播、标题、分区、在线人数等 |
| 监听实时弹幕若干秒 | 模型 | 只读:弹幕、礼物、SC、进场等 |
| 发弹幕 | 模型(需 confirm=true)或设置页 |
默认关;有冷却与日志 |
| 申请进入某房间 | 模型 | 只写待批申请,放行必须人来点 |
| 挂着听 | 模型或设置页 | 后台 worker 收弹幕,可选 POST 到 webhook |
| 自动陪聊 | 设置页开关 | 读增量弹幕(有转录时也读)→ 模型判断是否接话 → 队列发送 |
| 听声音 / 语音转写(v0.4) | 模型或设置页 | 拉流分段 ASR,只转文字、不发弹幕;默认只留最近约 5 分钟 |
模型侧工具包括 bili_live_info、bili_live_feed、bili_live_send、bili_live_request、挂机相关 bili_live_watch_*、日志与自检 bili_live_log / bili_live_doctor,以及 v0.4 的 bili_live_audio_*、bili_live_transcript、bili_live_asr_probe 等。每次发送(含草稿、被拦、失败)会写入 logs/danmaku.jsonl。
安装与启用¶
先从 GitHub 安装到 desktop profile(官方命令):
dsh plugin --profile desktop add github:rentaoyan0628-collab/dsh-bili-live
若 npm 上已有发布,也可(发布者见 npm 包页):
dsh plugin --profile desktop add dsh-bili-live
安装后还需 Python 依赖与 B 站凭证,并在设置页「重新自检」通过。
-
在
dsh.profile.bundles中列出dsh-bili-live(插件自带cordis.patch.yml插入默认全关配置)。 -
在插件专用 venv 安装依赖(路径以 README 为准,Linux/macOS 用
bin/python):
python -m venv "$DSH_HOME/bili-live/.venv"
"$DSH_HOME/bili-live/.venv/bin/python" -m pip install -r requirements.txt
- 放置凭证
$DSH_HOME/bili-live/bili_credential.json:
{ "sessdata": "...", "bili_jct": "...", "buvid3": "...", "dedeuserid": "..." }
只读能力部分可不登录;发弹幕必须有凭证。
- DSH 设置页 →「B站直播」→「重新自检」,看到 Python 就绪、已有 B 站凭证后再用。
README 注明 v0.2.0 曾未完成独立插件端到端验证,适合愿意反馈问题的用户;安装前建议自行查看源码与 MIT 许可证。插件以当前 DSH 进程权限运行,凭证与配置均在本机目录。
典型用法¶
经过上面的安装步骤后,可按 README 建议顺序操作:
- 先放行:设置页「放行名单」填房间号 / UP 主昵称 / UID →「放行」。名单为空则刻意拒绝所有房间。
- 再挂机(可选):「挂着听」填已放行房间;webhook 可留空(仅写 hint)。
- 要它开口:打开「允许发弹幕」。模型调用
bili_live_send且confirm=true,或在设置页手动发。 - 自动陪聊(可选):在设置页选 provider / 模型、写人设、定节奏后启用;多数时候会沉默。
配置主文件为 $DSH_HOME/bili-live/config.json,设置页为其前端。节选字段:
{
"pythonPath": "",
"botName": "大肥鱼",
"sendEnabled": false,
"autoChat": {
"enabled": false,
"provider": "", "model": "",
"persona": "你是直播间里的一个普通观众,说话短、口语、不客套。",
"tickSec": 20, "windowSec": 150,
"minLines": 2, "minGapSec": 240, "perHour": 8, "maxChars": 60
},
"audio": { "model": "small", "device": "auto", "window": 15, "overlap": 2, "keep": 300 }
}
若启用 v0.4「听声音」,需 ffmpeg 在 PATH(或 DSH_BILI_LIVE_FFMPEG),并在 venv 装 faster-whisper 或配置 whisper.cpp;设置页「听声音」里对已放行房间「开始听」。转写文本会随自动陪聊 prompt 交给所选模型供应商,隐私细节见仓库 docs/PRIVACY.md。
适用场景与注意¶
适合:已在用 DSH desktop profile、希望智能体只读或受控参与 B 站直播间、且接受本机 Python venv 与 cookie 维护的开发者。
注意:
- 不抽帧、不做视觉理解;听声音为可选,CPU 转写有延迟与错字。
- 不自动进房;未放行房间连只读 info/feed 也会被拒。
- 弹幕发出后无法撤销;冷却与上限只能减手滑,不能代替人工审核。
- 社区目录页(SkillHub)与 DeepSeek / 幻方无官方从属关系,插件来自社区维护者 rentaoyan0628-collab。
结尾¶
dsh-bili-live 把 B 站直播能力收进 DSH 插件:看弹幕、受控发弹幕、可选挂机与陪聊,进房与说话权默认在人一侧。目录与源码:
- https://www.skillhub.cn/plugins/rentaoyan0628-collab/dsh-bili-live
- https://github.com/rentaoyan0628-collab/dsh-bili-live