DSH Plugins Marketplace

DSH Plugins

Plugins

/

Development & Infrastructure

/

dsh-bili-interactor

a

dsh-bili-interactor

Identified★ 1

DSH Plugin: Let AI Browse Bilibili for You and Actually Interact — Like / Coin / Danmaku / Comment / Reply to Comments / Reply Monitoring, with a Visual Dashboard

dsh-bili-interactor

让 AI 替你在 B站 上真的产生互动 —— 刷视频、点赞、投币、发弹幕、发评论、回评论,以及别人回你之后接着聊。

一个 DSH(DeepSeek Harness)插件。在 设置 → B站互动 里操作,不用另开网页。

用的是你自己的账号。 点赞会亮、投币会扣、评论会挂在视频下、关注会被人看见。 默认参数刻意保守,请自己控制量 —— 大量重复操作很可能被 B站 判定为异常并折叠、限流或封禁。 详见文末的风险与免责。


它做什么

  • 刷视频:按关键词搜索,粗筛掉广告/抽奖类内容,同一个 UP 主一轮内限量
  • 互动:点赞 / 投币 / 收藏 / 发弹幕 / 关注,每项独立成败,互不影响
  • 发评论:给视频发一条新评论,可以 @ 指定的人
  • 回评论:从别人的评论里挑「值得接话」的回(纯情绪、复读、广告不选;挑不出来就不回)
  • 接着回:后台定时检查自己发过的评论,有人回了就接着聊 —— 条数可设上限,也可设成不限
  • 学习记忆:从评论区里挑有信息量的内容存下来,下次说话时带上;挑选标准由你自己写
  • 都看得见:面板里能查到它说过什么、在哪些视频下说过、哪些评论真的被别人看到了

三种「说」要分清,面板里也这么标:

标签含义谁先开口
评论我在视频下发的新评论我
回评论别人发了评论,我去接他的话别人
接着回别人回的是我发过的评论,我接着聊别人(冲我来的)

截图

图里是演示数据,不是真实账号内容。

总览 —— 今天动了多少次、额度用了多少、这一轮在干什么

总览

它说了什么 —— 每条原文都在,可跳到对应楼层、可检查是否真的公开

它说了什么

碰过的视频 —— 每条视频下我说过什么,带直达链接

碰过的视频

另外三页(记忆 / 过程 / 设置)

记忆 —— 学到了什么、几分、为什么记、从哪来

记忆

过程 —— 这一轮的实时实录,包括为什么跳过某条

过程

设置 —— 全部开关和限额

设置


环境要求

需要什么必须吗用途大小
DSH(Desktop 版,带插件系统)必须宿主—
Python 3.10+ + bilibili-api-python httpx qrcode pillow必须调 B站 接口、渲染登录二维码~100MB
一个 B站 账号(建议小号)必须干活的那个号—
DeepSeek API key可选有 key 才按人设说话;没有就退回内置模板—
本地转写环境(Whisper)绝大多数人不需要只有连 AI 字幕都没有的视频才用得上700MB~1.5GB

关于「它怎么知道视频在说什么」

它读的是文字,不是画面:模型拿到的是视频的字幕文本,不解码画面、不听声音。

好消息是——大多数视频都有字幕,不需要下载任何东西。B站的 AI 字幕(ai-zh)覆盖很广, 插件调 player/info 接口就能拿到,实测 4 个不同类型的视频全都有:

视频字幕条数语言
部署教程1ai-zh 中文
官方 MV12zh-CN / zh-Hans / zh-Hant …
748 集课程1ai-zh 中文
大肥鱼整活8ai-zh / ai-en / ai-ja

四层降级:

层手段条件要装东西吗
①B站 字幕(ai-zh 优先)大多数视频都有不要
②本地 Whisper 转写(py/asr.py)连 AI 字幕都没生成的极少数视频要,~500MB 模型
③弹幕池永远可用。观众会把重点和坑打在屏幕上不要
④只有标题/简介上面都没有时。过程实录里会写明「只有标题」不要

默认只用 ①③④,不下载任何东西。 第 ② 层是给你想覆盖「连字幕都没有」那种视频时用的, 默认关闭,不装也完全不影响正常使用。

DeepSeek API key 是可选的:有 key 时评论/回复由模型按你的人设生成;没有 key 会退回内置模板,人设不生效(面板顶部会提示)。


安装

# 1. 给插件建一个 Python 虚拟环境(推荐)
cd ~/.dsh
python -m venv bili-interactor/.venv
# Windows:
bili-interactor/.venv/Scripts/pip install bilibili-api-python httpx qrcode pillow
# macOS / Linux:
bili-interactor/.venv/bin/pip install bilibili-api-python httpx qrcode pillow

插件按这个顺序找解释器:配置项 pythonPath → ~/.dsh/bili-interactor/.venv → ~/.dsh/bili-duty/.venv(和另一个插件共用的兼容路径) → PATH 上的 python。 你已经有现成的环境就填 pythonPath,不用再建。

可选:装本地转写(大多数人不用装)

先看情况再决定:

  • 视频有 B站 字幕(大多数都有,包括 AI 字幕)→ 什么都不用装,插件直接读
  • 视频连 AI 字幕都没有(纯音乐、无声录屏、少数冷门视频)→ 才需要这一层

要装的话:

# 在仓库根目录跑,会自动建 ~/.dsh/bili-interactor/.venv-asr 并预热模型
# Windows:
powershell -ExecutionPolicy Bypass -File scripts/setup-asr.ps1
# macOS / Linux:
bash scripts/setup-asr.sh

# 想更准可以换模型(tiny / base / small / medium,默认 small)
powershell -ExecutionPolicy Bypass -File scripts/setup-asr.ps1 medium

装完去设置里打开 「没字幕才本地转写」。

模型走 hf-mirror.com 国内镜像,不用梯子。第一次跑会加载模型(几十秒),之后就是本地读。 如果本机已经装了「刷B站」插件,它的转写环境会被自动复用,不用重复装。

# 2. 装进 profile
cd ~/.dsh/profiles/desktop
pnpm add link:<本仓库路径>

# 3. 让 profile 加载它:cordis.patch.yml 末尾加上
#    - insert:
#        - id: bili-interactor
#          name: dsh-bili-interactor

装完重启一次 DSH(首次要构建前端 bundle),之后改代码只需刷新页面。


第一次用

  1. 打开 设置 → B站互动
  2. 点 扫码登录,面板里会直接出二维码
  3. 手机 B站 App → 右上角扫一扫 → 点「确认登录」
  4. 面板变成「已登录」,就能用了

二维码 180 秒有效,面板里有倒计时。没扫完就离开页面也没关系,宿主在后台继续轮询,扫上了会自动变成已登录。

登录成功的凭证存在 ~/.dsh/bili-interactor/credential.json(含 SESSDATA,别外传、别提交)。


面板

页签能看什么
总览今天动了几次、剩多少额度、投币数、上一轮结果;可以手动「现在跑一轮」
它说了什么评论、回评论、接着回、私信的全部原文;带「跳到这一楼」和「复制正文」;可一键检查哪些真的被别人看到了
碰过的视频今天碰过的视频卡片:标题、UP、各种动作次数、我在这条下说过的话(带直达)
记忆学到的东西、分数、为什么记、来源;可单条删除、可手动添加;「什么才值得记」在这里自己写
过程这一轮的实时实录:在搜什么、挑了哪条、为什么跳过、失败原因
设置全部开关和限额

配置

配置存在 ~/.dsh/bili-interactor/config.json,也可以直接在面板「设置」里改。所有上限填 0 都是不限。

额度

键默认说明
enabledtrue总开关
maxActionsPerRun20一轮最多动几次(点赞/投币/弹幕/评论/回复全算)
maxActionsPerDay120一天最多动几次(管「跑一轮」,不含监听回复)

动作

键默认说明
doLike / doCoin / doDanmakutrue点赞 / 投币 / 发弹幕
doDigesttrue先摘视频内容(字幕/弹幕)再说话,评论才不会只吐槽标题
doTranscribefalse没字幕时用本地 Whisper 转写(准但慢,一条 1~2 分钟,需装转写环境)
doWatchfalse上报观看进度。这是在刷播放数据,默认关,容易被识别
watchStylefastfast 几秒上报完;real 按真实节奏走完(更慢但更像真人)
doFavorite / favoriteIdfalse / 0收藏,需要填收藏夹 ID
doFollowfalse关注 UP(最容易被人发现,默认关)
coinPerVideo1每条投几个币
actionIntervalMs[1500, 4000]两次动作之间的随机间隔

选视频

键默认说明
keywords["恐怖游戏","游戏解说"]搜什么
orderclickclick 按播放 / pubdate 按最新 / totalrank 综合
daysBack7太老的不碰,0 = 不限
minPlay1000播放量下限
maxPerUpPerRun2同一个 UP 一轮最多碰几条
skipKeywords见默认值标题命中就跳过

评论

键默认说明
doCommenttrue发新评论
doReplyComment / replyCounttrue / 2回别人的评论;每条视频最多回几条
mentionUid0@ 谁(填 UID),0 = 不 @
persona / commentPersona见默认值人设提示词,写多长都行

接着回(回复监听)

键默认说明
doReplyBacktrue开关
replyBackMax0每条评论下最多回几句,0 = 不限
replyBackPerDay0一天最多回几条,0 = 不限
replyBackMinLen2对方回复太短就不理
listenIntervalMin1每几分钟查一次
listenMaxThreadsPerTick15每次最多看几条「我发过的评论」(多了轮流)
listenLookbackHours72只往回看多少小时内自己发的评论

listenMaxThreadsPerTick 直接决定请求频率:填 20 就是每分钟最多 20 次请求。 楼很多时它会轮流看,几轮转完一圈,不会漏。

学习

键默认说明
doLearntrue开关
learnPerRun3一轮最多记几条
learnUseCount8说话时参考几条
learnMinScore6低于这个分不记(0~10)
learnPrompt见默认值你自己写的挑选标准,会原样交给模型

数据文件

全部在 ~/.dsh/bili-interactor/:

credential.json   登录凭证(含 SESSDATA,别外传)
config.json       配置
ledger.jsonl      一行一个动作(超过 3MB 自动只留最近 2000 行)
learned.jsonl     记忆,一行一条
replied.json      已回过的子评论(防重复回)
visibility.json   哪些评论是「别人能看到」的
daily.json        当日计数
live.md           过程实录
interact.log      运行日志

命令行

py/interact.py 可以单独用,全部输出 JSON:

PY=~/.dsh/bili-interactor/.venv/Scripts/python   # macOS/Linux: .venv/bin/python3

$PY py/interact.py whoami
$PY py/interact.py search    --keyword 恐怖游戏 --order click --limit 10
$PY py/interact.py comments  --bvid BV1xxxxxxx --order time --limit 20
$PY py/interact.py act       --bvid BV1xxxxxxx --like --coin 1 --danmaku "这波可以"
$PY py/interact.py comment   --bvid BV1xxxxxxx --text "……"
$PY py/interact.py sub-replies --bvid BV1xxxxxxx --rpid 123456
$PY py/interact.py visible   --bvid BV1xxxxxxx --rpid 123456
$PY py/interact.py digest    --bvid BV1xxxxxxx      # 摘视频内容(字幕/弹幕/简介)
$PY py/interact.py transcribe --bvid BV1xxxxxxx     # 本地转写(慢,要装转写环境)
$PY py/interact.py watch     --bvid BV1xxxxxxx      # 上报观看(会产生观看记录)

登录走宿主(lib/login.mjs),凭证在 Set-Cookie 响应头里。


代码结构

lib/index.js     宿主:HTTP 路由、调度、回复监听、记账
lib/login.mjs    扫码登录(Node 侧,从 Set-Cookie 取凭证)
lib/targets.js   搜索、粗筛、挑目标
lib/danmaku.js   文案生成(有 key 用模型,否则模板)
lib/learn.js     记忆的读写与淘汰
lib/state.js     配置、账本、当日额度
py/interact.py   执行层:只调 B站 接口,只干活不判断
py/asr.py        本地转写(Whisper,把没字幕的视频读成文字)
client.js        设置页面前端

写盘全部在 Node 侧,Python 只负责联网 —— DSH 沙箱下子进程往往写不进 ~/.dsh/<插件名>。 这条边界由 tests/test_login.py 断言(它会监视每一次写盘尝试)。


测试

node smoke.mjs                        # 前端渲染、六个页签、跳转链接
node smoke-host.mjs                   # 宿主路由、状态、拒绝路径
node tests/test_login_flow.mjs        # 扫码 → 自动登录 → 凭证落盘 → 界面变已登录
node tests/test_cookie_parse.mjs      # 从 Set-Cookie 取凭证
node tests/test_qr_ttl.mjs            # 二维码有效期预算
node tests/test_scan_then_expire.mjs  # 扫了没确认就过期
node tests/test_proactive_refresh.mjs # 主动换码
node tests/test_reply_pick.mjs        # 「值得接话」的筛选
node tests/test_learn_mention.mjs     # @ 去重、记忆读写
node tests/test_dedupe.mjs            # 同一个楼不重复回
python tests/test_comment_result.py   # 评论结果判定(含 12014 频率上限)
python tests/test_login.py            # Python 侧零写盘

已知限制

  • 弹幕收不回(B站 限制:发出后 2 分钟内、每天 5 条),写歪了只能手动删
  • 评论可能只有你自己看得见:code: 0 只代表 B站 收下了。新号、敏感内容、短时间大量评论会被折叠或送审 —— 面板的「检查这些是不是真的公开了」就是查这个,别以为发出去了别人就能看到
  • 有频率上限:短时间内发太多评论会返回 12014,这一轮会自动停下
  • 有风控:密集写操作可能返回 -412 / -352 / -101
  • 它"看"视频的方式是读字幕文本,不是看画面:拿 B站 字幕(ai-zh 优先)当材料, 没有字幕时可以用本地 Whisper 转写,再没有就靠弹幕池 —— 它不会解码画面、也不听声音
  • 它不上报观看(默认):不会给视频刷播放量。开了「上报观看」才会,那属于刷数据,风险自担
  • 没有定时「跑一轮」:只有手动触发和回复监听(写操作要你亲手按)

风险与免责

  • 这是非官方工具,使用的是网页端接口。B站 可能随时调整接口或提高风控等级。
  • 请不要用它刷量、发广告、引战、批量骚扰。这类行为违反 B站 社区规则,可能导致账号被限制或封禁。
  • 自动化操作本身就有被判定为异常的风险。建议用小号,并且把各项上限设在合理范围。
  • 使用者需自行承担使用本工具的一切后果。作者不对账号受限、内容被删、数据丢失等任何损失负责。
  • 项目仅供学习和个人研究使用。

License

MIT

Comments

Loading…

From the same category

awesome-dsh-plugin

by awesome-dsh-plugin

A curated list of plugins for DeepSeek Harness (dsh) · DeepSeek Harness 插件精选列表

Development & Infrastructure

★ 20.7k

CC0-1.0

Python

Oct 25, 2026

Index only — not installable

by 0xsline

DeepSeek Harness (DSH) ecosystem: curated plugins, tools, and infrastructure from dsh-external/hub and the public dsh-plugin topic.

Development & Infrastructure

★ 1.3k

CC0-1.0

Python

Oct 16, 2026

Index only — not installable

by pax-beehive

Open-source CLI, schemas, resolver, and DSH agent tools for DSH Plugin Hub

Development & Infrastructure

★ 277

MIT

TypeScript

Oct 20, 2026

Index only — not installable

by xiajiajun516

DeepSeek Harness (DSH) backup & restore plugin — export, import, migrate and sync your complete DSH configuration, plugins, MCP servers, skills and workspace. One-click migration to another machine.

Development & InfrastructureManifest valid

★ 245

MIT

TypeScript

Oct 25, 2026

dsh plugin --profile web add dsh-config-manager

by Yuuyuko-uu

DSH 鱼的记忆:给会话一份会淡忘的长期记忆,每条都带时间

Development & InfrastructureMemory & ContextSessions & MessagesManifest valid

★ 210

MIT

JavaScript

Oct 25, 2026

dsh plugin --profile web add dsh-fish-memory

by yjh051108

推荐组件(非必须):DeepSeek Harness 运行时注入器;已随 dsh-routing-suite 单仓库化保留,本仓库继续维护/发布。

Development & InfrastructureManifest valid

★ 167

TypeScript

Oct 16, 2026

dsh plugin --profile web add @dsh-external/dsh-super-injector