dsh-bili-statistics:把 B 站「計劃」和「實際看了什麼」擺在一起看

前言

在 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 優先級更高)。

典型用法

設置頁快速上手

  1. 打開 DSH Settings,側邊欄選擇 Bilibili watch statistics。
  2. 在 Current status 下點 Scan → Account that reads watch history,用 B 站 App 掃碼並確認(網頁通道受阻時會自動 fallback 到 TV)。
  3. 若要收私信,用同樣方式登錄 Account that sends DMs(第二個賬號)。
  4. 在 Model and tone 選擇 provider 與 model;不選模型也可運行,報告僅列出數字。
  5. 點 Run statistics now,在 Latest output 查看 digest 效果。
  6. 需要定時任務時,開啓 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
羽毛球分组比赛记分
小程序二维码

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

小夜