dsh-bili-danmaku-lite:DSH 下的 B 站直播彈幕輕量插件

前言

在 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
羽毛球分组比赛记分
小程序二维码

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

小夜