Files
bili-auto-comment/README.md
T

6.4 KiB
Raw Permalink Blame History

B站评论助手(BiliKeywordComment)

Chrome/Edge 浏览器插件(Manifest V3):按搜索关键词找 B站视频,自动评论或私信评论区用户,也可下载当前页视频。直接复用你浏览器里的 B站登录态,不需要手动填 Cookie。

功能

搜索与筛选

  • 🔍 关键词搜索,六种排序(最热门/综合/最多播放/最多弹幕/最多收藏/最新发布)
  • 📁 分区筛选:20 个(科技/知识/游戏/影视/音乐…)
  • 🌍 地区筛选:34 省市 + 36 热门城市(B站接口不支持省份参数,走「关键词拼接 + 标题/标签二次过滤」)
  • ▶ 播放量门槛、最多 N 条,处理过的视频自动跳过

发送内容三选一

选项 行为
只发评论(默认) 只在视频下发公开评论
只发私信,不发评论 不发公开评论,只私信评论区里发过评论的人
评论 + 私信 先评论,再私信评论区用户

评论

  • 💬 三种内容来源:固定模板(零配置可用)/ 自定义(一行一条随机取)/ AI 按视频真实内容生成(先抓标签、简介、弹幕、热评,不瞎编)
  • 🤖 AI 走 OpenAI 兼容接口,失败自动降级模板并提示
  • 📝 最短 3 字(重复字检测按长度自适应,短评论不误杀)
  • 🧑 模拟真人(默认):自动打开视频页 → 滚到评论区 → 逐字输入 → 点发布;也可选 API 直发

私信(高风险,默认关闭)

  • 🎯 对象仅限本视频评论区里发过评论的人(不含 UP 主、不含没评论的路人)
  • 🔐 wbi 签名 + csrf,MD5 自带实现(先 UTF-8 编码,避免中文被截断算错签名)
  • ♾ 同一用户终身只发一条(B站 21047 限制),已发过的自动跳过
  • ⏱ 间隔 2~4 分钟随机(比评论更严),触发频率风控码立即停整个任务
  • 内容三级回落:自定义 → 复用评论内容 → 模板;日志标明来源

下载

  • ⬇ 下载当前页视频,登录后最高 1080P,多 P 支持 ?p=N
  • ✅ 输出真正的 mp4(Blob 带 MIME + 文件头魔数校验,CDN 回网页/错误页直接报错,不会存成 txt)

授权与运维

  • 🔑 1 天免费试用(倒计时精确到秒),卡密激活绑定本机永久可用;下载视频不受授权限制
  • 📊 安装统计上报(仅机器码 + 版本,不碰B站账号),后台可看安装数与版本分布
  • 📢 公告推送到面板顶部,有新版本时提示并跳官网
  • 🔁 可中断:随时 ⏹ 停止,停止标记跨页面刷新保留,发送前二次检查
  • 🖥 过程可见:页面右上角浮层逐步显示,侧边栏有计时、成功列表和执行日志
  • 🔁 双通道网络:页面 fetch 优先,被 CORS/CSP 拦截时自动走后台代理兜底

安装

  1. 解压 zip(或直接用解压后的目录)
  2. 打开 chrome://extensions → 打开右上角「开发者模式」
  3. 「加载已解压的扩展程序」→ 选 BiliKeywordComment 目录
  4. 打开 B站并登录,点工具栏图标打开侧边栏

更新版本:下载新版解压 → 在 chrome://extensions 点该扩展「重新加载」,配置与记录都保留。

使用

  1. 登录 B站网页版(登录态直接复用,插件不存 Cookie)
  2. 点工具栏图标打开右侧边栏(所有设置自动保存)
  3. 填搜索关键词 → 选排序/分区/地区 → 选评论方式 → 选发送内容
  4. 点 ▶ 开始执行 → 右上角浮层显示每一步,侧边栏有计时、成功列表和执行日志;⏹ 停止随时可中断

AI 模式需填 LLM 配置(已预填 https://ai.88531.cn/v1 + mimo-v2.6-flash,到 https://ai.88531.cn/ 领 KEY);不填自动走固定模板。

风控提醒

  • 评论默认「最多 3 条、间隔 12 分钟随机」,私信「每视频最多 2 人、间隔 24 分钟随机」,请勿调得过于激进
  • 评论/私信不含外链、广告;触发验证码(12045)或今日上限(12008)会自动停止
  • 私信触发 21020/21046(频率过高)会立即停止整个任务
  • 建议每天评论 ≤ 10 条、私信 ≤ 10 条,宁可少发
  • 使用本插件产生的一切行为由使用者自行负责

文件结构

文件 作用
manifest.json MV3 清单(侧边栏 + 内容脚本 + host 权限 + DNR)
background.js Service worker:LLM 代理、API 兜底、评论历史、运行编排、授权、安装上报
content.js / content.css 页面内执行:搜索 → 生成 → 发布/私信 + 进度浮层 + 视频下载取址
sidepanel.html / sidepanel.js 侧边栏 UI(含视频下载落盘)
icons/ 16/32/48/128 图标

关键技术点(踩坑记录)

  • 评论框在 <bili-comments> 的嵌套 shadow DOM,且懒加载——必须阶梯滚动找组件,普通 querySelectorAll 够不到
  • 评论框可能贴底/浮动,容器内找不到要全页深扫并 scrollIntoView
  • 视频 CDN 要求 Referer,而 chrome.downloads 不能自定义 Referer(Unsafe header)→ 用 declarativeNetRequest 动态规则注入(不加 resourceTypes 过滤,否则不匹配下载请求)
  • 下载得到 txt 的根因:new Blob(chunks) 没传 type → MIME 为空 → Chrome 嗅探内容 → HTML 错误页被存成 .txt。必须 new Blob(chunks, {type}),并校验文件头魔数
  • 私信 wbi 签名:mixin_key 按 64 位索引重排取前 32 位,w_rid = md5(sorted_query + mixin_key);官方测试向量 wts=1702204169 + mixin ea1db124af3c7062474693fa704f4ff8 → 8f6f2b5b3d485fe1886cec6a0be8c5d4
  • MD5 的 charCodeAt(i)&0xFF 会把中文截断成单字节 → 签名含中文就全错,必须先 UTF-8 编码
  • 本机(含代理)访问 api.bilibili.com / api.vc.bilibili.com 全部返回风控 HTML 页,无法在服务器侧实测发送,只能在用户浏览器里跑

CHANGELOG

见 CHANGELOG.md

源码

免责声明

本插件仅供学习交流,请遵守 B站社区规范与当地法律法规。使用本插件产生的一切行为由使用者自行承担。