dsh-bili-toy:在 DSH 里用工具访问 B 站 Toy 广场

前言

B 站 Toy(Toy 广场)是一类可在浏览器里打开的轻互动页面。若希望在 DeepSeek Harness(DSH)对话或工作流里「逛广场、查详情、打开链接、读写评论、点赞收藏」,需要有人把登录态、接口参数和常用动作封装成稳定工具,而不是每次让模型手写 URL 或猜测 Cookie 字段。

专用视觉包(如 dsh-coach-perceive-v3、dsh-cv-recall)负责 Toy 画面内的点击与按键;dsh-bili-toy 的定位是联网工具层:扫码登录、拉列表与详情、用系统浏览器打开 Toy、评论与互动写接口。下面按安装、目录、工具表和边界说明其用法。

这是什么

dsh-bili-toy 是社区维护的 DSH 插件(维护者:yuanstarstar,分类:联网工具)。它将 B 站 Toy 相关 HTTP 接口与 17 个 toy_* 工具暴露给宿主,读类接口大多可匿名,写操作依赖登录后写入用户目录的凭证。

插件当前版本为 0.1.4,要求 dsh >= 0.1.7-rc.1、node >= 22。仓库与目录页:

  • 目录:https://www.skillhub.cn/plugins/yuanstarstar/dsh-bili-toy
  • 源码:https://github.com/yuanstarstar/dsh-bili-toy

核心功能

登录与设置页

登录工具包括 toy_login_qr、toy_login_poll、toy_login_status、toy_logout。二维码走 passport.bilibili.com 域的 web 二维码接口;轮询成功后从响应 Set-Cookie 取出会话字段,必要时补 buvid3。

DSH 设置页会出现 玩Toy 区块,也可在该处扫码;客户端由 client.js 注入,修改客户端代码后刷新设置页即可,无需整包重启(首次挂载插件时仍需刷新或重启宿主以看到该区块)。

逛广场与检索

用途 工具
分类广场 toy_square(tab:all / game / interactive-play / tool / test / guide / collection / other / recommend / weekly)
周刊与活动 toy_weekly、toy_activities
搜索与详情 toy_search、toy_detail

打开与记忆

toy_open 在系统浏览器新标签打开 Toy URL(附带前端约定的 spm_id_from 查询参数);toy_current 返回最近一次打开的 Toy,状态写在用户目录的 settings.json。

评论与互动

评论列表与发表走 B 站 reply 接口,type 固定为 11(与 PC 详情页 data-params 一致)。toy_comments 只读;toy_comment 可发主楼或楼中楼,并支持 atName / atUid。

互动侧提供 toy_like、toy_favorite(不传 id 时可列收藏夹)、toy_mine(收藏 / 自建 / 访问记录 / 用户信息)。Toy 收藏须走 /x/toy/favorite/add|del,不能误用通用收藏接口。

排查

toy_probe 在本地返回已验证的接口地图,便于对照 README 中的路径表调试,不发起写操作。

插件不实现 Toy 页面内的点击、滚动或 OCR;那部分应交给前述专用感知包。

家目录与凭证

数据目录为 <DSH_HOME>/bili-toy/(Windows 默认 C:\Users\<你>\.dsh\bili-toy\):

  • credential.json:SESSDATA、bili_jct、DedeUserID、buvid3 等(Windows 上可用 icacls 收紧权限)
  • settings.json:pageSize、category、replySort、上次打开的 toy
  • toy.log:操作日志(约保留 400 行)

分发插件包时不要附带 credential.json、settings.json、toy.log、login-qr.png、selfcheck-out.json;收包方需自行扫码登录。

安装与启用

README 记录的本机安装方式为目录联结(junction)加 profile 依赖,包名为 @local/dsh-bili-toy。示例:

New-Item -ItemType Junction `
  -Path "$env:USERPROFILE\.dsh\profiles\desktop\node_modules\@local\dsh-bili-toy" `
  -Target "D:\plugins\plugins\dsh-bili-toy"

在对应 profile 的 package.json 中:

  • dependencies 增加:"@local/dsh-bili-toy": "link:D:/plugins/dsh-bili-toy"
  • dsh.profile.bundles 追加:"@local/dsh-bili-toy"

装好后宿主会对 profile 的 package.json 做 HMR 监听,通常几秒内自动挂载;可在 logs\host\dsh-<日期>.log 查看 [hmr] 行,在 toy.log 中确认「host 已挂载」。若报 profile package identity is invalid,检查 package.json 的 name 是否与装入 node_modules 的包名一致。

注意:HMR 主要管首次挂载;改插件服务端源码(.js / .mjs)后需重启 DSH Desktop 才会加载新逻辑。package.json 的 exports 须包含 "./package.json": "./package.json",否则设置页可能不出现「玩Toy」且日志无报错。

另:用 PowerShell 5.1 的 Set-Content -Encoding UTF8 写 JSON 可能带 BOM,导致宿主恢复模式解析失败;插件相关 JSON 应保存为无 BOM UTF-8。

典型用法思路

  1. 调用 toy_login_qr,再 toy_login_poll 直至 toy_login_status 显示已登录(或直接在设置页 玩Toy 扫码)。
  2. toy_square 或 toy_search 拿数字 id,用 toy_detail / toy_comments 读详情与评论(slug 短链页需从页面脚本解析 M.toyID,否则只能 toy_open)。
  3. toy_open 交给人在浏览器里玩;若 workflow 需要页面内自动化,再接 dsh-coach-perceive-v3 等包。
  4. 写评论、点赞、收藏前确认模型调用的是带 csrf 的写接口;点赞漏 csrf 会返回 -111。

本机健康自检(可选):

$env:ELECTRON_RUN_AS_NODE='1'
& "<DSH 安装目录>\DSH Desktop.exe" "D:\plugins\plugins\dsh-bili-toy\selfcheck.mjs"

查看 selfcheck-out.json 中 toolsOk、apiOk、qrOk 是否均为 true。

适用场景与注意

适合:需要在 DSH 里结构化访问 Toy 广场、代发评论(含 @)、点赞收藏,并把 Toy 在系统浏览器中打开的开发者或智能体编排者。

不适合:依赖插件在 Toy 画面内模拟点击或读屏的流程;应组合专用 CV/感知插件。

权限与安全:插件以当前 DSH 进程权限访问本机目录与 B 站接口;安装前应在 GitHub 阅读源码与许可证(仓库未在已抓取片段中单独列出许可证文件名,以仓库当前声明为准)。发评论、点赞、收藏为真实写操作,README 说明未做二次确认。

已知边界:部分 Toy 有防盗链,插件只负责打开 URL;少数接口对 sort、pageSize 等参数敏感,宿主若传入 undefined 可能导致 ps=NaN 类 -400 错误(插件侧已做归一化说明)。Toy 专用收藏接口与通用收藏接口不可混用。

结尾

dsh-bili-toy 把 B 站 Toy 的登录、广场浏览、详情评论与浏览器打开串成一组可编排工具,并与「只负责递 URL、不做画面操作」的边界写清楚。需要进一步了解参数与接口表,可直接阅读仓库 README;安装与社区索引见 SkillHub 目录页 与 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜