Bundle
dsh-bili-scroll
DSH 插件:每天替你刷一轮 B站 —— 读字幕挑出值得的、写一份日报,值得的就 @ 你
- License
- MIT
- Updated
- Updated 2 days ago
Readme
# dsh-bili-scroll | 刷B站
> **先看三行**
> - 需要 **dsh ≥ `0.1.7-rc.1`**(本机是 `0.1.7-rc.2`)。⚠️ 版本不满足时,**内核会静默跳过这个插件** —— 装了跟没装一样,不会报错。
> - **空间**:不装「本地转写」约 **84 MB**;装了转写约 **1 GB**(其中 Whisper 模型 538 MB,可在设置里换更小的模型)。
> - 装完**必须重启一次** dsh(插件在 bundle 层组装)。
> - ⚠️ **桌面版 DSH(NEXT / 0.2.x)**:**0.1.3 及以前的版本在桌面版上装不起来** —— 插件整条不激活,
> DSH 只留一句 `warning: 1 entry did not activate … failed to import`(根因是宿主半 import 的两个包
> 在桌面版 profile 里没被安装,详见下面「装不上」那节的第 5 条)。**0.1.4 起已修** ✓。
> 另有用户反馈桌面版上「自动跑那一轮会卡住」—— 卡住就先只用设置页的「**现在跑一轮**」手动跑(那条稳)。
>
> ⚠️ **装的是旧版吗?** 如果设置页里那个按钮写的是「**重装依赖**」(而不是「**重装主依赖**」),说明你装的是 0.1.0 ——
> 跑一次 `dsh plugin --profile web add dsh-bili-scroll` 升级就好(那一版建 Python 环境时缺一个参数,
> 依赖装不上、二维码也画不出来,重装多少次都一样)。
> DSH 插件:**每天替你刷一轮 B站** —— 它自己搜、**读字幕原文**判断、把值得的写成报告,特别值得的会留一条评论 **@ 你**。
> **你收到的每一条 @,都是它先筛过一遍的。**
## 它做什么
- 按你填的关键词(留空则用内置那几组)搜近几天的视频
- **逐条读字幕原文再判断**(不看摘要);没字幕的直接跳过 —— 除非你开了「本地转写」
- 写一份 Markdown 报告到 `out/<日期>.md`:每条含「为什么值得」+「它自己的一句话」;每条的段首固定写成 `### BV号` —— 插件数今天挑了几条,数的就是这些标题行
- 开着「自动评论」时,每轮发一条评论、**@ 你**一次(默认每轮 1 条,设置页可调到每轮最多 20 条)
- 可以在**峰谷时段自动跑**(DeepSeek 的优惠时段),省 token
## 装之前(一条前提,30 秒)
机器上要有 **`Python 3.10+` 或 `uv`** —— **有一个就够**:
- **有 `uv` 最好**:单个 ~32 MB 的 exe,**解压就能用、不用管理员、不用进 PATH**,而且它还能自己把 Python 拉下来;
- 只有 Python 也行(装官方安装器时记得勾 **`Add to PATH`**);
- ⭐ **两个都没有?也没关系**:点「装依赖」时**插件会自己下一份 `uv` 放到自己的家目录**
(单文件、约 15MB、**免管理员、不用进 PATH** ✓),之后全程自动 ✓
· 它会**先直连 GitHub,不通就走国内加速代理**,还配了 PyPI 镜像兜底 ✓
· 下载完会**核对官方 `sha256`**(对不上就丢弃换下一个源 ✓)—— 因为它下来的东西是要**被执行**的
· ⚠️ **如果杀软 / Windows Defender 报这个下载**:把插件家目录 `%USERPROFILE%\.dsh\bili-duty\bin\` **加白**即可;
不想加白也行,自己装一份 uv 或 Python 3.10+ 就绕过去了 ✓
> ✅ **已经做到了**(v0.1.1 起):插件会**自己把 `uv` 下到自己的家目录** ⇒ 这条前提不用用户操心、也不用管理员权限。
> ⚠️ 万一它自己也下不动(有用户反馈桌面版上这条链路经常不通):**手动放一份 `uv.exe` 到 `<家目录>\bin\`** 就行 ——
> 插件会**用那一份、跳过下载**(你的 `PATH` 里本来就有 `uv` 的话,它直接用那个)。
## 装
```bash
dsh plugin --profile web add dsh-bili-scroll # 从 npm
dsh plugin --profile web add github:c1overzz/dsh-bili-scroll # 备选:直接从 GitHub
```
(⭐ 最省事的一条:把仓库链接贴给你自己的 dsh,说「**帮我装这个插件**」,它会自己装。)
⚠️ 装完**必须重启一次 dsh**(bundle 层要重启才组装)。然后进 **设置 → 刷B站**。
## 装不上 / 卡住时,先看这五条(都是用户实测撞过的)
1. **桌面版(DSH NEXT / 0.2.x)上"自动跑"会卡住** —— 有用户反馈:它起那一轮用的是
`dsh --profile headless …`,桌面版上容易卡在那儿。⇒ **先用设置页的「现在跑一轮」手动跑**(那条是稳的);
能不能自动跑,等你确认过自己那台桌面版的版本与 profile 再说。
2. **「装依赖」卡住、或者扫码时一直不出二维码** —— 大概率是 0.1.0 那版(见开头那个按钮指纹,跑一次 `add` 就升级了)。
不想升级也行,救急一句:`<家>\.venv\Scripts\python.exe -m ensurepip --upgrade`,再点一次「重装主依赖」。
3. **它下不动 `uv`**(桌面版上这条链路经常不通)⇒ 自己放一份 `uv.exe` 到 `<家目录>\bin\`,
插件会用那一份、跳过下载。
4. **「本地转写」是两段式的** —— 只打开开关**不够**,还得点它下面那个「**装转写依赖**」。
没装的时候,没字幕的视频会被**跳过**(报告里现在会写「**因无字幕跳过 N 条**」,你能一眼看出漏了几条)。
5. ⭐ **桌面版:装完设置页里根本不出现「刷B站」,日志只有一句 `1 entry did not activate … failed to import`** ——
这是 0.1.3 及以前在桌面版上的一个真 bug:插件宿主半 import 的两个包是 *optional peer*,
而桌面版 profile(`autoInstallPeers: false`)**不会装它们** ⇒ 插件整条不激活。
**0.1.4 起已修**(不再裸 import 那两个包)。⇒ 升级一次就好:`dsh plugin --profile desktop add dsh-bili-scroll`。
⚠️ 我们自己也只在 **npm 0.1.7-rc.x + web profile** 上实测过;桌面版这条路靠用户反馈修好的 ——
装完还是不行的话,把 `duty.log` 里那几行发来(里面会写清楚"宿主依赖是从哪儿取的")。
## 首次使用(两步)
1. **装主依赖** —— 设置页点「装主依赖」:在插件自己的家目录建一个独立 venv,装 4 个包
(`bilibili-api-python` / `aiohttp` / `mcp<2` / `qrcode`)。**走国内镜像 + uv,通常几十秒**(进度写 `install.log`,不卡页面)。
2. **扫码登录** —— 点「扫码登录」,用手机 B站 扫页面上那张码。
⚠️ **确认时选「记住我 / 长期」那张**(选 24 小时的话,明天就得重扫)。
凭证只落在你本机的插件家目录:`<DSH_HOME>/bili-duty/bili_credential.json`,不上传任何地方。
## 设置页里有什么
| 项 | 说明 |
|---|---|
| **峰谷时段自动刷** | 总开关;**打开之后才展开**「中午谷时 12:00–14:00」「晚上/夜间谷时 18:00–09:00」两个子开关。依据 DeepSeek 官方定价:**工作日 9:00–12:00、14:00–18:00 是高峰,其余(含整个周末)都是谷时** |
| **每天最多挑几条** | 数字自己填;填 0 = 不自动刷(但还能手动跑) |
| **自动评论并 @ 你** | **默认关**;打开后展开两栏:**每轮最多发几条评论**、**要 @ 谁(B站 昵称)** —— ⚠️ **留空就不发评论**(评论的意义就是 @ 那一下) |
| **本地转写没字幕的视频** | **默认关** —— 要在本机装 Whisper、下几百 MB 模型 |
| **关注关键词** | 一行一个;留空用内置那几组 |
| **工作区** | 填**你自己平时用的那个工作区路径**(放 `AGENTS.md` 的那个目录)⇒ 它按那里的人设说话;⭐ **留空 = 不读设定、按中性说话**(不会去猜,也不会读错人设) |
| **回复评论(只回楼中楼)** | **默认关**;开了之后展开「每轮最多回几条」—— 只回**直接回复到它那条评论下面的人**,不参与别人的讨论 |
| **日报写多细** | `完整 / 薄版 / 不写`;薄版每条一两行(输出比输入贵 200 倍,薄版省的是真钱) |
| 现在跑一轮 / 装主依赖 / 扫码登录 / 看今天的报告 / 打开报告文件夹 | 版本号就在这一行上面(**点「检查更新」可以看有没有新版**) |
> ⭐ **这些设置同时写在两处**:插件自己的 `<DSH_HOME>/bili-duty/config.json`,以及 **DSH 原生「插件设置」**里的同一套字段。
> 在这一页改 ⇒ **以这一页为准,并同步写进原生设置**(写不进去会提示你);某个字段如果你在 **DSH 原生设置页**里显式设过 ⇒ **那个字段以原生设置页为准**。
## 红线(写死在提示词里,不靠自觉)
- 不透露你的隐私:账号、机器路径、你聊过的话 —— 一个字都不进评论
- 每轮按设置里定的条数发评论(默认 1 条,最多 20 条);同一视频只评论一次;不刷屏、不吵架
- 不确定的事**不编**(报告里如实写「没查到」)
## 它是怎么跑的
- 插件**内部**起一个 Python MCP(下面那个开源项目,已内置),把它的能力注册成 DSH 工具
- 定时到点 → 起一个 headless dsh 会话,把 `prompts/duty.md`(它一轮要做的事)+ 当天设置交给它
- 那一轮的**工作目录 = 插件自己的家目录**(它被沙箱关着,只写得了自己那一亩三分地);
⭐ 你填的**工作区里的 `AGENTS.md` 由插件读进来、内联进提示词** ⇒ **它按你的设定说话**,
而不是用一套通用人格
- ⭐ **那一轮拿不到整台工具**:只给它**四个只读的**(搜视频 / 读字幕 / 读评论 / 看视频信息),
开了「自动评论」或「回复评论」才多给一个**发评论** —— 上传视频、发动态、私信、抓全站那些**根本不注册**,
模型连它们的名字都看不到
- ⭐ **值班章程(`prompts/duty.md`)升级的规矩**:插件记着「上次铺的是哪一版」(`charter.sha256`)——
你**没改过**就跟着插件自动升级;**改过**就保留你那份、把新版另存成 `duty.md.new`(日志里会说一句),自己合一下。
⚠️ **从 0.1.5 及以前升上来的第一次没有账本可比** ⇒ 保守地当成「你改过」:新版落成 `duty.md.new`;
确认自己没改过,把它覆盖到 `duty.md` 就行(一次的事,之后就有账本了)
## 如果你是一个 AI 助手,正在帮用户装这个插件
按顺序来,别跳步:
1. **先确认前提**:机器上有 `Python 3.10+` 或 `uv` 吗?(查 `python --version` / `uv --version`)
两个都没有 ⇒ **建议装 `uv`**(单文件 exe、免管理员、能自带 Python);
2. **装插件**:`dsh plugin --profile web add github:c1overzz/dsh-bili-scroll`
(npm 上的 `dsh-bili-scroll` 同名同内容,审核通过后用 `add dsh-bili-scroll` 更省事)
3. ⚠️ **必须提醒用户重启一次 dsh** —— bundle 层要重启才组装,不重启插件不会生效;
4. 重启后请用户进 **设置 → 刷B站**:先点「**装依赖**」(几十秒,进度就显示在页面下面)、再点「**扫码登录**」
(手机 B 站扫码,**确认时选"记住我 / 长期"**);
5. **不要**替用户打开「自动评论并 @ 你」—— 那是拿用户的号说话。要用得让用户自己在设置里填「要 @ 谁」。
## 依赖与致谢
- 内置 [**bilibili-mcp**](https://github.com/adoresever/bilibili-mcp)(MIT,Copyright (c) 2026 AGI_Ananas)——
搜索 / 字幕 / 评论 / 发评论这些能力来自它;本插件只做「**挑什么、什么时候挑、要不要说话**」这一层
- 需要本机有 **Python 3.10+**(会用 `uv` 或 `python -m venv` 建独立环境),不需要它已经进 PATH
- Python 依赖只有 4 个(`bilibili-api-python` / `aiohttp` / `qrcode` / `mcp`,见 `vendor/bilibili-mcp/requirements.txt`);`mcp` **必须锁 `<2`**(2.x 起不来)
## 路线图
- **0.1.x(当前 = 0.1.5)**:内置 MCP + 扫码登录 + 章程 + 设置页(峰谷级联开关 / 定量刷 / 自动评论 / 回复评论 / 工作区 / 日报三档)+ 谷时定时器 + 报告 + 看报告与打开文件夹 + 版本徽章 / 检查更新 / 一键升级 + **评论发出后复核**(0.1.4 起)
- **0.1.6(在做)**:每轮记账(token 与花费)· 周末时段 · 数据目录可配 · 「停掉这一轮」按钮
- **v0.2**:**用 JS 重写那几个接口 ⇒ 不再需要 Python**(零安装);报告归档、失败重试
## 许可证
MIT(内置的 `vendor/bilibili-mcp/` 另见该目录下的 LICENSE)
Install
dsh plugin --profile web add dsh-bili-scroll@0.1.7
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-bili-scroll from the hub