Install
openclaw skills install douyin-data-method抖音数据查询方法。核心能力:通过MaxHub API系统化查询抖音全域数据(视频、用户、搜索、热榜、星图、指数、直播)。覆盖从意图解析、端点匹配、参数构造、API调用、降级切换到数据格式化输出的全流程。7大查询域、每种查询的参数清单与1个完整实战范本。触发词:抖音数据、抖音查询、抖音分析、douyin API、抖音热榜、抖音搜索、达人分析、星图数据。
openclaw skills install douyin-data-method抖音数据查询的核心是从业务问题到结构化数据的映射。每个业务问题("这个达人值不值得合作?""当前什么话题火?""竞品在做什么内容?")都有对应的数据需求,而每个数据需求都能映射到具体的API端点。
查询的难点不在于"怎么调API",而在于"调哪个端点、传什么参数、失败了怎么办"。本方法将7大查询域的端点映射、参数规范、降级策略整理为结构化知识,让查询从"翻文档试错"变为"按图索骥"。
适用范围广泛。 达人筛选、内容选题、竞品监测、舆情分析、品牌评估——任何需要抖音数据支撑的业务场景都可以用本方法。
从用户需求中提取查询意图,匹配到具体的API端点:
| 查询意图 | 查询域 | 核心端点 |
|---|---|---|
| "热搜""热点""什么火" | 热榜 | fetch_hot_search_result |
| "搜""找""查" | 搜索 | fetch_general_search_v1 |
| "视频详情""评论" | 视频 | fetch_one_video_v2 |
| "用户""达人""粉丝" | 用户 | handler_user_profile_v4 |
| "KOL""报价""星图" | 星图 | search_kol_v2 |
| "热度趋势""品牌""关键词" | 指数 | fetch_multi_keyword_hot_trend |
| "直播""直播间" | 直播 | douyin_live_room |
端点选择规则:新版本优先(v4>v3>v2),但新版本可能不稳定——调用失败时按降级映射表切换备选端点。
关键约束:
主端点失败时按降级映射表切换备选端点,最多降级3次:
| 错误码 | 是否降级 | 处理方式 |
|---|---|---|
| 400 | ❌ | 参数错误,修正参数后重试 |
| 401 | ❌ | API Key无效,检查配置 |
| 403 | ❌ | 权限不足 |
| 404 | ✅ | 切换到备选端点 |
| 500 | ✅ | 切换到备选端点 |
| 429 | ❌ | 延迟5秒后重试1次 |
已知降级映射:
| 失败端点 | 降级端点 | 路径 |
|---|---|---|
| fetch_one_video_v3 | fetch_one_video_v2 | GET /api/v1/douyin/app/v3/fetch_one_video_v2 |
| fetch_one_video_v2 | fetch_one_video | GET /api/v1/douyin/app/v3/fetch_one_video |
| fetch_general_search_v1 | fetch_general_search_v2 | POST /api/v1/douyin/search/fetch_general_search_v2 |
| handler_user_profile_v4 | handler_user_profile_v3 | GET /api/v1/douyin/app/v3/handler_user_profile_v3 |
查询完成后逐项验证,五项全部通过才算完成:
| # | 验证项 | 说明 |
|---|---|---|
| 1 | ⬜ 端点正确 | 调用的端点路径与文档一致,非自行拼接 |
| 2 | ⬜ 参数完整 | 必填参数全部提供且格式正确 |
| 3 | ⬜ 数据有效 | 返回数据非空且字段完整 |
| 4 | ⬜ 降级执行 | 主端点失败时是否正确切换到备选端点 |
| 5 | ⬜ 格式规范 | 输出数据按业务需求格式化 |
对应任务: Q0-01 ~ Q0-07
适用场景: 任何需要抖音数据支撑的业务场景
查询范本:
## 抖音数据查询记录
### Step 1:意图识别(Q0-0X)
**业务问题**:________
**查询域**:________(热榜/搜索/视频/用户/星图/指数/直播)
**复杂度**:⬜单步查询 / ⬜链式查询(___步)
### Step 2:端点与参数
**主端点**:________
**完整路径**:________
**方法**:________(GET/POST)
| 参数名 | 值 | 类型 |
|--------|-----|------|
| ________ | ________ | ________ |
**备选端点**:________
### Step 3:调用与结果
**调用结果**:⬜成功 / ⬜失败(错误码:___)
**降级执行**:⬜未触发 / ⬜已切换
| 字段 | 值 |
|------|-----|
| ________ | ________ |
### Step 4:格式化输出
**输出模式**:⬜Browse / ⬜Analyze / ⬜Compare
[格式化数据输出]
范本要点:
________ 为待用户提供的内容,不可AI编造| 用户意图 | 端点 | 方法 | 路径 | 必填参数 |
|---|---|---|---|---|
| 热搜榜、抖音热榜 | fetch_hot_search_result | GET | /api/v1/douyin/web/fetch_hot_search_result | 无 |
| 热点总榜 | fetch_hot_total_list | GET | /api/v1/douyin/billboard/fetch_hot_total_list | page, page_size, type |
| 上升热点 | fetch_hot_rise_list | GET | /api/v1/douyin/billboard/fetch_hot_rise_list | page, page_size, order |
| 同城热点 | fetch_hot_city_list | GET | /api/v1/douyin/billboard/fetch_hot_city_list | page, page_size, order, city_code |
| 挑战榜 | fetch_hot_challenge_list | GET | /api/v1/douyin/billboard/fetch_hot_challenge_list | page, page_size |
| 用户意图 | 端点 | 方法 | 路径 | 必填参数 |
|---|---|---|---|---|
| 综合搜索 | fetch_general_search_v1 | POST | /api/v1/douyin/search/fetch_general_search_v1 | keyword |
| 搜视频 | fetch_video_search_v1 | POST | /api/v1/douyin/search/fetch_video_search_v1 | keyword |
| 搜用户 | fetch_user_search_v2 | POST | /api/v1/douyin/user/fetch_user_search_v2 | keyword |
| 搜话题 | fetch_challenge_search_v1 | POST | /api/v1/douyin/search/fetch_challenge_search_v1 | keyword |
| 搜索建议 | fetch_search_suggest | GET | /api/v1/douyin/app/v3/fetch_search_suggest | keyword |
搜索类 POST 请求通用 body:
{"keyword":"xxx","cursor":0,"sort_type":"0","publish_time":"0","filter_duration":"0","content_type":"0","search_id":""}
| 用户意图 | 端点 | 方法 | 路径 | 必填参数 |
|---|---|---|---|---|
| 视频详情(推荐) | fetch_one_video_v2 | GET | /api/v1/douyin/app/v3/fetch_one_video_v2 | aweme_id |
| 通过分享链接查视频 | fetch_one_video_by_share_url | GET | /api/v1/douyin/app/v3/fetch_one_video_by_share_url | share_url |
| 视频评论 | fetch_video_comments | GET | /api/v1/douyin/web/fetch_video_comments | aweme_id |
| 用户作品列表 | fetch_user_post_videos | GET | /api/v1/douyin/app/v3/fetch_user_post_videos | sec_user_id |
| 用户意图 | 端点 | 方法 | 路径 | 必填参数 |
|---|---|---|---|---|
| 用户主页(推荐) | handler_user_profile_v4 | GET | /api/v1/douyin/app/v3/handler_user_profile_v4 | sec_user_id |
| 通过抖音号查用户 | fetch_user_profile_by_short_id | GET | /api/v1/douyin/app/v3/fetch_user_profile_by_short_id | short_id |
| 通过 uid 查用户 | fetch_user_profile_by_uid | GET | /api/v1/douyin/app/v3/fetch_user_profile_by_uid | uid |
| 粉丝列表 | fetch_user_fans_list | GET | /api/v1/douyin/app/v3/fetch_user_fans_list | sec_user_id |
| 批量查用户 | fetch_batch_user_profile_v1 | GET | /api/v1/douyin/app/v3/fetch_batch_user_profile_v1 | sec_user_ids |
sec_user_id 获取方法: 可从其他接口返回的
author.sec_uid字段获取,或用encrypt_uid_to_sec_user_id转换。
| 用户意图 | 端点 | 方法 | 路径 | 必填参数 |
|---|---|---|---|---|
| 星图搜 KOL | search_kol_v2 | GET | /api/v1/douyin/xingtu/search_kol_v2 | keyword |
| KOL 基础信息 | kol_base_info_v1 | GET | /api/v1/douyin/xingtu/kol_base_info_v1 | kolId |
| KOL 数据概览 | kol_data_overview_v1 | GET | /api/v1/douyin/xingtu/kol_data_overview_v1 | kolId |
| KOL 粉丝画像 | kol_fans_portrait_v1 | GET | /api/v1/douyin/xingtu/kol_fans_portrait_v1 | kolId |
| KOL 报价 | kol_service_price_v1 | GET | /api/v1/douyin/xingtu/kol_service_price_v1 | kolId |
kolId 获取方法: 通过
get_xingtu_kolid_by_uid或get_xingtu_kolid_by_sec_user_id转换得到。
| 用户意图 | 端点 | 方法 | 路径 | 必填参数 |
|---|---|---|---|---|
| 关键词热度趋势 | fetch_multi_keyword_hot_trend | POST | /api/v1/douyin/index/fetch_multi_keyword_hot_trend | keyword_list, start_date, end_date |
| 关键词关联词 | fetch_relation_word | POST | /api/v1/douyin/index/fetch_relation_word | keyword, start_date, end_date |
| 品牌搜索建议 | fetch_brand_suggest | POST | /api/v1/douyin/index/fetch_brand_suggest | keyword |
| 品牌趋势线 | fetch_brand_lines | POST | /api/v1/douyin/index/fetch_brand_lines | brand_name, start_date, end_date |
| 热门关键词 | fetch_hot_words | GET | /api/v1/douyin/index/fetch_hot_words | 无 |
| 用户意图 | 端点 | 方法 | 路径 | 必填参数 |
|---|---|---|---|---|
| 直播间信息 | douyin_live_room | GET | /api/v1/douyin/app/v3/douyin_live_room | live_room_url |
| 链接转直播间号 | get_webcast_id | GET | /api/v1/douyin/web/get_webcast_id | url |
| 直播间号转 room_id | webcast_id_2_room_id | GET | /api/v1/douyin/web/webcast_id_2_room_id | webcast_id |
Base URL: https://www.aconfig.cn
maxhub_auth_header="Authorization: Bearer ${MAXHUB_API_KEY}"
# GET
curl -s "https://www.aconfig.cn/api/v1/douyin/{endpoint}?{params}" -H "$maxhub_auth_header"
# POST
curl -s -X POST "https://www.aconfig.cn/api/v1/douyin/{endpoint}" -H "$maxhub_auth_header" -H "Content-Type: application/json" -d '{...}'
| 用户语言 | 数字格式 | 示例 |
|---|---|---|
| 中文 | 万/亿 | 1.2亿 |
| English | K/M/B | 120M |
[ -n "${MAXHUB_API_KEY:-}" ] && echo "ok" || echo "missing"
根据用户意图,从端点速查表中找到匹配的端点,直接使用表中标注的完整路径发起请求。禁止自行拼接或猜测路径。
| Mode | Signal | Behavior |
|---|---|---|
| Browse | "搜", "找", "看看", "search", "find" | Single query, return results + summary |
| Analyze | "分析", "趋势", "why", "analyze" | Query + structured analysis |
| Compare | "对比", "vs", "区别", "compare" | Multiple queries, side-by-side comparison |
Pattern A: "分析抖音达人"
fetch_user_search_v2 → 获取 sec_user_idhandler_user_profile_v4 → 基本信息fetch_user_post_videos → 视频列表get_xingtu_kolid_by_sec_user_id → kol_base_info_v1Pattern B: "抖音热榜分析"
fetch_hot_search_resultfetch_hot_total_listfetch_hot_rise_listExecution rules:
| Error | Response |
|---|---|
| 400 Bad Request | "参数错误 / Bad request parameters" |
| 401 Unauthorized | "API Key 无效 / API Key is invalid" |
| 403 Forbidden | "权限不足 / Insufficient permissions" |
| 404 Not Found | "接口地址错误或已下线,请检查调用路径是否与文档一致" |
| 429 Rate Limit | "请求过快 / Too many requests" |
| 500 Server Error | "服务器不可用 / Server unavailable" |
| Empty results | "未找到数据,建议放宽条件" |
| 错误码 | 重试策略 | 原因 |
|---|---|---|
| 400 | 不重试 | 参数错误,需修正参数后重新调用 |
| 401 | 不重试 | API Key 无效,需检查配置 |
| 403 | 不重试 | 权限不足,需更换 API Key 或接口 |
| 404 | 触发降级 | 接口可能已下线,按降级策略切换替代版本 |
| 429 | 延迟 5 秒后重试,最多 1 次 | 请求过快,需降速 |
| 500 | 先重试 1 次,仍失败则触发降级 | 服务器故障,重试无效则切换替代版本 |
| 410 | 触发降级 | 接口已废弃,按降级策略切换替代版本 |
**Full path:** 标注的路径完全一致404/500/410 时,按此表切换到替代端点:
| 失败端点 | 降级端点 | 降级路径 |
|---|---|---|
| fetch_one_video_v3 | fetch_one_video_v2 | GET /api/v1/douyin/app/v3/fetch_one_video_v2 |
| fetch_one_video_v2 | fetch_one_video | GET /api/v1/douyin/app/v3/fetch_one_video |
| fetch_general_search_v1 | fetch_general_search_v2 | POST /api/v1/douyin/search/fetch_general_search_v2 |
| handler_user_profile_v4 | handler_user_profile_v3 | GET /api/v1/douyin/app/v3/handler_user_profile_v3 |
废弃端点(文档标注 ⛔)不在降级范围内——它们已永久不可用,应使用替代端点。
https://www.aconfig.cn。您的凭据将传输至该第三方服务。open_*_app_to_*——生成打开平台应用的深度链接,不会直接发送消息或执行操作。generate_*、encrypt_*、decrypt_*——用于请求构造的 API 兼容性工具。| 禁止行为 | 正确做法 |
|---|---|
| ❌ 自行拼接路径 | ✅ 使用端点速查表中的路径 |
| ❌ 猜测参数名 | ✅ 使用文档中的参数名 |
| ❌ 假设 v1/v2/v3 参数兼容 | ✅ 降级时重新读取对应版本的参数文档 |
| ❌ 看到 404 后盲目重试 | ✅ 检查路径是否与文档一致,不一致则修正;一致则按降级映射切换 |
记忆口诀:表里有的直接用,表里没有查 reference,reference 只看 **Full path:**
[text](url) format.