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 倉庫。

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

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

小夜