B站关注列表管理自动化:从手动维护到智能清理的完整解决方案
问题导入:关注列表管理的技术挑战
您是否曾发现B站关注列表中存在大量长期未活跃的创作者?随着使用时间增长,大多数用户的关注列表会逐渐积累数十甚至上百个账号,其中包含各类活动期间临时关注的主播、内容风格已变化的创作者,以及重复关注的同类账号。这些无效关注不仅影响内容发现效率,还会导致推荐算法精准度下降。
传统手动管理方式存在显著局限:单账号取关操作需要3-5次点击,完成100个账号的清理至少需要30分钟;缺乏批量筛选机制导致重要创作者可能被误清理;重复关注难以识别造成管理效率低下。这些问题促使我们寻求技术化解决方案。
方案对比:现有管理工具的技术选型
目前B站关注管理工具主要分为三类解决方案,各有技术特点与适用场景:
| 解决方案类型 | 技术实现方式 | 效率指标 | 安全控制 | 适用场景 |
|---|---|---|---|---|
| 浏览器脚本 | JavaScript DOM操作 | 中等(约100账号/10分钟) | 低(无权限控制) | 临时少量清理 |
| 移动端辅助工具 | 屏幕坐标模拟点击 | 低(约50账号/30分钟) | 中(基础白名单) | 手机端操作偏好者 |
| BiliBiliToolPro批量取关 | API接口直接调用 | 高(约500账号/1分钟) | 高(多维度防护) | 技术用户长期管理 |
BiliBiliToolPro采用直接调用B站API的方式,通过src/Ray.BiliBiliTool.Application/UnfollowBatchedTaskAppService.cs实现核心功能,相比其他方案具有明显技术优势:请求效率提升10倍以上,支持精确分组筛选,内置多重安全机制。
核心解析:批量取关功能的技术实现
功能架构设计
批量取关功能采用分层架构设计,主要包含三个核心模块:
- 配置层:通过
src/Ray.BiliBiliTool.Config/Options/UnfollowBatchedTaskOptions.cs定义可配置参数,支持分组筛选、数量控制和白名单设置 - 应用层:在
UnfollowBatchedTaskAppService.cs中实现业务逻辑,协调领域服务与API调用 - 数据层:通过
Ray.BiliBiliTool.Agent项目中的IRelationApi接口与B站服务器交互
关键技术原理
系统通过以下技术流程实现批量取关:
- 关注列表获取:调用
GetFollowings接口获取指定分组的关注列表,支持分页加载 - 筛选逻辑处理:应用配置规则过滤需要保留的用户(基于RetainUids白名单)
- 批量操作执行:通过
ModifyRelation接口执行取消关注操作,实现并发控制避免请求频率限制 - 操作日志记录:将取关结果写入执行日志,支持后续审计与验证
安全防护机制
为防止误操作,系统设计了多层次安全保障:
- 分组隔离机制:仅对指定GroupName的关注进行操作,避免影响其他分组
- 数量限制控制:通过Count参数限制单次取关数量,默认值为20
- 白名单保护:RetainUids配置项支持指定不可取关的用户ID列表
- 操作日志审计:完整记录每次取关操作,支持结果回溯
分步实践:批量取关功能的实施路径
环境准备与部署
- 获取项目代码
# 克隆项目仓库
git clone https://gitcode.com/GitHub_Trending/bi/BiliBiliToolPro
cd BiliBiliToolPro
- 选择部署方式
根据您的技术环境选择合适的部署方式:
-
Docker部署:适合有容器化经验的用户
docker build -t bilibili-tool . docker run -d --name bili-tool bilibili-tool -
青龙面板部署:适合需要图形化管理的用户
- 在青龙面板中添加任务仓库
- 拉取项目脚本
- 配置环境变量
-
源码部署:适合开发人员
dotnet build Ray.BiliBiliTool.sln dotnet run --project src/Ray.BiliBiliTool.Console
配置参数设置
以青龙面板部署为例,配置批量取关任务需要修改以下参数:
-
任务脚本配置
编辑
qinglong/DefaultTasks/bili_task_unfollowBatched.sh文件:#!/usr/bin/env bash # cron:0 12 1 * * # 每月1日12点执行 # new Env("bili批量取关任务") . bili_task_base.sh # 任务标识 target_task_code="UnfollowBatched" # 执行任务 run_task "${target_task_code}" -
环境变量配置
在青龙面板的环境变量页面(如图所示)添加以下关键配置:
环境变量名称 说明 示例值 Ray_UnfollowBatchedTask__GroupName 目标取关分组 "天选时刻" Ray_UnfollowBatchedTask__Count 单次取关数量 20 Ray_UnfollowBatchedTask__RetainUids 保留用户ID列表 "123456,789012"
任务执行与监控
-
任务创建
在青龙面板的定时任务页面添加新任务,配置执行周期和脚本路径:
-
执行监控
通过Web管理界面的任务调度页面监控执行状态:
-
结果验证
执行完成后,可以通过以下方式验证结果:
- 查看任务执行日志确认取关数量
- 登录B站网页版检查关注列表变化
- 分析执行报告中的统计数据
效果验证:自动化管理的效率提升
性能对比分析
实施批量取关功能后,关注列表管理效率得到显著提升:
| 操作类型 | 传统手动方式 | BiliBiliToolPro | 效率提升倍数 |
|---|---|---|---|
| 100账号取关 | 30分钟 | 30秒 | 60倍 |
| 分组筛选 | 手动识别 | 自动筛选 | 无法量化 |
| 误操作率 | 约5% | <0.1% | 50倍 |
长期管理策略
为保持关注列表的持续优化,建议采用以下管理策略:
- 定期执行计划:设置每月自动执行一次批量取关任务
- 分组管理机制:将临时关注的账号放入特定分组统一管理
- 动态白名单:维护重要创作者的UID白名单,确保不被误清理
- 多账号管理:通过配置多组Cookie实现多个B站账号的统一管理
常见问题解决方案
-
任务执行失败
- 检查网络连接状态
- 验证Cookie有效性
- 查看日志文件定位错误原因
-
取关数量异常
- 检查Count参数配置
- 确认目标分组是否正确
- 验证RetainUids格式是否正确
-
API调用限制
- 降低单次取关数量
- 增加任务执行间隔
- 启用请求限流功能
通过BiliBiliToolPro的批量取关功能,您可以将关注列表管理从耗时的手动操作转变为高效的自动化流程。无论是内容创作者还是普通用户,都能通过这套解决方案保持关注列表的清爽有序,提升B站使用体验。随着项目的持续迭代,更多高级功能将不断加入,为用户提供更完善的B站账号管理工具。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
LongCat-AudioDiT-1BLongCat-AudioDiT 是一款基于扩散模型的文本转语音(TTS)模型,代表了当前该领域的最高水平(SOTA),它直接在波形潜空间中进行操作。00- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
HY-Embodied-0.5这是一套专为现实世界具身智能打造的基础模型。该系列模型采用创新的混合Transformer(Mixture-of-Transformers, MoT) 架构,通过潜在令牌实现模态特异性计算,显著提升了细粒度感知能力。Jinja00
FreeSql功能强大的对象关系映射(O/RM)组件,支持 .NET Core 2.1+、.NET Framework 4.0+、Xamarin 以及 AOT。C#00


