3 个参数搞定 B 站批量取关:BiliBiliToolPro UnfollowBatched 完整配置指南
【免费下载链接】BiliBiliToolProB 站(bilibili)自动任务工具,支持docker、青龙、k8s等多种部署方式。全面拥抱AI。敏感肌也能用。项目地址: https://gitcode.com/GitHub_Trending/bi/BiliBiliToolPro
BiliBiliToolPro 是一款支持 Docker、青龙面板等多种部署的 B 站自动任务工具,其中 UnfollowBatched(批量取关)任务能按你预设的关注分组,自动从列表尾部逐个取消关注,一次清掉几十个 UP 主,不用手动点"已关注"再确认。这篇教程带你从零部署、填参数、跑任务到看日志核对结果,走完整条流程。
🚀 先选部署方式:Docker 还是青龙面板
两条路线最终都是同一套 .NET 程序,差别只在"谁来定时触发"。
Docker 路线:自带 Web 页面,适合想图形化管理的你
克隆仓库(https://gitcode.com/GitHub_Trending/bi/BiliBiliToolPro)后进入docker/sample/目录,参考docker-compose.yml启动容器,端口默认映射为22330:8080。首次使用打开 Web 页面用 B 站 App 扫码登录,登录态(Cookie)会写入挂载的config/cookies.json文件,重启不丢:
之后所有配置都能直接在 Web 的Configurations页改,不用碰文件。
青龙面板路线:脚本即任务,适合已在跑青龙的机器
脚本在qinglong/DefaultTasks/目录,基础脚本bili_task_base.sh首次运行会自动安装 .NET 8(或拉取预编译包),之后的任务由青龙定时触发。其中bili_task_unfollowBatched.sh对应的定时任务名叫"bili批量取关主播",文件头部注释# cron:0 12 1 * *表示默认每月 1 号 12:00 跑一次,也可以在青龙里改规则或点"运行"立即执行。
⚙️ 填 3 个关键参数:UnfollowBatchedTaskConfig 配置指南
任务配置在appsettings.json的UnfollowBatchedTaskConfig节(Docker 部署时在 Web 的Unfollow Batch页面直接改)。Docker 方式登录后,Cookie 与配置的对应关系可参考:
最小可用配置就 5 行:
"UnfollowBatchedTaskConfig": { "IsEnable": true, "GroupName": "天选时刻", "Count": 20, "RetainUids": "17830764,683106061" }各参数怎么填:
| 参数 | 默认值 | 填写建议与注意点 |
|---|---|---|
IsEnable | true | 置false时任务整体跳过,适合临时停用 |
GroupName | 天选时刻 | 必须是 B 站 App 里精确存在的分组名;取关只作用于该分组成员,不会碰你的其他关注列表 |
Count | 20 | 本次取关人数,从分组列表尾部倒序取;填-1表示清空整个分组 |
RetainUids | 空 | 白名单,只认数字 UpId(UP 主主页 URL 里space.bilibili.com/后面那串数字),多个用英文逗号分隔 |
Cron | 0 0 6 1 * ? | Cron 表达式(定时任务的"几点跑"规则),默认每月 1 号 6 点 |
两个最容易翻车的点先说在前面:
GroupName不做模糊匹配。源码按精确名称查分组的 tag ID(AccountDomainService.cs),名称对不上时日志只有一句"分组名称不存在",然后任务静默结束——不会发生任何取关。正确顺序是:先在 B 站 App 里手动建好分组,把待清理的 UP 主"移入"该分组,再启动任务。RetainUids填用户名没用。白名单比对的是 UpId 数字,填错等于没填。取关操作工具无法回滚,误删后只能手动重新关注,所以还在活跃关注的 UP 主务必先进白名单。
另外,取关动作还受Security节的IntervalSecondsBetweenRequestApi控制(默认 3 秒):每次调用 B 站接口之间强制间隔,避免短时间内的高频批量请求触发 B 站风控(安全检测机制)。间隔不用调太大,默认值已经比较稳妥。
📝 触发任务,并立刻用日志关键字核对结果
跑起来只是开始,核对结果才算闭环。两种触发方式:
- 青龙:定时任务列表找到"bili批量取关主播",点"运行"立即执行;
- Docker Web:Schedules 页找到
UnfollowBatchedJob,Actions 列一键手动触发,或等 Cron 到点自动执行,下次运行时间也显示在同一页。
执行后在日志里按关键字对数,顺序如下:
【分组下共有】N人/【目标取关】N人:确认分组识别正确、本轮目标数量符合预期;【取关结果】白名单,跳过:命中RetainUids,属正常行为;【取关结果】成功/失败(失败会跟一条【原因】)记录每次取关结果;【本次共取关】N人:实际成功数,注意它可能小于目标数(被白名单跳过或失败);【分组下剩余】N人:收尾数字,直接打开 B 站 App 的分组页对照,两边一致说明数据没问题。
只要看到"分组名称不存在"或"分组下不存在up",说明任务其实没干活,回去检查分组名拼写即可。
🧭 长期运行的两个习惯
大分组别一次清空。Count填-1会取关整个分组,但每次取关之间都有接口间隔,百人的组全量清空至少也要十分钟以上,中途任何一次失败都得重来。更稳的做法是拆成 3~4 次,每次Count取 30 左右,跑完看一次剩余人数再决定下一批。
首次启用先小步试跑。建议第一轮换Count为 5,确认分组命中、白名单生效、剩余人数符合预期后,再改回正式参数交给 Cron 每月自动执行。此后每月只需打开日志核一遍【本次共取关】与【分组下剩余】,两个数字对得上,这条定时任务就一直在正常干活。
【免费下载链接】BiliBiliToolProB 站(bilibili)自动任务工具,支持docker、青龙、k8s等多种部署方式。全面拥抱AI。敏感肌也能用。项目地址: https://gitcode.com/GitHub_Trending/bi/BiliBiliToolPro
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考