メインコンテンツへスキップ
C

dsh-bili-scroll

c1overzz/dsh-bili-scroll

DSHエージェントがBilibiliを自律的に閲覧して字幕を読み、日次ダイジェストを作成し、注目すべき内容があれば@で通知します。

インストール

dsh plugin --profile web add github:c1overzz/dsh-bili-scroll

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 的话,它直接用那个)。

装

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(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)

関連プラグイン