---
name: liangdabiao/tikhub-api-helper
source: https://app.decimal.ai/s/liangdabiao-tikhub-api-helper@1/SKILL.md
source_sha256: 07ab3c34df4c
---

# TikHub API Helper

通过 TikHub API 获取各社交媒体平台数据的 Skill。

## 核心工作流

1. 用 `scripts/api_searcher.py` 搜索相关 API
2. 用 `scripts/api_searcher.py detail:操作ID` 确认参数（可选）
3. 用 `scripts/api_client.py` 调用 API
4. 整理数据返回给用户

## 各平台 API

### 小红书（Xiaohongshu）— App API

**搜索笔记**（查找用户也用这个，从笔记中提取用户信息）:
```
GET /api/v1/xiaohongshu/app/search_notes keyword=关键词 page=1
```

**搜索结果中的用户字段**（⚠️ 容易搞错）:
- `userid` = 用户真实ID（全小写，用于后续 API 调用）
- `red_id` = 红书号（不能用于 API 调用）
- `nickname` = 昵称

**获取用户信息**:
```
GET /api/v1/xiaohongshu/app/get_user_info user_id=<userid字段值>
```

**获取用户笔记**（cursor 翻页，不是 page）:
```
# 第一页（不传 cursor）
GET /api/v1/xiaohongshu/app/get_user_notes user_id=<userid>

# 翻页（传上一页最后一条笔记的 cursor 字段）
GET /api/v1/xiaohongshu/app/get_user_notes user_id=<userid> cursor=<上一页最后笔记的cursor值>
```

笔记数据在 `data.notes` 数组中，每条字段：
- `id` = 笔记ID
- `title` / `display_title` = 标题
- `likes` = 点赞数
- `comments_count` = 评论数
- `type` = 类型（normal=图文，video=视频）
- `cursor` = 翻页游标

**笔记详情 / 评论**:
```
GET /api/v1/xiaohongshu/app/get_note_info note_id=<id字段值>
GET /api/v1/xiaohongshu/app/get_note_comments note_id=<id字段值>
```

### 抖音（Douyin）— Search API + App V3

**搜索**（⚠️ POST 方法，参数用 JSON body）:
```
# 综合搜索
POST /api/v1/douyin/search/fetch_general_search_v1 '{"keyword":"关键词","count":10,"offset":0}'

# 视频搜索
POST /api/v1/douyin/search/fetch_video_search_v1 '{"keyword":"关键词","count":10,"offset":0}'

# 用户搜索
POST /api/v1/douyin/search/fetch_user_search '{"keyword":"关键词","count":10,"offset":0}'

# 多类型搜索
POST /api/v1/douyin/search/fetch_multi_search '{"keyword":"关键词","count":10}'
```

搜索结果字段：视频在 `data.data[].aweme_info` 中，包含：
- `desc` = 视频描述
- `author.nickname` = 作者昵称
- `author.follower_count` = 粉丝数
- `statistics.digg_count` = 点赞数
- `statistics.comment_count` = 评论数

**热搜**:
```
GET /api/v1/douyin/web/fetch_hot_search_result
GET /api/v1/douyin/app/v3/fetch_hot_search_list
```

**用户**:
```
GET /api/v1/douyin/app/v3/fetch_user_profile "sec_user_id=用户ID"
GET /api/v1/douyin/app/v3/fetch_user_post_videos "sec_user_id=用户ID" "max_cursor=0"
```

### TikTok

```
# 热门内容
GET /api/v1/tiktok/web/fetch_trending_post
GET /api/v1/tiktok/web/fetch_trending_searchwords

# 探索
GET /api/v1/tiktok/web/fetch_explore_post

# 用户
GET /api/v1/tiktok/web/fetch_user_profile "sec_user_id=用户ID"
GET /api/v1/tiktok/web/fetch_user_post "sec_user_id=用户ID"
```

### B站（Bilibili）

```
# 热搜
GET /api/v1/bilibili/web/fetch_hot_search "limit=10"

# 搜索视频（⚠️ order/page/page_size 为必填参数）
GET /api/v1/bilibili/web/fetch_general_search "keyword=关键词" "order=totalrank" "page=1" "page_size=10"

# 视频详情
GET /api/v1/bilibili/web/fetch_one_video "bvid=视频BV号"
```

### 微博（Weibo）

```
# 热搜
GET /api/v1/weibo/web_v2/fetch_hot_search

# 用户信息（⚠️ 参数名是 uid，不是 user_id）
GET /api/v1/weibo/web_v2/fetch_user_basic_info "uid=用户UID"

# 用户微博
GET /api/v1/weibo/web_v2/fetch_user_posts "uid=用户UID" "page=1"

# 微博详情（⚠️ 参数名是 id）
GET /api/v1/weibo/web_v2/fetch_post_detail "id=微博ID"
```

## KOL/博主深度分析工作流

当用户要求分析某个博主/KOL 时（如"小红书博主Yybricks热门帖子20"）：

1. **搜索用户** — 用 search_notes 搜索用户名关键词，从笔记中找到目标用户，提取 `userid` 字段
2. **获取用户详情** — 用 get_user_info 获取粉丝数等信息
3. **获取作品列表** — 用 get_user_notes cursor 翻页获取全部作品
4. **排序筛选** — 按 `likes` 字段排序，选出 Top N
5. **整理输出** — 列出每条笔记的标题、点赞数、评论数、类型

### 关键：不要半途而废！
- 用户要求 20 篇，就要获取到 20 篇
- 一页不够就继续 cursor 翻页
- 需要获取比 N 更多的笔记才能排序出真正的 Top N

## 跨平台调研工作流

1. 先调 2-3 个平台的热搜/搜索 API
2. 汇总对比，用表格呈现
3. 每个平台只调 1-2 次 API，不要反复搜索

## API 搜索技巧

```
api_searcher.py "小红书搜索"          # 中文搜索
api_searcher.py "抖音热搜"            # 中文搜索
api_searcher.py "xiaohongshu search"  # 英文搜索
api_searcher.py "tag:Xiaohongshu-App-API"  # 按标签列
api_searcher.py "detail:操作ID"       # 查看 API 参数详情
api_searcher.py "tags"                # 列出标签
api_searcher.py "popular"             # 常用 API
```

## 调用格式

```
# GET 请求（参数用 key=value 格式）
python api_client.py GET /api/v1/平台/路径 "参数名=参数值" "参数名2=参数值2"

# POST 请求（body 用 JSON 格式）
python api_client.py POST /api/v1/平台/路径 '{"key":"value"}'
```

## 认证

API Token 通过环境变量 `TIKHUB_TOKEN` 配置，api_client.py 自动读取。

## 错误处理

- API 返回 "deprecated" / "Not Found" → 用 api_searcher.py 搜索替代接口
- 参数错误 → 用 `api_searcher.py detail:操作ID` 查看参数定义
- get_user_notes 返回空 → 检查 user_id 是否用的是搜索结果中的 `userid` 字段