前言¶
在 DSH(DeepSeek Harness)裏做智能體時,會話可以記意圖、調工具,但 B 站觀看歷史通常散落在官方 App 裏,和你在 Harness 裏寫的「本週少刷長視頻」之類計劃很難對照。手工導出或截圖既費事,也不方便讓模型按標題寫結論。
下面介紹社區插件 dsh-bili-statistics(維護者 apiaoapiao,分類:聯網工具)。它通過 B 站官方 API 讀取你自己的觀看歷史,在本地算出統計事實,再讓宿主模型寫概覽與計劃完成情況,結果可以出現在會話卡片、Markdown/HTML 報告,或通過 B 站私信、郵件推送。插件以 npm 包 dsh-bili-statistics 發佈,當前版本 0.2.0,許可證 MIT。
這是什麼¶
Bilibili Watch Statistics 是面向 DSH web profile 的 B 站觀看統計插件:把 plan(計劃) 與 what you actually watched(實際觀看) 放在同一套流程裏處理。
數據流大致是:拉取觀看歷史 → 本地計算統計項 → 可選地由模型生成概覽、計劃狀態與摘要語氣 → 輸出報告並可選通知。README 強調無運行時依賴、支持二維碼登錄、本地 Markdown/HTML 報告、私信與郵件 digest,以及可配置的定時任務。
核心功能¶
以下能力均來自項目 README 與 package.json 說明。
統計
- 條目數、平均完播、22 點後的佔比、連播鏈路等,並與最近 14 次運行對比。
- 按日、周、月或自定義區間統計,支持日曆窗口或滾動窗口。
模型備註
- 模型可概括本期觀看狀態(例如「深夜推薦連刷」),給出一句證據、約 150–350 字的概覽,以及 1–3 條計劃狀態;每條需提到具體視頻標題或 UP 主,並引用至少 2 條記錄索引。
互動與直播
- 統計窗口內的點贊、投幣(含數量)、收藏;收藏按文件夾保存時間,點贊與投幣與觀看記錄交叉覈對。
- 統計看過的直播場次及大致耗時。
報告與歸檔
- 輸出 Markdown 或自包含 HTML,自動歸入
daily/、weekly/、monthly/、custom/等目錄。
通知與調度
- B 站私信和/或郵件,語氣由同一份可編輯 prompt 控制。
- 支持日/周/月/自定義調度,到點自動拉歷史、寫報告、發 digest,無需開會話。
登錄與配置
- 網頁端與 TV 端二維碼登錄;網頁通道被攔時自動切 TV。
- 登錄、模型、prompt、調度、保存路徑、通知等集中在 DSH Settings 的 Bilibili watch statistics 頁面,不必記工具名。
環境要求¶
- DSH web profile
- Node.js 22 或更高(
package.json中engines.node:>=22) - 一個用於讀取觀看歷史的 B 站賬號(掃碼登錄)
- 若要用 B 站私信推送,還需另一個賬號發送私信(API 不允許給自己發消息)
安裝與啓用¶
推薦從 npm 安裝:
dsh plugin --profile web add dsh-bili-statistics
包內帶有默認配置,安裝後刷新 GUI 即可看到工具、卡片與設置頁。若修改插件源碼下的 src/*.js,需重啓 dsh web(ESM 加載器會緩存舊實現,不會熱替換)。
改默認值可編輯 profile 的 cordis.patch.yml,或在設置頁修改(設置頁寫入的 override 優先級更高)。
典型用法¶
設置頁快速上手¶
- 打開 DSH Settings,側邊欄選擇 Bilibili watch statistics。
- 在 Current status 下點 Scan → Account that reads watch history,用 B 站 App 掃碼並確認(網頁通道受阻時會自動 fallback 到 TV)。
- 若要收私信,用同樣方式登錄 Account that sends DMs(第二個賬號)。
- 在 Model and tone 選擇 provider 與 model;不選模型也可運行,報告僅列出數字。
- 點 Run statistics now,在 Latest output 查看 digest 效果。
- 需要定時任務時,開啓 Schedule,選週期與觸發時間,並在 Notification channels 勾選 DM 或 Email。
設置寫入 state_dir/settings.json,啓動時與 profile 配置 deep-merge,重啓後仍保留。刪除該文件可回退到 profile 配置。設置頁可改模型、prompt、開關、digest 長度、收件 UID、調度規則、保存格式、報告目錄、通知渠道與 SMTP 等;Cookie 與發送方 UID 仍須來自 profile 配置,通過設置頁提交這些字段會被拒絕並在響應中列出被拒鍵名。
會話內工具鏈¶
不打開設置頁時,也可在會話中讓模型直接調用工具。常用工具包括:
| 工具 | 作用 |
|---|---|
bili_intent_set |
記錄本輪計劃(自由文本) |
bili_intent_status |
查看計劃、最近運行、下次調度、通知渠道、兩賬號登錄狀態 |
bili_intent_login / bili_intent_login_poll |
二維碼登錄與輪詢保存憑證(role: reader / sender) |
bili_intent_facts |
拉歷史並計算統計(mode: daily/weekly/monthly/custom,window: calendar/rolling,from / to) |
bili_intent_annotate |
寫入 1–3 條計劃狀態(模型無結論時的兜底) |
bili_intent_report |
渲染卡片並保存 Markdown/HTML |
bili_intent_feedback |
對結果評分 |
bili_intent_notify |
推送 digest(dry_run: true 僅預覽) |
典型鏈示例:
bili_intent_set(text="I want to sleep earlier this week, no long videos at night")
bili_intent_facts(mode="weekly")
bili_intent_report(run_id="<run_id from the previous call>")
bili_intent_facts 返回統計與帶索引的證據列表。若希望模型自行判斷,可在 facts 後在會話中寫 1–3 條結論,用 bili_intent_annotate 保存(每條至少引用 2 個有效索引),再調用 bili_intent_report。
適用場景與注意¶
適合誰
- 已在 DSH web 環境跑 Harness,希望把 B 站觀看習慣與自訂計劃(學習、控時、內容類型約束等)對齊的開發者或重度用戶。
- 需要本地報告歸檔,或定時把 digest 發到私信/郵箱、少開手動會話的人。
使用前請知悉
- 插件以當前 dsh 進程權限運行,會訪問 B 站 API 與本地報告目錄;安裝前應閱讀 GitHub 倉庫 源碼與 MIT 許可證,確認 Cookie、SMTP、收件 UID 等配置方式可接受。
- 社區插件目錄 SkillHub 上的 dsh-bili-statistics 頁 與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」,本文介紹的是社區維護的聯網工具類插件。
結尾¶
dsh-bili-statistics 把 B 站官方觀看歷史、本地統計與 Harness 裏的計劃文本串成一條可重複 pipeline:可手動「Run statistics now」,也可交給調度自動出報告和通知。若要進一步瞭解參數與 cordis.patch.yml,以倉庫 README(含 README.zh-CN.md)爲準。
- 目錄頁:https://www.skillhub.cn/plugins/apiaoapiao/dsh-bili-statistics
- GitHub:https://github.com/apiaoapiao/dsh-bili-statistics