返回 Skill 列表
extension
分类: 数据与分析无需 API Key

Bilibili 热门趋势分析

获取 Bilibili 全榜单热门数据并分析趋势,支持 21 个榜单,自动调用子 Agent 生成 MD 报告并持久化储存,仅调用公开 API,安全无隐私风险。

person作者: rookiecoder-jsjshubclawhub

Bilibili Trending

获取 B 站热门数据 → 自动调用子 Agent 分析 → 持久化储存 → 趋势预测

安全说明

  • 仅调用公开 API:使用 B 站公开排行榜 API,不涉及登录、Cookie、用户信息
  • 无个人信息:只获取热门视频数据,不采集任何用户身份信息
  • 本地存储:数据保存在本地工作区,不上传到任何外部服务器
  • 标准请求头:仅使用标准 User-Agent,无特殊权限
  • 自动重试:API 限流(-352)时自动等待并重试(最多 3 次)

环境要求

  • Python 3.x
  • requests
  • OpenClaw 环境(用于自动调用子 Agent)

支持 21 个榜单

| 类型 | 榜单 | |------|------| | 普通视频 | 全站、动画、游戏、音乐、舞蹈、鬼畜、影视、娱乐、知识、科技数码、美食、汽车、时尚美妆、体育运动、动物 | | PGC 内容 | 番剧、国创、纪录片、电影、电视剧 |


使用方式

以下命令在 skill 目录下执行(脚本会根据相对于工作区的位置自动创建所需目录)

抓取并分析单个榜单

cd skills/Bilibili-trending/scripts
python bilibili_all.py --rank <榜单>

示例:

python bilibili_all.py --rank game    # 游戏榜
python bilibili_all.py --rank tv      # 电视剧榜
python bilibili_all.py --rank anime   # 番剧榜
python bilibili_all.py --rank all     # 全站榜

列出所有榜单

python bilibili_all.py --list

手动模式(输出 prompt 不调用子 Agent)

python bilibili_all.py --rank game --manual

抓取并检测异常

python bilibili_all.py --rank game --alert    # 抓取后自动运行异常检测
python bilibili_all.py --rank game -a -m      # 手动模式 + 异常检测

完整流程

Step 1: 抓取数据

脚本自动完成:

  1. 调用 B 站 API 抓取数据
  2. 处理数据(计算互动率、提取关键词)
  3. 保存 JSON 到 {工作区}/json/output_{rank_type}.json
  4. 更新趋势数据到 trend.json

Step 2: 自动分析

脚本自动 spawn 子 Agent,发送分析 prompt

Step 3: 保存报告

分析完成后,报告自动保存到:

{工作区}/memory/bilibili-analysis/{榜单名称}_{时间}.md

例如:游戏_2026-04-02-15-30-45.md


趋势分析命令

skills/Bilibili-trending/scripts 目录下执行

查看趋势

python bili_trend.py trend          # 全局趋势
python bili_trend.py trend game     # 单榜单趋势

生成周总结

python bili_trend.py weekly         # 全站周总结
python bili_trend.py weekly game    # 单榜单周总结

生成月总结

python bili_trend.py monthly        # 全站月总结
python bili_trend.py monthly game   # 单榜单月总结

对已有数据重新分析

python bili_trend.py workflow game           # 自动调用子 Agent
python bili_trend.py workflow game --manual  # 仅输出 prompt

定时自动采集

python bili_trend.py daemon                      # 默认 2h 间隔,采集全部 21 个榜单
python bili_trend.py daemon --interval 30m       # 每 30 分钟采集一次
python bili_trend.py daemon -i 4h -r game,anime  # 每 4 小时采集游戏+番剧榜
python bili_trend.py daemon --no-alert           # 关闭异常检测

Ctrl+C 优雅停止。


非 OpenClaw 环境

如果没有 OpenClaw 环境:

  • 脚本检测到无法导入 sessions_spawn
  • 自动输出 prompt 供手动使用
  • 用户可将 prompt 发送给子 Agent 手动分析

关键词提取逻辑

# 1. 正则提取 2-4 字中文
words = re.findall(r'[\u4e00-\u9fa5]{2,4}', title)

# 2. 统计词频
kw_counter = Counter(words)

# 3. 取 Top 10
top_keywords = [kw for kw, _ in kw_counter.most_common(10)]

环境变量

| 变量 | 说明 | 默认值 | |------|------|--------| | BILIBILI_WORKSPACE | 工作区路径(JSON 和报告的输出目录) | 自动检测(scripts/ 往上 3 级) |


异常检测

当使用 --alert 或 daemon 模式时,自动检测以下 4 类异常:

| 类型 | 级别 | 检测规则 | |------|------|----------| | 互动率飙升 | HOT | 视频互动率 > 历史均值 × 2.5 | | 新 UP 主上榜 | INFO | UP 主首次出现在该榜单 | | 分区热度突变 | WARN | 分区占比 > 历史均值 × 2.0 | | 关键词爆发 | INFO | 新关键词首次进入 Top 10 |

预警数据保存到 memory/bilibili-analysis/alerts.json(最近 200 条),UP 主历史记录保存到 up_history_{rank_type}.json

需要至少 3 条历史趋势记录才会启动检测。


脚本结构

scripts/
├── config.py         # 21 个榜单配置
├── common.py         # 共享工具(路径、持久化、关键词、prompt、API 重试、抓取、Agent 调用)
├── alerts.py         # 异常检测(互动率、新UP主、分区突变、关键词爆发)
├── bilibili_all.py   # 主入口:抓取 → 处理 → 保存 → 分析(支持 --alert)
└── bili_trend.py     # 趋势分析:trend / weekly / monthly / workflow / daemon

输出文件

脚本会在工作区自动创建以下目录结构:

{工作区}/
├── json/                           # JSON 数据目录
│   └── output_{rank_type}.json      # 原始数据(含 owner 字段)
└── memory/bilibili-analysis/        # 分析结果目录
    ├── trend.json                    # 趋势累计数据(最近 60 条)
    ├── alerts.json                   # 预警记录(最近 200 条)
    ├── up_history_game.json          # 游戏榜历史 UP 主
    ├── 游戏_2026-04-02-15-30-45.md  # 分析报告
    ├── weekly-2026-W14.md           # 周总结
    └── monthly-2026-04.md           # 月总结

注意事项

  • 频繁请求会触发 API 限流(-352 错误),脚本已内置自动重试 + 递增等待
  • 趋势数据需长期积累(建议 30+ 次)才能形成可靠预测
  • 子 Agent 分析完成后报告自动保存
  • 普通视频数据包含 owner 字段,支持 UP 主生态分析