跳过主要内容
K

dsh-foxy-bili

kun-fox/dsh-foxy-bili

让 Foxy 按每日时段和视频上限浏览 B 站,按兴趣筛选,用可编辑提示词评论或记忆,并回复 @ 与评论楼中楼,按视频去重。需先安装 dsh-foxy。

安装

dsh plugin --profile web add github:kun-fox/dsh-foxy-bili

README

dsh-foxy-bili

Foxy 的 B 站子插件:它自己刷视频、读字幕、决定要不要评论/记下来,评论与记忆都经过预设人设。

运行于 DSH。它依赖 dsh-foxy(人设/扩展契约)和可选的 dsh-foxy-memory(记忆)。

依赖关系

  • 必需:dsh-foxy。
  • 记忆:dsh-foxy-memory;跨平台落库时可连接 koishi-plugin-chatluna-foxy-memory。

它做什么

  • 定时从 B 站热门、排行榜、推荐流或关键词搜索取几条视频(不做全站爬取);
  • 读标题、简介、UP 主、时长、播放/点赞/评论,能读到字幕时读字幕;
  • 用一个 Foxy 的 DSH agent 判断:
    • skip:无聊/广告/标题党,跳过;
    • remember:有点意思但不必公开评论,记一笔;
    • comment:值得在评论区说一句。
  • 只有 commentMode: auto 且当天配额未用完时才发评论;
  • 主动评论正文会按配置带 @昵称,并同时向 B 站提交 at_name_to_mid(JSON 映射),这才是真正会触发 @ 通知的提及;回复别人时 B 站已经显示回复关系,正文不再重复加 @;
  • 同一个视频 24 小时内只自动回复一次,避免一条视频下被多条 @ 通知刷出多条回复;
  • 有趣的视频会写入 Foxy 记忆 provider(默认 foxyMemory,scene: bilibili)。

模型永远拿不到 B 站工具、Shell、文件系统。 它只输出 JSON,网络写入由插件自己做。这样视频标题/字幕里的提示词注入无法越权。

安装

dsh plugin --profile desktop add file:D:\Documents\deepseek-harness\default-workspace\dsh-foxy-bili

装完完全重启 DSH。然后可以直接点左侧栏的 Foxy-bili 图标,或打开 设置 → Foxy-bili;不需要手改 cordis.patch.yml。

设置页

左侧栏有 Foxy-bili 图标,点开就是同一套设置;也可以在 设置 → Foxy-bili 打开。

设置页包含:

  • 账号与登录:扫码登录 / 退出登录,显示当前账号;
  • AI 模型:跟随 DSH 当前模型,或填 Base URL、模型名、API Key 直连 OpenAI 兼容接口;
  • 浏览模式:启用自动浏览、浏览间隔、每轮浏览数量、每日浏览时段、每日视频上限、浏览来源(混合/热门/排行/推荐/搜索)、搜索关键词、兴趣关键词、兴趣分区、评论模式、每日评论上限;
  • 评论功能:默认提及账号、提及白名单、回复他人评论、楼中楼回复、立即评论一次;
  • 评论回复:检查「回复我的」「@我的」,查看原视频后回复;可配置间隔和每轮最多回复;
  • 运行与日志:立即运行、立即检查评论通知、保存设置、上轮统计与逐条浏览记录;
  • 记忆与启动:写入 Foxy 记忆、启动 DSH 后自动运行;
  • 调试:记录模型决策、记忆写入结果和通知处理,排查“为什么没写记忆/为什么跳过”。

扫码登录

点「扫码登录」后,插件会:

  1. 调 B 站 passport 生成二维码(qrcode 在本地渲染成 data URL,不经过第三方);
  2. 每 2 秒轮询一次,最多约 3 分钟;
  3. 登录成功后从轮询响应的 Set-Cookie 里提取 SESSDATA、bili_jct、DedeUserID、buvid3;
  4. 只把凭证写到本机 ~/.dsh/foxy-bili/settings.json,不会回传给前端。

如果二维码过期,重新点一次即可。

直连模型

默认 llmMode: dsh,B 站判断使用 DSH 当前选中的模型。若 DSH 的 provider 持续报传输错误,可以在设置页把调用方式改成 直接 API,填写:

  • 接口地址,默认 https://api.deepseek.com;
  • 模型名,默认 deepseek-chat;
  • 自己的 API Key。

插件会直接请求 <接口地址>/chat/completions,不经过 DSH 的模型层。API Key 只保存在本机 settings.json,设置页只显示“已配置/未配置”,不会回传明文;留空保存表示保留原 Key。

配置文件

设置页保存到:

~/.dsh/foxy-bili/settings.json

cordis.patch.yml 里的 foxy-bili.config 只作为首次默认值;设置页保存后会覆盖它。需要备份/迁移时复制这个 JSON 即可。

字段默认说明
enabledfalse总开关
ownerUid空被 @ 的 UID,传给 B 站 at 接口
ownerName空评论正文里的 @昵称
presetIdpreset读取的人设
presetPath空可选,直接指定 preset.yml
basePrompt内置原文判断提示词原文,可直接编辑;JSON 输出格式由插件追加
customPrompt空追加到原版判断提示词后的自定义要求;留空则不追加
intervalMinutes90自动检查间隔,10–1440
maxVideosPerRun5每次最多看几条,1–20
feedSourcemixedmixed / popular / ranking / recommend / search
searchKeywords[]搜索/混合模式的搜索词;空数组时用 interestKeywords
browseStart空每日浏览开始时间(HH:MM);留空表示全天
browseEnd空每日浏览结束时间(HH:MM);支持跨午夜
dailyVideoLimit20每日累计浏览视频上限,0–100;0 表示不自动浏览
interestKeywords[]标题/简介命中任一关键词才浏览;空数组不筛选
interestCategories[]只浏览命中的分区(tname);空数组不筛选
commentModeoffoff / auto
maxCommentsPerDay1每天最多评论几条,0–10
replyInboxfalse是否检查「回复我的」「@我的」
replyIntervalMinutes10通知检查间隔,2–1440 分钟
maxRepliesPerRun1每轮最多回复几条,1–5
enableMemorytrue是否写 Foxy 记忆
memoryPresetIdpreset(Character)记忆池
mentionOwnertrue评论是否默认 @ 主人
mentionWhitelist[]允许模型选择 @ 的账号,最多 20 个
replyOthersfalse是否允许回复视频下的一级评论
nestedRepliesfalse是否允许回复楼中楼;需先开启 replyOthers
llmModedshdsh 跟随 DSH;direct 直连 API
llmBaseUrlhttps://api.deepseek.com直连模式的 OpenAI 兼容地址
llmModeldeepseek-chat直连模式的模型名
runOnStartfalse启动 20 秒后先运行一轮
debugfalse记录模型决策/记忆写入调试事件,设置页可查看

cookie 与 llmApiKey 只存在于设置文件,设置页只显示「已登录 / 未登录」「已配置 / 未配置」。

建议的安全顺序

  1. 扫码登录,enabled: true、commentMode: off;
  2. 先「立即运行」,看日志里它挑了什么、记忆写了什么;
  3. 确认它不刷无意义视频后,改成 commentMode: auto,maxCommentsPerDay: 1;
  4. 需要验证评论时用「立即评论一次」;它不占自动评论配额,但仍会真实发布;
  5. 公开评论有账号风控风险,别一上来就高频;
  6. 不要把 ownerUid/ownerName 填成陌生人。

限制

  • B 站没有官方评论开放 API,使用网页 Cookie;WBI/风控变化可能导致读取或评论失败。
  • 字幕接口经常要求登录,读不到字幕时只靠标题/简介判断。
  • 评论是否显示受 B 站审核影响,插件只能提交,不能保证公开可见。
  • 目前支持热门、排行榜、推荐流和关键词搜索;关注流/分区榜暂未接入。
  • 搜索接口需要登录 Cookie;搜索词为空时搜索模式会报错,混合模式会跳过搜索。
  • 记忆写入走 dsh-foxy-memory 的 provider,scene: bilibili。
  • skip 的视频不写记忆;评论、手动评论和评论回复会写一条对应记忆。若写入失败,设置页“调试”会显示原因。
  • 每日浏览上限按本机本地日期统计;手动「立即运行」不受时段/上限拦截,便于调试。

开发

node --check lib/index.js
node --check lib/client.js
node test/test-bili.cjs

License

MIT

相关插件