全网聚合热点榜

API key required
Other

基于每小时收录的抖音、微博、B站、快手、知乎、头条、百度等7大平台热点数据,聚合全网最热TOP10热点。支持回溯近7天热点。不支持具体热点的查询。

Install

openclaw skills install trending-hub-top10

全网聚合热点榜

任务目标

  • 本 Skill 用于:聚合抖音、微博、B站、快手、知乎、头条、百度等多个平台的热点数据,提供跨平台热点分析和趋势预测
  • 核心价值 解决内容创作者、市场运营者在热点追踪中的三大痛点: 热点分散难整合:无需逐个平台查看,一次聚合7大平台热榜 跨平台对比困难:自动识别同一事件在不同平台的讨论差异和热度表现,对热点进行快览分析 趋势判断模糊:基于热度值、上榜时长、平台覆盖等维度智能预测热点走势 订阅推送服务:定时推送最新热榜/昨日热榜
  • 触发条件:用户查询"热点榜"、"今日热点"、"全网热点榜"、"昨日热榜",请求"导出报告",或订阅推送服务
  • 不支持:该技能不支持查询特定热词详情,仅提供全网热点榜聚合查询

核心能力 功能模块 能力描述 核心价值 🔍 全网热榜聚合 实时抓取7大平台热搜数据 一键获取全网热点,告别逐平台查看 🔗 跨平台事件识别 智能识别同一事件在不同平台的表述 自动归并相似话题,避免重复统计 📊 热度趋势预测 基于热度值、时长、平台覆盖预测走势 提前判断热点生命周期,把握创作窗口 📈 TOP10榜单提供 按综合热度排序输出TOP10热点 快速定位高价值选题 💬 跨平台讨论分析 展示不同平台的讨论焦点和差异 深度洞察舆论生态,精准定位受众 📄 HTML报告导出 生成美观的可视化报告 支持图片导出,便于分享存档 ⏰ 订阅推送服务 定时推送最新热榜/昨日热榜 持续追踪热点动态,不错过关键机会

前置准备

  • 依赖说明:scripts脚本依赖 python-dateutil 库
  • 非标准文件准备:当前路径视为相对于Skill目录的父目录

鉴权

获取 API Key

请前往 红狐hub 获取API KEY

配置 API Key

方案1: 以OpenClaw为例,将REDFOX_API_KEY添加到~/.openclaw/openclaw.json中,部分内容如下:

{ "env": { "REDFOX_API_KEY": "ak_xxxx..." } }

方案2: 终端配置

export REDFOX_API_KEY="ak_xxxx..."

操作步骤

重要原则:智能体完成数据分析并保存JSON后,直接生成HTML报告,不在对话中输出详细榜单。

  • 标准流程:

    1. 获取热点数据 — 脚本调用
      • 脚本调用:python scripts/fetch_hotspot.py --output json
      • 返回JSON数据结构见下方"数据结构说明"
    2. 智能体分析数据并保存JSON — 智能体根据JSON数据进行热点事件识别、排序,保存结构化数据
      • 执行热点事件识别(见下方"热点事件总结规则")
      • 按热度值降序排列,取TOP10
      • 将分析结果保存为 structured_report.json(格式见下方"结构化报告JSON格式")
      • discussions必须覆盖所有在榜平台platforms 列表中的每个平台都必须在 discussions 数组中有对应条目
    3. 自动生成HTML报告 — JSON保存完成后立即执行,不询问用户
      • 脚本调用:python scripts/generate_html_report.py --input structured_report.json --output 热点榜报告.html
    4. 对话中输出简要信息 — 按顺序输出:标题 > 统计时间 > HTML报告 > 订阅推送服务询问
      • 输出格式:

        # 🔥 全网热点榜
        
        > 📅 统计时间:{start_date} 至 {end_date}
        
        ⚡ **HTML报告已生成**
        • 点击下方下载HTML报告文件,可在浏览器中打开查看,支持导出图片
        
        📬 **订阅推送服务**
        
        想持续追踪热点动态?
        可以订阅最新热榜,向您推送前1小时的最新数据
        或者订阅昨日热榜,一键获取全网热点
        还支持您定制近30天任意时间段的数据~追热点快人一步
        
  • 可选分支:

    • 当用户需要趋势预测:智能体参考 references/prediction-logic.md 生成趋势预测
    • 当用户订阅推送:智能体按照订阅模板进行交互

热点事件总结规则

核心原则:完全忽略接口返回的keyword和分类,独立从所有标题中识别并归纳具体热点事件。

【重要】必须执行以下步骤,不能跳过任何一步:

识别流程(必须按顺序执行)

步骤1:收集所有标题

  • 遍历API返回的 hotspots 数组
  • 提取每条数据的 titleplatName
  • 将所有标题放在一个列表中,忽略原有的keyword分组

步骤2:识别具体事件

  • 阅读每一条标题,判断哪些标题描述的是同一个事件
  • 判断依据:
    • 相同主体(人名、地名、机构名、事件名)
    • 相同事件核心(比赛、发布会、案件、政策等)
    • 时间连续性(同一时间段的热点)

步骤3:归纳事件热词

  • 为每个识别出的事件提炼一个简洁的热词(5-15个字)
  • 热词必须描述具体事件,不能是泛化概念
  • ✅ 正确:U20女足中日对决、2026大学排名发布、德国留学生迷奸案
  • ❌ 错误:中国相关热点、体育新闻、社会事件

步骤4:按热度值排序

  • 按热度值降序排列,取TOP10

正确示例

接口返回的原始数据(忽略keyword分组)

抖音标题:["U20女足中国vs日本", "中国U20女足0:2日本", "2026软科中国大学排名发布"]
头条标题:["无缘决赛!U20女足中国0-2日本", "2026中国大学排名", "中国钨出口管制对日本影响"]
微博标题:["在德读硕中国小伙多次下药迷奸女友"]
知乎标题:["福特CEO称中国车进入美国市场我们就完蛋"]

AI识别并归纳的事件

排名热词平台数词条数热度值综合热度
1U20女足中日对决23938万2038万
22026大学排名发布22442万2442万
3德国留学生迷奸案11320万1320万
4中国钨出口管制11280万1280万
5福特CEO谈中国车11150万1150万

注意:原来5条标题被归纳为5个事件,而不是直接使用原标题作为热点名称。

数据来源

直接读取 hotspots 数组中每个热点项的 titleplatNameurl 等字段。

URL跳转

每个热点项包含 url 字段,支持跳转到对应平台查看详情:

  • 有URL的热点:输出时可添加跳转链接
  • 无URL的热点(url为空字符串):不提供跳转

数据结构说明

脚本返回的JSON数据结构如下,智能体需据此填充模板:

{
  "status": "success",
  "stat_time": "2026-04-16 08:30:00",
  "query_range": {
    "type": "realtime",
    "start_date": "2026-04-16 07:00:00",
    "end_date": "2026-04-16 08:00:00"
  },
  "total_count": 50,
  "hotspots": [
    {
      "hotId": "0DFEC94708F044A64E88818174FDD003",
      "title": "匈牙利总理用"三个最"描述中国",
      "platName": "头条",
      "plat": 11,
      "url": "https://www.toutiao.com/trending/7628053353528033321/",
      "firstRankTime": "2026-04-15 21:00:00",
      "latestRankDate": "2026-04-16 00:00:00",
      "maxHotScore": 4427099,
      "maxPosition": 15,
      "topOfTheDayTime": "3",
      "source_keyword": "中国"
    },
    {
      "hotId": "566756798B468EC8665BE99EE5EBF83A",
      "title": "中国U20女足0:2日本",
      "platName": "抖音",
      "plat": 10,
      "url": "https://www.douyin.com/search/中国U20女足0:2日本",
      "firstRankTime": "2026-04-16 00:00:00",
      "latestRankDate": "2026-04-16 00:00:00",
      "maxHotScore": 9384468,
      "maxPosition": 8,
      "topOfTheDayTime": "14",
      "source_keyword": "中国"
    }
  ]
}

字段说明

字段含义可分析维度
hotId热点唯一ID-
title热点标题事件识别、跨平台归并
platName平台名称(抖音、头条、微博等)平台覆盖分析
plat平台代码-
url跳转链接查看详情、跳转访问
firstRankTime首次上榜时间热点发酵起点、时效性
latestRankDate最新上榜日期热点是否仍在榜
maxHotScore最高热度值热度排行、热度对比
maxPosition最高排名位置热度峰值、排名变化
topOfTheDayTime榜单停留时长(小时)热度持续性、生命周期预测
source_keyword接口分组关键词仅供参考,不用于输出

可分析维度

基于新增字段,可进行以下分析:

  1. 热度排行:按 maxHotScore 排序,展示热度最高的热点
  2. 热度持续性:根据 topOfTheDayTime 判断热点生命周期
    • 停留<3小时:短期热点,快速衰减
    • 停留3-10小时:中等持续
    • 停留>10小时:长期热点,持续发酵
  3. 排名表现maxPosition 越小说明热度峰值越高
  4. 时效性判断:对比 firstRankTime 和当前时间,判断热点新鲜度
  5. 趋势预测:结合热度值、停留时长、排名进行趋势判断

结构化报告JSON格式

智能体完成分析后,将结果保存为 structured_report.json(内部中间文件,不展示给用户),供HTML报告脚本读取。

关键原则

  1. HTML报告脚本只负责模板渲染,不进行任何数据分析或事件识别
  2. JSON中的数据必须与对话中输出的内容完全一致
  3. 智能体在对话中输出什么,JSON就保存什么,HTML就渲染什么
{
  "query_range": {
    "start_date": "2026-04-16 00:00:00",
    "end_date": "2026-04-16 08:00:00"
  },
  "hotspots": [
    {
      "rank": 1,
      "title": "归纳的事件热词",
      "hot_score": "938万",
      "platform_count": 4,
      "duration": "14h",
      "max_position": 3,
      "platforms": ["微博", "抖音", "头条", "快手"],
      "discussions": [
        {
          "platform": "微博",
          "focus": "讨论焦点描述,不少于10个字",
          "topics": [
            { "title": "原始标题1", "url": "https://..." },
            { "title": "原始标题2", "url": "" }
          ]
        },
        {
          "platform": "抖音",
          "focus": "讨论焦点描述",
          "topics": [{ "title": "原始标题3", "url": "https://..." }]
        }
      ],
      "prediction": "预测内容文字",
      "prediction_emoji": "🔥🔥🔥"
    }
  ]
}

字段说明

字段说明要求
title事件热词与对话中TOP10表格的热点事件一致
hot_score热度值格式为"数字+万"(如"938万"),禁止包含其他字符
platform_count上榜平台数与对话中一致
duration持续时长0h时填"刚上热搜",否则填"Nh",与对话中一致
max_position最高排名数字,越小排名越高
platforms在榜平台列表仅包含实际在榜的平台
discussions跨平台讨论差异必须覆盖platforms中所有在榜平台,每个平台一个条目,不可遗漏
discussions.focus讨论焦点与对话中各平台讨论焦点文字一致
discussions.topics原始标题2-3条,有url时填写,无url填空字符串
prediction综合预测内容纯文字,不含🔥emoji
prediction_emoji综合预测标题前的emoji必须与对话输出中综合预测标题前的🔥emoji完全一致:🔥🔥🔥/🔥🔥/🔥/📉

1. 获取热榜数据

1.1 最新热榜(默认)

要求最新、当下等实时热榜时,自动查询当前时间前一个小时的数据:

python scripts/fetch_hotspot.py

实时查询规则

  • 自动计算当前时间的前一个小时作为查询范围
  • 例如:当前时间为 2026-04-16 08:30:00,则查询 2026-04-16 07:00:002026-04-16 08:00:00 的数据

1.2 历史热榜查询

支持查询昨天的热度峰值最高的热搜数据:

# 查询昨日热榜(假设今天是2026-04-16)
python scripts/fetch_hotspot.py --start-date "2026-04-15 00:00:00" --end-date "2026-04-16 00:00:00"

日期范围规则

  • 时间格式为 YYYY-MM-DD HH:MM:SS
  • 日期范围是 [start_date, end_date) 左闭右开区间
  • 例如:--start-date "2026-04-01 00:00:00" --end-date "2026-04-02 00:00:00" 查询的是4月1日当天的数据
  • 例如:--start-date "2026-04-09 00:00:00" --end-date "2026-04-16 00:00:00" 查询的是4月9日至4月15日共7天的数据

参数说明

  • --start-date:开始时间(包含),格式 YYYY-MM-DD HH:MM:SS,也可简写为 YYYY-MM-DD(自动补全为 00:00:00)
  • --end-date:结束时间(不包含),格式 YYYY-MM-DD HH:MM:SS,也可简写为 YYYY-MM-DD(自动补全为 00:00:00)
  • 最长查询范围:7天

1.3 智能体判断逻辑

根据用户意图自动选择查询方式(假设今天日期为T,当前时间为T HH:MM:SS):

今日热点查询

  • "今日热榜" / "今日热点" / "今天热榜" → 查询今日0:00到当前时间的整点
  • 脚本调用:python scripts/fetch_hotspot.py --start-date "T 00:00:00" --end-date "T {当前小时}:00:00"
  • 示例:当前时间 2026-04-16 08:30:00,则查询 --start-date "2026-04-16 00:00:00" --end-date "2026-04-16 08:00:00"

最新热点查询

  • "最新热榜" / "最新热点" / "热榜" / "热点榜" → 查询当前时间前一小时
  • 脚本调用:python scripts/fetch_hotspot.py--start-date "T {当前小时-1}:00:00" --end-date "T {当前小时}:00:00"`
  • 自动计算当前时间的前一个小时作为查询范围
  • 示例:当前时间 2026-04-16 08:30:00,则查询 2026-04-16 07:00:002026-04-16 08:00:00

历史热点查询

  • "昨日热榜" / "昨天热榜" / "昨日热点" → --start-date "T-1 00:00:00" --end-date "T 00:00:00"
  • "近7天热榜" / "一周热榜" → --start-date "T-7 00:00:00" --end-date "T 00:00:00"
  • "X月X日热榜" → --start-date "X月X日 00:00:00" --end-date "X月X日+1天 00:00:00"

对比查询场景: 当用户需要对比多天数据时,需分别查询多天的热榜,而非合并查询:

  • "对比昨天和今天的热榜" → 分别查询昨日热榜和今日热榜,输出两份数据进行对比
  • "对比4月1日和4月2日的热榜" → 分别查询4月1日热榜和4月2日热榜,输出两份数据进行对比

对比查询执行方式

# 对比昨天和今天的热榜(假设今天是2026-04-16)
python scripts/fetch_hotspot.py --start-date "2026-04-15 00:00:00" --end-date "2026-04-16 00:00:00"  # 昨日
python scripts/fetch_hotspot.py --start-date "2026-04-16 00:00:00" --end-date "2026-04-17 00:00:00"  # 今日实时

2. 输出处理流程

核心原则:报告内容直接在对话中输出,输出结束后再调用脚本生成HTML报告文件。

步骤一:获取数据

python scripts/fetch_hotspot.py --start-date "..." --end-date "..." > raw_data.json

步骤二:对话中输出报告并同步保存JSON

  • 智能体读取JSON数据,完成热点事件识别、指标计算、趋势预测
  • 直接在对话中输出完整报告,同时将分析结果同步保存为 structured_report.json(内部中间文件,不展示给用户)
  • discussions必须覆盖所有在榜平台platforms 列表中的每个平台都必须在 discussions 数组中有对应条目,不可遗漏
  • 输出格式参考 references/output-templates.md

步骤三:自动生成HTML报告

  • 直接读取已保存的 structured_report.json 生成HTML,不询问用户是否生成
python scripts/generate_html_report.py --input structured_report.json --output 热点榜报告.html
  • 自检:确认JSON数据与对话输出一致

输出注意事项

  1. 排序规则(最重要):TOP10表格必须按热度值(maxHotScore)降序排列,热度最高的排第1位。
    • 强制检查:输出表格前,逐一核对热度值是否满足:第1名 > 第2名 > 第3名 > ... > 第10名
    • 如果发现乱序,立即重新排序后再输出
    • 正确示例:| 1 | 事件A | 938万 | | | 2 | 事件B | 876万 | | | 3 | 事件C | 654万 |
    • 错误示例:| 1 | 事件A | 654万 | | | 2 | 事件B | 938万 | ← 热度值倒挂,必须修正
  2. 统计时间:使用脚本返回的 query_range.start_dateend_date,格式为"开始时间 至 结束时间"
  3. 热度换算maxHotScore // 10000(整数除法),结果拼接"万"。例如:9384468 → 938万。格式必须是"数字+万",禁止任何其他字符
  4. 持续时长显示:topOfTheDayTime 为 0 或 "0" 时显示"刚上热搜",否则显示"{N}h"(如 3h、14h)
  5. URL链接:标题有 url 时显示为超链接 [标题](url),无URL时仅显示文本
  6. 平台图标:使用emoji区分平台(微博🌐、抖音🎵、知乎📚、B站📺、快手🎬、头条📰、百度🔍)
  7. 跨平台讨论差异
    • 每个平台行首加全角空格缩进符(  )
    • 必须输出该事件全部在榜平台的讨论差异,不可遗漏(遗漏会导致平台数与"上榜平台"数量不一致)
    • 仅展示该事件实际在榜的平台,未上榜平台不输出
    • 根据该事件在该平台的所有话题标题综合总结讨论焦点,不少于10个字
    • 必须展示2-3个具体话题标题(如该平台只有1条数据则展示1条),有URL则显示为超链接格式「{标题}」,无URL则显示为纯文本「{标题}」
  8. 综合预测
    • 根据话题类型(突发事件/娱乐八卦/社会民生/行业动态)、热度值、上榜时长、平台覆盖表现综合分析
    • 预测内容不少于30字
    • 综合预测标题前emoji必须按热度值选择(对话输出和HTML报告统一规则):
      • 🔥🔥🔥 热度 ≥ 1000万(爆款)
      • 🔥🔥 热度 500-999万(高热)
      • 🔥 热度 100-499万(中等)
      • 📉 热度 < 100万(低热)
  9. 不支持热词查询:该技能不支持查询特定热词,仅支持全网热点榜查询

使用示例

  • 示例1: 查询今日热点
    • 场景/输入: 用户输入"热点榜"或"今日热点"
    • 执行步骤:
      1. 调用 python scripts/fetch_hotspot.py 获取数据
      2. 智能体分析数据,识别热点事件,保存 structured_report.json
      3. 调用 python scripts/generate_html_report.py --input structured_report.json 生成HTML
      4. 对话中输出:标题 > 统计时间 > HTML报告 > 订阅推送服务询问
    • 预期产出: 用户看到简要信息、HTML文件下载链接、订阅推送服务提示
    • 关键要点: 输出顺序为标题→统计时间→HTML报告→订阅推送服务
  • 示例2: 导出HTML报告
    • 场景/输入: 用户输入"导出报告"或"生成HTML报告"
    • 预期产出: 生成美观的HTML报告文件,告知用户文件路径
    • 关键要点: 调用 generate_html_report.py 脚本生成HTML

资源索引

注意事项

  • 【重要】排序规则(必须严格遵守)
    • TOP10必须按热度值(maxHotScore)降序排列,热度最高的排第1位
    • 保存JSON前必须检查:确认热度值从第1名到第10名依次递减,严禁乱序
    • 示例:第1名938万 > 第2名876万 > 第3名654万 > ... > 第10名123万
  • 【重要】热点事件识别必须执行
    • 必须从所有标题中识别和归纳热点事件,不能直接使用原标题
    • 必须合并描述同一事件的不同标题
    • 必须为每个事件提炼简洁的热词(5-15个字)
  • 执行流程
    1. 获取数据 → 2. 智能体分析并保存JSON → 3. 对话输出简要信息 → 4. 生成HTML报告
    • 对话中仅输出:标题、统计时间、订阅推送服务提示
    • 详细内容(TOP10表格、热点快览分析)在HTML报告中展示
  • JSON数据完整性
    • discussions必须覆盖所有在榜平台platforms 列表中的每个平台都必须在 discussions 数组中有对应条目
    • discussions 中不得包含 platforms 列表以外的平台
    • 热度值格式:hot_score必须为"数字+万"格式(如"938万"),禁止包含其他字符
    • prediction 字段为纯文字内容,prediction_emoji 字段存🔥emoji
  • 禁止行为
    • 在对话中输出详细的TOP10表格和热点快览分析(这些内容只在HTML报告中展示)
    • 直接使用原标题作为热点名称(必须归纳事件热词)
    • 不合并相似标题(必须识别同一事件的不同表述)
  • 仅在需要时读取参考文档,保持上下文简洁
  • 数据获取通过脚本调用真实API,确保数据实时性