B站关注列表智能管理:基于BiliBiliToolPro的批量取关自动化解决方案
随着B站(bilibili)平台的持续发展,用户关注列表往往会积累大量不再活跃或兴趣不符的UP主账号,导致内容筛选困难和关注列表臃肿。BiliBiliToolPro作为一款功能强大的B站自动任务工具,提供了高效的批量取关功能,能够帮助用户快速清理关注列表,优化内容消费体验。本文将从问题分析、技术原理、实操配置到高级应用,全面介绍如何利用该工具实现关注列表的智能化管理。
一、关注列表管理的痛点与挑战
1.1 数字囤积现象:关注列表膨胀的成因分析
当代互联网用户普遍存在"数字囤积"行为,在B站平台上主要表现为:
- 活动参与型关注:为参与"天选时刻"等互动活动而临时关注的账号
- 内容探索型关注:对新领域好奇而关注但后续失去兴趣的UP主
- 时间沉淀型关注:早期关注但已停止更新的创作者
- 重复关注:同一领域内容相似的多个创作者账号
这些因素共同导致关注列表持续膨胀,据统计,活跃B站用户平均关注数量超过80个,其中30%以上属于低互动或长期未活跃账号。
1.2 手动管理的局限性量化分析
传统手动管理方式存在显著效率瓶颈:
- 时间成本高:手动逐个取关100个账号平均耗时35分钟
- 操作体验差:需多次点击确认,且无批量筛选功能
- 记忆负担重:难以系统识别长期未互动的账号
- 持续性不足:手动清理后容易再次积累,形成恶性循环
1.3 自动化解决方案的核心价值
BiliBiliToolPro的批量取关功能通过以下方式解决上述痛点:
- 效率提升:将100个账号的清理时间压缩至2分钟内
- 精准筛选:基于分组、活跃度等多维度条件过滤
- 安全可控:提供白名单机制保护重要关注对象
- 持续管理:支持定期自动执行,保持关注列表健康状态
二、批量取关功能的技术实现原理
2.1 功能架构解析
BiliBiliToolPro的批量取关功能采用分层架构设计,主要包含:
graph TD
A[用户配置层] --> B[应用服务层]
B --> C[领域服务层]
C --> D[API代理层]
D --> E[B站服务端]
A -->|配置参数| B
B -->|调用领域方法| C
C -->|封装业务逻辑| D
D -->|网络请求| E
E -->|返回结果| D
D -->|解析数据| C
C -->|处理结果| B
B -->|生成日志| A
- 用户配置层:通过配置文件或Web界面设置取关规则
- 应用服务层:协调任务执行流程,位于
src/Ray.BiliBiliTool.Application/UnfollowBatchedTaskAppService.cs - 领域服务层:实现核心业务逻辑,包括关注列表获取、筛选和取关操作
- API代理层:封装B站API调用,处理网络请求与响应解析
2.2 核心算法流程
批量取关功能的核心执行流程如下:
sequenceDiagram
participant Task as 定时任务
participant Service as 应用服务
participant Domain as 领域服务
participant Api as B站API
participant Store as 数据存储
Task->>Service: 触发批量取关任务
Service->>Service: 加载用户配置
Service->>Domain: 获取关注列表请求
Domain->>Api: 调用关注列表API
Api-->>Domain: 返回关注列表数据
Domain->>Domain: 应用筛选规则
Domain->>Domain: 排除白名单用户
loop 批量取关
Domain->>Api: 调用取关API
Api-->>Domain: 返回操作结果
Domain->>Store: 记录操作日志
end
Domain-->>Service: 返回执行结果
Service->>Task: 生成执行报告
2.3 关键代码解析
在领域服务层,批量取关的核心实现如下(简化版):
// 位于 src/Ray.BiliBiliTool.DomainService/AccountDomainService.cs
public async Task<UnfollowResult> BatchUnfollowAsync(UnfollowBatchedTaskOptions options)
{
// 1. 获取指定分组的关注列表
var followings = await _relationApi.GetFollowingsAsync(
new GetFollowingsRequest { GroupName = options.GroupName }
);
// 2. 应用筛选规则
var toUnfollow = followings
.Where(f => !options.RetainUids.Contains(f.Mid)) // 排除白名单
.OrderByDescending(f => f.FollowTime) // 按关注时间排序
.Take(options.Count) // 限制取关数量
.ToList();
// 3. 执行批量取关
var result = new UnfollowResult();
foreach (var user in toUnfollow)
{
var response = await _relationApi.ModifyRelationAsync(
new ModifyRelationRequest { Uid = user.Mid, Action = RelationAction.Unfollow }
);
if (response.IsSuccess)
{
result.SuccessCount++;
_logger.LogInformation($"成功取关: {user.Name}({user.Mid})");
}
else
{
result.FailCount++;
_logger.LogError($"取关失败: {user.Name}({user.Mid}), 原因: {response.Message}");
}
// 避免请求过于频繁
await Task.Delay(1000);
}
return result;
}
这段代码展示了批量取关功能的核心逻辑:获取关注列表、应用筛选规则、执行取关操作,并记录操作结果。
三、环境部署与基础配置
3.1 部署方式对比与选择
BiliBiliToolPro支持多种部署方式,各有适用场景:
| 部署方式 | 适用人群 | 复杂度 | 维护成本 | 灵活性 |
|---|---|---|---|---|
| 青龙面板 | 新手用户 | 低 | 低 | 中 |
| Docker | 技术爱好者 | 中 | 中 | 高 |
| Kubernetes | 企业用户 | 高 | 高 | 极高 |
| 本地运行 | 开发者 | 中 | 高 | 中 |
对于大多数用户,推荐使用青龙面板部署,兼顾简单性和稳定性。
3.2 青龙面板部署步骤
3.2.1 环境准备
- 确保青龙面板已正确安装并运行
- 准备B站账号Cookie(获取方法参见官方文档)
- 确保网络环境可正常访问B站API
3.2.2 项目部署
# 克隆项目仓库
git clone https://gitcode.com/GitHub_Trending/bi/BiliBiliToolPro
# 进入项目目录
cd BiliBiliToolPro
# 执行青龙部署脚本
bash qinglong/extra.sh
3.2.3 环境变量配置
在青龙面板的"环境变量"页面添加以下必要配置:
核心环境变量说明:
| 变量名 | 说明 | 示例 |
|---|---|---|
| Ray_BiliBiliCookies_0 | B站账号Cookie | "SESSDATA=xxx; bili_jct=xxx; DedeUserID=xxx" |
| Ray_UnfollowBatchedTask__GroupName | 取关目标分组 | "天选时刻" |
| Ray_UnfollowBatchedTask__Count | 每次取关数量 | 20 |
| Ray_UnfollowBatchedTask__RetainUids | 保留用户ID列表 | "123456,789012" |
四、批量取关功能实战配置
4.1 任务创建与参数配置
在青龙面板中创建批量取关定时任务:
任务脚本路径:qinglong/DefaultTasks/bili_task_unfollowBatched.sh
默认任务配置:
#!/usr/bin/env bash
# cron: 0 12 1 * *
# new Env("bili批量取关主播")
. bili_task_base.sh
target_task_code="UnfollowBatched"
run_task "${target_task_code}"
Cron表达式说明:0 12 1 * * 表示每月1日12:00执行
4.2 核心配置项详解
批量取关功能的核心配置位于src/Ray.BiliBiliTool.Config/Options/UnfollowBatchedTaskOptions.cs,主要参数包括:
| 配置项 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| GroupName | string | "天选时刻" | 要取关的分组名称,空表示所有分组 |
| Count | int | 20 | 每次执行的取关数量 |
| RetainUids | List | 空 | 始终保留的用户ID列表 |
| UnfollowInactiveDays | int? | null | 仅取关超过指定天数未互动的用户 |
| ExcludeVip | bool | false | 是否排除VIP用户 |
| ExcludeOfficial | bool | false | 是否排除官方账号 |
4.3 多账号配置与管理
对于多账号用户,可通过以下方式配置:
-
添加多个Cookie环境变量:
- Ray_BiliBiliCookies_0(主账号)
- Ray_BiliBiliCookies_1(第二个账号)
- Ray_BiliBiliCookies_2(第三个账号)
-
为不同账号配置独立参数:
Ray_1_UnfollowBatchedTask__Count=15 # 第二个账号每次取关15人 Ray_2_UnfollowBatchedTask__GroupName="临时关注" # 第三个账号取关"临时关注"分组
五、执行监控与故障排除
5.1 执行日志查看
任务执行后,可通过Web界面查看详细日志:
日志包含以下关键信息:
- 任务开始/结束时间
- 处理的账号信息
- 每个取关操作的结果
- 异常信息与错误原因
5.2 常见问题诊断与解决
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 任务未执行 | Cron表达式错误 | 检查Cron格式,确保符合青龙面板要求 |
| 取关数量为0 | 分组名称错误 | 确认GroupName与B站实际分组名称一致 |
| 部分取关失败 | API调用频率限制 | 减少单次取关数量,增加请求间隔 |
| Cookie失效 | 账号登录状态过期 | 重新获取并更新Cookie |
| 任务执行超时 | 网络连接问题 | 检查网络环境,确保能正常访问B站 |
5.3 执行效果验证方法
任务执行后,可通过以下方式验证效果:
- 直接验证:登录B站账号,检查关注列表是否减少
- 日志验证:查看任务日志中的"成功取关"记录
- 统计验证:比较任务前后的关注总数变化
六、高级应用与最佳实践
6.1 自定义取关策略
通过修改配置实现个性化取关策略:
// 高级配置示例(appsettings.json)
"UnfollowBatchedTask": {
"GroupName": "天选时刻",
"Count": 30,
"RetainUids": [123456, 789012],
"UnfollowInactiveDays": 90,
"ExcludeVip": true,
"ExcludeOfficial": true
}
此配置表示:取关"天选时刻"分组中超过90天未互动、非VIP且非官方的账号,每次取关30人,保留ID为123456和789012的用户。
6.2 与其他功能协同使用
批量取关功能可与以下功能协同,实现关注列表全生命周期管理:
- 关注分析:结合用户活跃度分析,识别低价值关注
- 智能分组:使用自动分组功能,将临时关注自动归类
- 定时执行:设置每月自动执行,保持关注列表精简
- 通知集成:配置执行结果推送(钉钉、企业微信等)
6.3 社区最佳实践案例
案例一:内容创作者的关注管理
某科技区UP主使用以下配置,保持关注列表的专业性:
GroupName: "临时关注"
Count: 50
UnfollowInactiveDays: 60
RetainUids: [官方账号, 重要合作伙伴ID]
Cron: 0 3 1 * * # 每月1日凌晨3点执行
案例二:普通用户的关注优化
某普通用户采用渐进式清理策略:
- 第一周:Count=10,熟悉功能
- 第二周:Count=20,扩大清理范围
- 稳定期:每月执行,Count=30,保持关注列表在100人以内
七、工具横向对比与选型建议
7.1 主流B站批量取关工具对比
| 工具 | 部署难度 | 功能丰富度 | 安全性 | 维护状态 |
|---|---|---|---|---|
| BiliBiliToolPro | 中 | ★★★★★ | ★★★★★ | 活跃 |
| 油猴脚本 | 低 | ★★★☆☆ | ★★★☆☆ | 不稳定 |
| 第三方桌面软件 | 中 | ★★★★☆ | ★★☆☆☆ | 未知 |
| 手动操作 | 低 | ★☆☆☆☆ | ★★★★★ | N/A |
7.2 适用场景与选型建议
- 普通用户:推荐BiliBiliToolPro + 青龙面板,平衡易用性和功能性
- 技术开发者:推荐Docker部署,便于自定义扩展
- 多账号管理者:推荐Kubernetes部署,支持规模化管理
- 临时少量清理:可考虑油猴脚本,快速临时使用
八、总结与展望
BiliBiliToolPro的批量取关功能通过自动化方式解决了B站关注列表管理的痛点,大幅提升了操作效率和管理精准度。通过本文介绍的部署配置、参数优化和最佳实践,用户可以轻松实现关注列表的智能化管理,让内容消费更加聚焦和高效。
随着B站平台的不断发展,未来批量取关功能可能会加入更智能的筛选算法,如基于内容相似度、互动频率等多维度的智能推荐取关,进一步提升用户体验。建议用户持续关注项目更新,及时获取新功能和优化改进。
通过合理配置和定期执行,BiliBiliToolPro将成为你B站体验优化的得力助手,让关注列表始终保持清爽有序,内容消费更加高效愉悦。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0243- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
electerm开源终端/ssh/telnet/serialport/RDP/VNC/Spice/sftp/ftp客户端(linux, mac, win)JavaScript00


