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

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

小夜