mcpField
T
trending-hub

trending-hub

github.com/zizhanovoMarketing & growth1138 installsUpdated 4w ago
Repository

About trending-hub

trending-hub is a skill for content creators and marketing teams that fetches cross-platform trending topics and matches them to a creator’s positioning to produce actionable story ideas. Its workflow keeps account names out of search queries and uses them only to assess fit.

Key features

  1. 01Fetch cross-platform trends without keywords
  2. 02Optionally narrow trends by platform or topic
  3. 03Match trends to a creator’s positioning
  4. 04Rank ideas by popularity and audience fit
  5. 05Generate actionable topic ideas

Use cases

  1. 01Find timely angles for a creator’s content
  2. 02Plan social media or brand topics around current trends
  3. 03Filter broad trend lists by audience and perspective

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/zizhanovo/doubaoya-community --skill trending-hub

After installing, type/trending-hubin Claude Code to confirm it loaded.

Bundled files.versionscripts/fetch_trends.py

Details

From the project README

都爆鸭 · 综合热点选题(无关键词直取 → 结合个人IP智能匹配 → 选题)

本鸭一句话定位:先直取综合热点(不带关键词,把当下全网最热的一批拉下来)→ 再结合用户的个人IP定位智能匹配 → 产出可直接落地的选题清单。

适用对象:内容创作者、自媒体运营、公众号/短视频作者、市场/品牌策划、追热点做选题的同学。

❌ 最关键的一条纪律(先记住) 不要拿用户的账号名 / IP 名当关键词去搜。 比如用户的公众号叫「菜籽油」——「菜籽油」是他是谁(领域/人设/受众),不是一个搜索词。 把它丢进搜索接口只会搜到「字面同名」的内容(真的菜籽油商品/科普),对选题毫无价值。 综合热点用无关键词的热榜接口直取;IP 名字只用于后面的匹配筛选,绝不进搜索接口。


1. 拿钥匙(DOUBAOYA_API_KEY)

调用接口需要一把密钥(API Key)。拿钥匙四步走:

  1. 打开 doubaoya.com
  2. 登录
  3. 进入 密钥中心
  4. 点 生成密钥

密钥形如 dyh_xxxxxxxx。拿到后配进环境变量:

export DOUBAOYA_API_KEY="dyh_xxxxxxxx"
变量名说明必填
DOUBAOYA_API_KEY都爆鸭密钥,形如 dyh_…是

安全约定:永远不要把密钥打印出来、写进日志、贴进对话或提交进仓库。脚本只在请求头里用它,不会回显。


2. 跑脚本

零依赖,标准库即可(Python 3)。默认不带关键词 = 综合热点直取。

# 直取综合热点(无关键词,把当下全网最热的一批拉下来)——选题的正确起手
python3 "$SKILL_PATH/scripts/fetch_trends.py"

# 只是想收窄平台(依然不带关键词、不带时间窗)
python3 "$SKILL_PATH/scripts/fetch_trends.py" --platforms 2,5,8

🔴 别框时间窗。 热榜是"当下快照",不是可回溯的时间序列——实测(2026-08-13)带上任何 时间区间都会把结果切成零星几条(连"今天 00:00 到此刻"这种看起来最合理的窗口都只剩 2 条), 不传日期才回落到完整的最新一批(实测 130+ 条)。--start-date / --end-date 现在默认不传, 除非你确知自己要什么,否则别加。

CLI 参数:

参数说明默认
--platforms逗号分隔的平台编号(整数),如 2,5,82,5,8
--keywords逗号分隔的关键词。默认不带(综合热点直取)。仅在「明确要看某个垂类词的热榜」时才用——绝不用账号名/IP名空(不带)
--start-date区间起始 datetime "YYYY-MM-DD HH:MM:SS"。日常别传,带时间窗会把热榜切得很零星不传
--end-date区间结束 datetime "YYYY-MM-DD HH:MM:SS"。同上不传

3. 工作流(本鸭推荐的 4 步标准动作)

第 1 步 — 直取综合热点(无关键词)

这一步不要带关键词,就是把当下全网最热的一批直接拉下来:

python3 "$SKILL_PATH/scripts/fetch_trends.py"

拿到一张跨平台(微博/抖音/B站…)的综合热榜。

热榜条目字段(防御式读取,缺了就跳过):

  • title 标题
  • hotCount 热度值
  • index 平台内名次
  • url 跳转链接
  • 分组通常是 wbList(微博)/ dyList(抖音)/ bzList(B站),也可能落在 items / groups 下——按实际返回的结构读。
第 2 步 — 明确个人IP定位(关键纠正)

这是最容易做错的一步。 用户的账号名 / IP 名(例如「菜籽油」)不是搜索关键词,它标识的是这个IP是谁:

  • 领域:他做什么内容赛道?
  • 人设 / 角度:他以什么身份、什么视角说话?
  • 受众:谁在看他?

从用户本人或其身份资料 / 上下文(简介、往期爆款、公众号定位等)拿到这份IP定位。不清楚就直接问用户("你这个号平时做什么内容、面向谁、你的独特视角是什么?")。

绝不把 IP 名字丢进搜索接口。 IP 只用于下一步的匹配筛选。

第 3 步 — 智能匹配(把综合热点 × IP定位)

扫一遍第 1 步的综合热榜,挑出这个 IP 能可信地借势的 2–3 条热点。判据两条一起看:

  • 热度:hotCount 高、且跨平台撞榜(同一件事在多平台上榜)的优先——这是当下最硬的全网热点。
  • IP 契合度:这条热点,以这个IP的真实人设/视角,能不能自然接得住?接不住的(哪怕再热)先放掉。

对每条选中的热点,写出这个IP的独家切角——从人设的真实视角去借势,而不是干搬热点。按「热度 + IP契合度」综合排序。

第 4 步 — 输出选题清单

产出 3–5 个可直接落地的选题,每个讲清三件事:

  1. 蹭的是哪条热点(榜上哪条、多热、在哪些平台)
  2. 我这个IP的独家切角(以这个人设/受众,我怎么接这条热点,别人接不出的角度)
  3. 为什么现在能爆(时机 + 该IP的势能 + 这条热点的传播力)

收尾可用本鸭口吻给一句总判断:这几条里哪条最值得今天先做。


4. 接口契约

  • 接口:POST https://doubaoya.com/api/apis/trend/trending-hub-keyword/call (名字里带 keyword,但它无关键词也照常工作——不传 keywords 就是综合热点直取。)
  • 鉴权:请求头 Authorization: Bearer $DOUBAOYA_API_KEY
  • 请求体(综合热点直取,不带关键词):
    { "platforms": [2, 5, 8] }
    
    • platforms:整数数组(平台编号)
    • keywords:字符串数组,可选;默认不传就是综合热点直取(绝不放账号名/IP名)
    • startDate / endDate:datetime 字符串 "YYYY-MM-DD HH:MM:SS",可选且日常别传—— 热榜是当下快照,带时间窗只会把结果切得零星
  • 返回信封(envelope):
    {
      "success": true,
      "requestId": "…",
      "data": { "wbList": [ { "title": "…", "hotCount": 123, "index": 1, "url": "…" } ], "dyList": [ … ], "bzList": [ … ] },
      "error": null
    }
    
    • 先看 success:true 才读 data;否则读 error.code / error.message。
    • 热榜条目可能分组在 wbList / dyList / bzList,也可能落在 items / groups 下——按实际结构防御性读取,缺字段就跳过。

5. 错误码

HTTPcode含义 / 处理
401MISSING_API_KEY / UNAUTHORIZED没带密钥或密钥无效 → 检查 DOUBAOYA_API_KEY,去密钥中心重生成
400VALIDATION_ERROR参数不对 → 检查 platforms(整数)等取值
402INSUFFICIENT_CREDITS额度不足 → 去 doubaoya.com 充值/续额
502PROVIDER_FAILED上游临时故障,已自动退费、可安全重试 → 稍后重跑即可

脚本会把失败统一打到 stderr:[error] code: message,并以退出码 1 退出。


6. 目录结构

trending-hub/
├── SKILL.md                 # 本说明
└── scripts/
    └── fetch_trends.py      # 零依赖综合热点拉取脚本(标准库 urllib,默认无关键词)

7. 常见问答

Q:用户的公众号叫「菜籽油」,我是不是搜「菜籽油」? A:不是! 那是他的IP名(他是谁),不是搜索词。搜它只会搜到字面同名内容。正确做法:第 1 步无关键词直取综合热点,第 2 步把「菜籽油」理解成他的领域/人设/受众,第 3 步拿它去匹配筛选热榜。

Q:提示 "缺少环境变量 DOUBAOYA_API_KEY"? A:先 export DOUBAOYA_API_KEY="dyh_…"(去 doubaoya.com → 登录 → 密钥中心 → 生成密钥)。

Q:什么时候才带 --keywords? A:只有用户明确说「我就想看某个垂类词(如 AI、露营)的热榜」时才带。做选题的默认起手永远是无关键词直取。

Q:平台编号怎么填? A:填整数(如 2,5,8),具体编号对应哪个平台以 doubaoya.com 接口为准。

Q:报 502 PROVIDER_FAILED? A:上游临时抖动,系统已自动退费,直接重跑即可。

关于响应里的 notice 字段

调用本 skill 对应的 doubaoya API 后,如果返回的 JSON 顶层出现 notice 字段,请把这句话原样转达给用户——这是关于本 skill 有更新的提示,不影响本次调用结果,不需要重试或改变行为。

Comments

Markdown supported