# 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 之后的新版本**只能**从下面两条装。 ```bash # ⭐ 首选: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 小时的话,明天就得重扫)。 凭证只落在你本机的插件家目录:`/bili-duty/bili_credential.json`,不上传任何地方。 ## 设置页里有什么 分成四页签,第一次用建议只看「日常」: | 页签 | 里面有什么 | |---|---| | **日常** | **峰谷自动刷**(总开关,打开才展开「中午 12–14」「晚上 18–09」两个子开关)· **每天最多挑几条**(0 = 只手动)· **它刷过的视频**(卡片墙 + 档位/状态筛选 + 分页) | | **偏好** | **它按什么说话(人设提示词)** ← 想让它像谁就写在这儿,留空按中性说话 · **关注关键词**(一行一个)· **自动收藏到**(可选收藏夹)· **日报写多细**(完整 / 薄版 / 不写)· 下面一个**保存**按钮 | | **互动** | **自动评论并 @ 你**(默认关)· **回复评论**(默认关,只回楼中楼)· **投递方式**(只私信 = 默认 / 只发评论 / 两边都发)· **私信发给谁(UID)**(可留空,用昵称自动查)· **私信双向**(默认关,开了它会读你的私信并回一句) | | **高级** | **环境与账号**(装主依赖 / 测一下 / 检查更新 / 扫码登录)· **复制诊断信息** · **环境自检** · **它的地盘**(家目录、报告、复核评论、打开文件夹)· 工作区(老用户才需要) | > ⭐ 这些设置写在 `/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. **先确认前提**:机器上有 `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 起不来) ## 路线图 - **2.0.0(当前)**:私信投递默认 · 私信双向 · 「它刷过的视频」列表(档位/筛选/分页/卡片墙)· 人设提示词框 · 诊断与自检 · 每条视频一份笔记 · 设置页四页签 - **下一步**:用 JS 重写 search / subtitle / comments / reply ⇒ **不再需要 Python**(零安装)· 手机窄屏入口 · 「停掉这一轮」按钮 ## 许可证 MIT(内置的 `vendor/bilibili-mcp/` 另见该目录下的 LICENSE) ## 交流与反馈 - **遇到问题先去群里问一句** —— 安装、报错、设置这些,群里大多有人踩过;比自己从头试快得多。 - **QQ 交流群:1128547307** - **确实像 bug 的**(能复现、有报错原文),欢迎开 [Issue](https://github.com/c1overzz/dsh-bili-scroll/issues/new): 请带上 **dsh 版本 / 插件版本(设置页顶部徽章)/ 系统(web 还是桌面版)/ 报错原文或 `duty.log` 最后几十行**。 有这个我基本一轮就能定位;只说"装不上",通常要来回问三四次。 - **想改进它**:欢迎 PR。⚠️ 但请**一件事一个 PR**(不要一个 PR 塞五个功能), 这样我能独立合并、出问题也好回滚。 - **二次分发 / 二创**:本仓库是 **MIT**,允许改、允许再发、允许商用,**保留 `LICENSE` 里的版权行和 MIT 正文**即可; 提一句"基于 dsh-bili-scroll 改的"就更好了。第三方代码与署名见 [NOTICE.md](NOTICE.md)。 - **演示视频**: *反馈请不要去打扰素材作者(上善 / ZipZipPipe 等),他们只管角色形象,不管这个插件。*