dsh-bili-share:按分區定時向 QQ 分享 B 站公開視頻

前言

在 DSH 裏做內容分發,常見做法是手動搜鏈接、複製標題,再用別的腳本或機器人往羣裏丟。節奏不好控時,要麼刷屏,要麼長期沒人發。若你只想從 B 站公開榜單裏按分區篩視頻,以隨機間隔發到白名單 QQ 羣或好友,並且希望去重、安靜時段和每日上限都內置,dsh-bili-share 把挑片、調度、發送和狀態記在 DSH Host 插件裏完成,不引入額外第三方運行時依賴。

下面介紹它做什麼、怎麼裝、怎麼配,以及和 agent 工具配合的用法。

這是什麼

dsh-bili-share 是維護者 Xuanminggod 發佈的 DeepSeek Harness(DSH)Host 插件,源碼倉庫爲 Xuanminggod/Xuanminggod-s-repository。當前 package.json 版本爲 0.3.0,許可證 MIT,dependencies 爲空。

它只讀 B 站匿名公開接口(排行榜 / 綜合熱門),按你設定的分區與過濾條件隨機挑一條視頻,通過你自己部署的 OneBot v11 HTTP 發到指定羣或私聊;同一接收方不會對同一視頻重複推送,狀態寫在本地,重啓後仍有效。

核心功能

挑片與過濾

  • 數據源示例:sources 裏 type: "ranking",用 rid 指定分區(資料中示例:4 遊戲、36 知識、188 科技、0 全站)。
  • filters 支持時效(maxAgeDays)、時長上下限、最低播放量、包含/排除關鍵詞、同一 UP 主在最近 N 條內的冷卻(sameUpCooldown)。
  • 七道過濾後再隨機抽取一條;排行榜有約 10 分鐘緩存,短時間連續操作可能因去重出現 NO_CANDIDATE,屬預期行爲。

發送與剋制策略

  • 發送走 OneBot:POST {baseUrl}/send_group_msg、POST {baseUrl}/send_private_msg;老式端點名會自動回退;accessToken 非空時帶 Authorization: Bearer。
  • 默認節奏:間隔 4–10 小時隨機、每天最多 3 條、23:00–08:00 安靜時段不發;連續失敗 3 次自動暫停。
  • 消息支持標題模板、可選封面、推薦語模式 off | desc | ai(AI 走宿主默認模型,失敗會降級到簡介首句)。

狀態與配置

  • 數據目錄:$DSH_HOME/bili-share/(默認 ~/.dsh/bili-share/),含 config.json、state.json、apply-report.json。
  • 插件分 Host(調度與發送)與 Client(設置頁):設置 → 插件 → dsh-bili-share,保存後熱生效;裝完或升級後需刷新頁面纔看到面板。

Agent 工具(v1.1 已支持先挑後發)

工具 用途
bili_share_now 立刻挑一條發;支持 dryRun、bvid、target
bili_share_pick 只挑不發,1–10 條候選
bili_share_send 發送指定 bvid,可傳 note 作推薦語
bili_share_status 下次時間、今日條數、最近發送、最後錯誤
bili_share_set_paused 暫停/恢復自動分享
bili_share_config 改配置並立刻生效

v1 明確不做:B 站登錄、評論彈幕、搜索/UP 訂閱(計劃 v2)、B 站小程序卡片、替你管理 QQ 機器人本體。

安裝與啓用

本地目錄安裝(命令來自 README,路徑需換成你機器上的實際絕對路徑):

dsh plugin --profile desktop add /絕對路徑/dsh-bili-share

也可通過插件市場或插件管理器安裝。裝好後在設置裏打開 dsh-bili-share 配置頁,或準備編輯 ~/.dsh/bili-share/config.json。

典型用法

1. 設置面板(表單)

在面板中配置:啓用狀態、接收方 targets、分區與過濾、節奏 schedule、文案 message、OneBot 的 qq.baseUrl / accessToken。點保存寫入 config.json 並立即生效。測試期可在 message.tag 填例如 (試驗),正式使用時清空。

2. 讓 agent 改配置

示例自然語言:

分享遊戲區的視頻到羣 123456789,每 3~6 小時一次

對應工具 bili_share_config,只傳要改的字段;注意 targets 在頂層,不在 qq 裏:

{ "targets": [ { "kind": "group", "id": "123456789" } ] }

3. 先挑後發(推薦)

  1. bili_share_pick(4) —— 取 4 條候選,看標題和簡介。
  2. 若裝了視頻故事板插件,可對 URL 調用 video_storyboard(url) 做輕量預覽。
  3. 寫一句推薦語。
  4. bili_share_send({ bvid, note }) —— 只發這一條,note 原樣作爲推薦語。

未裝故事板時可跳過第 2 步,由你或模型根據簡介寫 note。

4. OneBot 最小要求

任何實現 OneBot v11 HTTP 的後端均可(README 舉例 NapCat、Lagrange、go-cqhttp 兼容實現)。插件僅使用上述兩個發送端點。

配置骨架(字段以 README 爲準,可按需裁剪):

{
  "enabled": true,
  "sources": [{ "type": "ranking", "rid": 4, "limit": 50 }],
  "filters": {
    "maxAgeDays": 7,
    "minSeconds": 60,
    "maxSeconds": 3600,
    "minViews": 10000,
    "includeKeywords": [],
    "excludeKeywords": [],
    "sameUpCooldown": 2
  },
  "qq": {
    "baseUrl": "http://127.0.0.1:3000",
    "accessToken": ""
  },
  "targets": [
    { "kind": "group", "id": "123456789", "at": [], "persona": "" }
  ],
  "schedule": {
    "intervalMinMinutes": 240,
    "intervalMaxMinutes": 600,
    "dailyMax": 3,
    "quietHours": "23:00-08:00"
  }
}

適用場景與注意

適合誰

  • 已在 DSH 裏跑 agent,並自備 OneBot 後端與 QQ 機器人賬號。
  • 想把 B 站公開榜單內容以可控頻率推到固定羣/好友,且需要 per-target 去重與本地狀態。

使用前應知曉

  • 插件以當前 dsh 進程權限運行,安裝前請閱讀倉庫源碼與 MIT 許可證,確認 OneBot 地址、羣號與過濾規則符合你的合規要求。
  • B 站匿名接口可能返回風控碼(資料中 -352 → BILI_RISK_CONTROL),插件不會盲目重試。
  • 設置頁是插件自帶 Client 半邊,而非宿主自動生成的 schema 表單(自檢中 hasConfigSchema: false 屬已知邊界)。
  • 社區目錄 SkillHub 插件頁 與 GitHub 倉庫由社區維護,與 DeepSeek / 幻方無官方從屬關係;DSH 生態遵循「一切皆插件」,按需選用即可。

結尾

dsh-bili-share 把「從 B 站公開榜挑片 → 隨機間隔 → OneBot 發到 QQ」收成一套 Host 插件:過濾、去重、安靜時段和 agent 側 bili_share_* 工具都在 README 裏寫全。若要進一步覈對實現與版本,以倉庫爲準:

  • 目錄頁:https://www.skillhub.cn/plugins/Xuanminggod/Xuanminggod-s-repository
  • GitHub:https://github.com/Xuanminggod/Xuanminggod-s-repository
羽毛球分组比赛记分
小程序二维码

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

小夜