dsh-bili-live:在 DSH 里看 B 站直播弹幕,进房与发弹幕由人放行

前言

在 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 站凭证,并在设置页「重新自检」通过。

  1. 在 dsh.profile.bundles 中列出 dsh-bili-live(插件自带 cordis.patch.yml 插入默认全关配置)。

  2. 在插件专用 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
  1. 放置凭证 $DSH_HOME/bili-live/bili_credential.json:
{ "sessdata": "...", "bili_jct": "...", "buvid3": "...", "dedeuserid": "..." }

只读能力部分可不登录;发弹幕必须有凭证。

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

README 注明 v0.2.0 曾未完成独立插件端到端验证,适合愿意反馈问题的用户;安装前建议自行查看源码与 MIT 许可证。插件以当前 DSH 进程权限运行,凭证与配置均在本机目录。

典型用法

经过上面的安装步骤后,可按 README 建议顺序操作:

  1. 先放行:设置页「放行名单」填房间号 / UP 主昵称 / UID →「放行」。名单为空则刻意拒绝所有房间。
  2. 再挂机(可选):「挂着听」填已放行房间;webhook 可留空(仅写 hint)。
  3. 要它开口:打开「允许发弹幕」。模型调用 bili_live_send 且 confirm=true,或在设置页手动发。
  4. 自动陪聊(可选):在设置页选 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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye