B站评论助手 开发文档
这个项目是什么
B站评论助手(BiliKeywordComment)是一个 Chrome/Edge(Manifest V3)侧边栏插件:按搜索关键词在 B站找视频,然后自动发布评论,或私信该视频评论区里发过评论的用户,也可以下载当前页视频。它直接复用浏览器里的 B站登录态(不存 Cookie),带卡密授权(3 天/30 条免费试用,卡密激活绑定本机)。当前版本 v1.10.7。
技术栈与架构
纯原生 JavaScript 的 MV3 扩展,无构建步骤,分四层协作:
| 文件 | 角色 |
|---|---|
background.js |
Service worker:运行编排(搜视频 → 生成内容 → 逐个发送的状态机)、LLM 代理、API 兜底通道、评论历史(防重复)、授权校验、安装统计上报 |
content.js / content.css |
注入 B站页面执行:关键词搜索、评论/私信的实际发送(模拟真人流程)、页面右上角进度浮层、视频下载取址 |
sidepanel.html / sidepanel.js |
侧边栏 UI:全部设置表单(自动保存)、执行日志、成功列表、计时、视频下载落盘、授权状态与购买入口 |
buy.html / buy.css / buy.js |
插件内商品选择页:拉取授权系统当前在售商品 → 选商品 → 选支付方式(支付宝/微信)→ 下单 → 轮询支付结果 → 自动发卡并激活本机 |
manifest.json 权限:storage、tabs、scripting、sidePanel、downloads、declarativeNetRequest、alarms;host 权限覆盖 *.bilibili.com、api.bilibili.com、auth.88531.cn 与 http/https 通配(双通道网络兜底用)。内容脚本匹配 https://*.bilibili.com/*,run_at: document_idle。
关键流程
搜索筛选:关键词 + 六种排序(最热门/综合/最多播放/最多弹幕/最多收藏/最新发布)+ 20 个分区 + 地区筛选(34 省市 + 36 热门城市;B站接口不支持省份参数,实现是「关键词拼接 + 标题/标签二次过滤」)+ 播放量门槛 + 最多 N 条,已处理过的视频自动跳过(评论历史)。
发送模式三选一:只发评论(默认)/ 只私信不发评论 / 评论 + 私信。
评论内容三种来源:固定模板(零配置)/ 自定义(一行一条随机取)/ AI 按视频真实内容生成(先抓标签、简介、弹幕、热评再让 LLM 写,走 OpenAI 兼容接口,失败自动降级模板)。发送方式默认「模拟真人」:打开视频页 → 阶梯滚动到评论区 → 逐字输入 → 点发布;也可选 API 直发。
私信(高风险,默认关闭):对象仅限本视频评论区发过评论的人(不含 UP 主、不含没评论的路人),wbi 签名 + csrf,同一用户终身只发一条(B站 21047 限制),间隔 2~4 分钟随机,触发频率风控码(21020/21046)立即停整个任务;内容三级回落:自定义 → 复用评论内容 → 模板。
下载:chrome.downloads 落盘,登录后最高 1080P,多 P 用 ?p=N。
本地开发
git clone <仓库地址>
cd bili-auto-comment
# chrome://extensions → 开发者模式 → 加载已解压的扩展程序 → 选本目录
改代码后在 chrome://extensions 点「重新加载」,配置与评论记录都保留。注意:B站接口在服务器侧(含代理)访问会被风控 HTML 页拦截,无法在服务器上实测发送,调试必须在真实用户浏览器里跑。
二次开发要点(踩坑记录,改动前必读)
- 评论框在嵌套 shadow DOM 且懒加载:
<bili-comments>组件要用阶梯滚动触发加载,普通querySelectorAll够不到;评论框可能贴底/浮动,容器内找不到要全页深扫并scrollIntoView。 - 视频下载 Referer:B站 CDN 要求 Referer,而
chrome.downloads不能自定义 Referer(Unsafe header)→ 用declarativeNetRequest动态规则注入;规则不能加 resourceTypes 过滤,否则不匹配下载请求。 - 下载得到 txt 的根因:
new Blob(chunks)没传 type → MIME 为空 → Chrome 嗅探内容把 HTML 错误页存成.txt。必须new Blob(chunks, {type})并校验文件头魔数,CDN 回错误页时直接报错。 - 私信 wbi 签名:mixin_key 按 64 位索引重排取前 32 位,
w_rid = md5(sorted_query + mixin_key);官方测试向量wts=1702204169+ mixinea1db124af3c7062474693fa704f4ff8→8f6f2b5b3d485fe1886cec6a0be8c5d4,改签名逻辑先对这个向量。 - MD5 中文截断:
charCodeAt(i)&0xFF会把中文截断成单字节,签名含中文就全错,必须先 UTF-8 编码再算。 - 双通道网络:页面 fetch 优先,被 CORS/CSP 拦截时自动走 background 后台代理兜底,新接口要两条通道都通。
- 可中断语义:停止标记跨页面刷新保留,发送前要二次检查停止标记,新增长流程步骤别忘了查。
授权对接
授权中心为 https://auth.88531.cn(CardAuth 系统):3 天免费试用 / 30 条评论(任一先到即止,倒计时精确到秒);卡密激活绑定本机永久可用;试用到期后 24 小时内购买享 8 折;过期只锁自动评论,搜索/AI 生成/下载视频不受影响。购买页 buy.html 支付成功后服务端自动发卡,插件本地记住卡密并向卡密系统的公开验证接口(/public/verify)校验真实授权状态(不依赖授权表,v1.10.3 起)。另接入安装统计上报(仅机器码 + 版本)与公告推送(面板顶部)。
相关链接
- Gitea 仓库:http://127.0.0.1:3200/jinghui/bili-auto-comment
- 官网/下载:https://dl.88531.cn/bili.html
- GitHub:https://github.com/personal82555/bili-auto-comment ;Gitee:https://gitee.com/jinghui111/bili-auto-comment
- 授权中心:https://auth.88531.cn ;AI 模型 KEY:https://ai.88531.cn/