首页
/ B站关注列表智能管理:基于BiliBiliToolPro的批量取关自动化解决方案

B站关注列表智能管理:基于BiliBiliToolPro的批量取关自动化解决方案

2026-04-03 09:51:49作者:蔡丛锟

随着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 环境准备

  1. 确保青龙面板已正确安装并运行
  2. 准备B站账号Cookie(获取方法参见官方文档)
  3. 确保网络环境可正常访问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 多账号配置与管理

对于多账号用户,可通过以下方式配置:

  1. 添加多个Cookie环境变量:

    • Ray_BiliBiliCookies_0(主账号)
    • Ray_BiliBiliCookies_1(第二个账号)
    • Ray_BiliBiliCookies_2(第三个账号)
  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 执行效果验证方法

任务执行后,可通过以下方式验证效果:

  1. 直接验证:登录B站账号,检查关注列表是否减少
  2. 日志验证:查看任务日志中的"成功取关"记录
  3. 统计验证:比较任务前后的关注总数变化

六、高级应用与最佳实践

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 与其他功能协同使用

批量取关功能可与以下功能协同,实现关注列表全生命周期管理:

  1. 关注分析:结合用户活跃度分析,识别低价值关注
  2. 智能分组:使用自动分组功能,将临时关注自动归类
  3. 定时执行:设置每月自动执行,保持关注列表精简
  4. 通知集成:配置执行结果推送(钉钉、企业微信等)

6.3 社区最佳实践案例

案例一:内容创作者的关注管理

某科技区UP主使用以下配置,保持关注列表的专业性:

GroupName: "临时关注"
Count: 50
UnfollowInactiveDays: 60
RetainUids: [官方账号, 重要合作伙伴ID]
Cron: 0 3 1 * *  # 每月1日凌晨3点执行

案例二:普通用户的关注优化

某普通用户采用渐进式清理策略:

  1. 第一周:Count=10,熟悉功能
  2. 第二周:Count=20,扩大清理范围
  3. 稳定期:每月执行,Count=30,保持关注列表在100人以内

七、工具横向对比与选型建议

7.1 主流B站批量取关工具对比

工具 部署难度 功能丰富度 安全性 维护状态
BiliBiliToolPro ★★★★★ ★★★★★ 活跃
油猴脚本 ★★★☆☆ ★★★☆☆ 不稳定
第三方桌面软件 ★★★★☆ ★★☆☆☆ 未知
手动操作 ★☆☆☆☆ ★★★★★ N/A

7.2 适用场景与选型建议

  • 普通用户:推荐BiliBiliToolPro + 青龙面板,平衡易用性和功能性
  • 技术开发者:推荐Docker部署,便于自定义扩展
  • 多账号管理者:推荐Kubernetes部署,支持规模化管理
  • 临时少量清理:可考虑油猴脚本,快速临时使用

八、总结与展望

BiliBiliToolPro的批量取关功能通过自动化方式解决了B站关注列表管理的痛点,大幅提升了操作效率和管理精准度。通过本文介绍的部署配置、参数优化和最佳实践,用户可以轻松实现关注列表的智能化管理,让内容消费更加聚焦和高效。

随着B站平台的不断发展,未来批量取关功能可能会加入更智能的筛选算法,如基于内容相似度、互动频率等多维度的智能推荐取关,进一步提升用户体验。建议用户持续关注项目更新,及时获取新功能和优化改进。

通过合理配置和定期执行,BiliBiliToolPro将成为你B站体验优化的得力助手,让关注列表始终保持清爽有序,内容消费更加高效愉悦。

登录后查看全文
热门项目推荐
相关项目推荐