使用Skill 查询抖音热榜
原理简介
Douyin Hotlist
通过 scripts/ 下的脚本抓取抖音热榜落地页(https://so-landing.douyin.com/landings/hotlist )背后的 API,输出 Markdown 表格或 JSON。
提供两个等价实现,任选其一:
scripts/fetch_hotlist.sh --- 纯 shell(curl + jq),优先使用;需要系统装有 jq(macOS: brew install jq)。
scripts/fetch_hotlist.py --- 纯 Python 标准库,作为 jq 不可用时的备选。
两者参数和输出完全一致。
结果呈现流程(必须遵守)
查到榜单后,严格按两步呈现,顺序不可调换:
先展示榜单:以 Markdown 表格原样输出榜单内容(含标题行的更新时间)。条数取用户要求的数量;用户未指定时默认前 20 条。此步只展示数据,不做评论。
再做数据分析:榜单表格之后,另起一节给出分析,至少覆盖以下角度中的相关项:
主题归纳:上榜内容属于哪些主题(如娱乐演出、社会民生、文旅消费、体育赛事等),各占多少;
头部集中度:前几名是否被同一事件/同一人物霸榜;
值得关注的条目:破圈话题、实用信息(限行、预约、攻略类)、异常数据(热度为 0 或热度与排名明显不符的条目);
时效背景:结合榜单更新时间和条目事件时间,说明热度与当前时段/节日/赛事的关系。
用户明确表示"只要榜单/不用分析"时,跳过第 2 步。
用法
./scripts/fetch_hotlist.sh --city \<城市代码\> --limit N --format md\|json
或(无 jq 时)
python3 scripts/fetch_hotlist.py --city \<城市代码\> --limit N --format md\|json
取值:
board 值 榜单 board_type / board_sub_type
hot(默认) 热点榜 0 / ""
seeding 种草榜 2 / "seeding"
ent 娱乐榜 2 / "2"
social 社会榜 2 / "4"
challenge 挑战榜 2 / "hotspot_challenge"
local 本地榜(需 --city) 1 / <城市代码>
tabs 列出当前线上所有榜单 tab ---
示例:
热点榜前 10,Markdown 表格
./scripts/fetch_hotlist.sh hot --limit 10
上海本地榜
./scripts/fetch_hotlist.sh local --city 310000 --limit 20
种草榜,JSON 输出(含热度原始值、时间戳、group_id 等)
./scripts/fetch_hotlist.sh seeding --format json
查看当前可用榜单
./scripts/fetch_hotlist.sh tabs
本地榜城市代码
--city 接受 6 位行政区划代码(GB/T 2260),如 110000 北京、310000 上海、440100 广州、330100 杭州。
不传 --city 时 API 按请求 IP 归属地返回默认城市,响应中的 city_code 字段即为该城市代码。
常用代码:北京 110000、天津 120000、上海 310000、重庆 500000、广州 440100、深圳 440300、杭州 330100、成都 510100、武汉 420100、西安 610100。
输出说明
Markdown 默认输出全部 50 条(--limit 控制),列为:排名、内容、热度(万)、相关视频数;标题行含榜单更新时间(active_time,北京时间)。
JSON 每条包含:word、hot_value(原始热度)、hot_value_wan、label、video_count、view_count、event_time(Unix 时间戳)、group_id(可用于拼接话题/视频链接)。其中 event_time_str(格式化时间字符串)仅 Python 版提供。
条目按榜单名次排序,Markdown 的排名列即名次。
注意事项
API 为公开接口但无官方 SLA,偶发失败时直接重试;返回 status_code != 0 时脚本会把错误详情输出到 stderr 并以非零码退出。
不要高频并发请求该接口。
若某榜单返回为空或字段变化,先运行 tabs 确认线上榜单结构,再检查 board_type/board_sub_type 映射表(Python 版 BOARDS 常量 / Shell 版 case 分支)。
安装方式
在本地Agent 中对话,发送提示词:请根据 https://skillhub.cn/install/skillhub.md,安装 @user_de7b6310/douyin-hotlist-001。