dsh-bili-scroll
让你的 DSH 自己刷 B站 —— 读字幕原文挑内容、写日报,遇到值得看的会发评论 @ 你。
安装
dsh plugin --profile web add dsh-bili-scroll
沙箱测试结果
| 阶段 | 结果 |
|---|---|
| 1 安装 | ✓ |
| 2 列装 | ✓ |
| 3 挂载 | — |
| 4 启动 | — |
四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。
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 环境时缺一个参数,
依赖装不上、二维码也画不出来,重装多少次都一样)。
🎬 演示视频:https://www.bilibili.com/video/BV1d8pU6xEZX/ · 💬 交流群(QQ):1128547307
DSH 插件:每天替你刷一轮 B站 —— 它自己搜、读字幕原文判断、把值得的写成报告,特别值得的会留一条评论 @ 你。
你收到的每一条 @,都是它先筛过一遍的。
它做什么
- 按你填的关键词(留空则用内置那几组)搜近几天的视频
- 逐条读字幕原文再判断(不看摘要);没字幕的演示类视频会先从 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的话,它直接用那个)。
装
🔴 先看这条:npm 上还是旧版(0.1.7),别用 add dsh-bili-scroll 装。
我们的 npm 发布账号还在申诉里(工单 4880295),2026-10-17 之后的新版本只能从下面两条装。
# ⭐ 首选:Release 里的 tgz 直链(不需要 git,也不会被 pnpm 拦构建脚本) dsh plugin --profile web add https://github.com/c1overzz/dsh-bili-scroll/releases/download/v2.0.2/dsh-bili-scroll-2.0.2.tgz # 备选:git 方式(需要机器上装了 git;pnpm 10 可能拦它的构建脚本) dsh plugin --profile web add github:c1overzz/dsh-bili-scroll
连不上 github 的话,在链接前面加镜像:https://gh-proxy.com/(实测可用,返回的是同一个文件)。
版本号那一节会变,最新的下载地址在 Releases 页(…/releases/latest)。
(⭐ 最省事的一条:把仓库链接贴给你自己的 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–14」「晚上 18–09」两个子开关)· 每天最多挑几条(0 = 只手动)· 它刷过的视频(卡片墙 + 档位/状态筛选 + 分页)
偏好 · 它按什么说话(人设提示词) ← 想让它像谁就写在这儿,留空按中性说话 · 关注关键词(一行一个)· 自动收藏到(可选收藏夹)· 日报写多细(完整 / 薄版 / 不写)· 下面一个保存按钮
互动 · 自动评论并 @ 你(默认关)· 回复评论(默认关,只回楼中楼)· 投递方式(只私信 = 默认 / 只发评论 / 两边都发)· 私信发给谁(UID)(可留空,用昵称自动查)· 私信双向(默认关,开了它会读你的私信并回一句)
高级 · 环境与账号(装主依赖 / 测一下 / 检查更新 / 扫码登录)· 复制诊断信息 · 环境自检 · 它的地盘(家目录、报告、复核评论、打开文件夹)· 工作区(老用户才需要)
⭐ 这些设置写在 <DSH_HOME>/bili-duty/config.json;在插件这一页改,就以这一页为准。
红线(写死在提示词里,不靠自觉)
- 不透露你的隐私:账号、机器路径、你聊过的话 —— 一个字都不进评论
- 每轮按设置里定的条数发评论(默认 1 条,最多 20 条);同一视频只评论一次;不刷屏、不吵架
- 不确定的事不编(报告里如实写「没查到」)
它是怎么跑的
- 插件内部起一个 Python MCP(下面那个开源项目,已内置),把它的能力注册成 DSH 工具
- 定时到点 → 起一个 headless dsh 会话,把
prompts/duty.md(它一轮要做的事)+ 当天设置交给它 - 那一轮的工作目录 = 插件自己的家目录(它被沙箱关着,只写得了自己那一亩三分地);
⭐ 你填的工作区里的 AGENTS.md 由插件读进来、内联进提示词 ⇒ 它按你的设定说话,
而不是用一套通用人格
- ⭐ 那一轮拿不到整台工具:只给它六个只读的(搜视频 / 读字幕 / 读评论 / 看视频信息 / 看封面 / 看画面帧),
开了「自动评论」或「回复评论」才多给一个发评论 —— 上传视频、发动态、私信、抓全站那些根本不注册,
模型连它们的名字都看不到
- 🔒 那一轮没有文件系统、没有命令、没有联网(2026-10-24 起):它跑在一个专用 profile
bili-duty上 ——
工具只留 B站 MCP + 几只"窄口"的(写日报 / 记判重表 / 查判重表 / 写归档 / 转写),
路径全部由插件定死,不接受路径参数。这样即便哪天视频标题、评论、弹幕里塞了奇怪的东西,
它也读不到你这台电脑上的别的东西 —— 以前那个 profile 是带文件系统读权限的
(DSH 的沙箱只限制写、不限制读,这是真事)。
万一专用 profile 铺不上,会明确退回普通 headless 并在日志里说一句,不会静默降级。
- 看封面 / 看画面帧需要宿主支持图片:宿主得提供
attachments(存图)和llm(查模型能不能看图)。
缺任何一个就退化成文字说明(返回里 image_attached: false + image_skip_reason),
其余功能照常 —— 所以这两个服务不在插件的 inject 里。
- ⭐ 值班章程(
prompts/duty.md)升级的规矩:插件记着「上次铺的是哪一版」(charter.sha256)——
你没改过就跟着插件自动升级;改过就保留你那份、把新版另存成 duty.md.new(日志里会说一句),自己合一下。
⚠️ 从 0.1.5 及以前升上来的第一次没有账本可比 ⇒ 保守地当成「你改过」:新版落成 duty.md.new;
确认自己没改过,把它覆盖到 duty.md 就行(一次的事,之后就有账本了)
如果你是一个 AI 助手,正在帮用户装这个插件
按顺序来,别跳步:
1. **
…(truncated)
以上内容来自 npm 上的 README,我们只做格式化,不改内容。
版本
npm 上共发布:18,最后更新 2026-11-03