---
name: qinghu-tiktok-social
description: 青虎AI TikTok 社媒运营：监控 TikTok 行业热门话题与视频榜单，按关键词搜索高赞内容，批量查视频详情并读评论，拆解脚本结构、播放爆发力与互动亮点，持续为短视频创作提供选题与拍摄灵感。当用户要看 TikTok 有什么热门话题、找选题灵感、监控行业内容趋势、看同行在拍什么、做内容日历时必须触发。关键词：青虎AI、TikTok、社媒运营、热门话题、选题、内容趋势、爆款视频、互动率、拍摄灵感、内容日历。
user-invocable: true
metadata: {"openclaw":{"emoji":"📡"}}
---

# TikTok-社媒运营专家 | 青虎AI

TikTok 内容运营的**日常雷达**：今天该拍什么、行业在聊什么、哪些内容形式正在起量。

和「视频复刻专家」的分工：**这里回答「拍什么」（选题），那里回答「怎么拍」（脚本）。**

## 何时触发

- 「TikTok 最近有什么热门话题」「我们这个行业在流行什么内容」
- 「给我几个选题」「这周该拍什么」
- 「同行最近在拍什么」
- 「帮我做一份内容日历」

## 数据接口

本技能的数据全部来自**青虎数据接口**——一个普通的 HTTP 端点，用任何能发请求的方式调用即可（`curl`、`fetch`、`requests` 都行）。
如果当前环境已经把这些工具做成了可直接调用的工具，那就直接调，不必自己拼请求。

| 项 | 值 |
| --- | --- |
| 地址 | `POST https://www.iqinghu.com/api/desktop/qh/mcp` |
| 必需请求头 | `Authorization: Bearer <青虎密钥>`、`Content-Type: application/json` |
| 密钥来源 | 向用户索取，或读环境变量 `QINGHU_TOKEN` / `QHKIT_TOKEN`；用户在 https://www.iqinghu.com/workbench/dashboard/api-keys 生成 |

**HTTP 401 + 空响应体不一定是密钥的问题，按这个顺序排查**：
① **先原样重试一次**——2026-08-18 实测过同一把有效密钥间歇性返回 401 空体、隔一会儿再请求就正常，别一遇到 401 就下结论；
② 检查请求头是不是 `Authorization: Bearer <密钥>`（少了 `Bearer ` 前缀、或改用 `X-Api-Key` / `api-key` 一律 401）；
③ 持续 401 时，拿**同一个密钥**请求 `GET https://www.iqinghu.com/api/desktop/qh/workflow/page?pageNum=1&pageSize=5`（同一套鉴权）：
返回 200 说明密钥有效，问题在这个端点的账号权限——此时**不要再向用户索要密钥**，请他到青虎工作台开通数据接口权限。
返回一律是纯 JSON，不需要 `Accept: text/event-stream`。

### 1) 查工具入参

第一次用某个工具、或拿不准参数时先查一次，**不要猜参数**：

```json
{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}
```

`result.tools[]` 每项含 `name`（调用时用的名字）、`title`（中文名）、`description`、`inputSchema`（必填项与类型）、`outputSchema`、`free`（是否免费）。

### 2) 发起调用

工具名照 `tools/list` 返回的 `name` 原样填：

```json
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"hot_douyin_rank","arguments":{}}}
```

### 3) 取业务数据：要解两层

**业务数据是被 JSON 字符串化塞在 `content[0].text` 里的**，直接读 `content` 拿不到值：

```json
{"jsonrpc":"2.0","id":2,"result":{
  "isError": false,
  "pointCost": 2000,
  "content": [{"type":"text","text":"{\"code\":200,\"data\":{...},\"success\":true}"}]
}}
```

**必须对 `content[0].text` 再做一次 JSON 解析**，才拿得到里面的 `data`。

### 4) 判断成没成功：三层都要看

**HTTP 状态码永远是 200，`isError` 也可能骗人**，按顺序检查：

| 检查 | 含义 |
| --- | --- |
| 顶层有 `error` 对象（此时没有 `result`） | 协议层失败，如工具名写错会返回「工具不存在: xxx」 |
| `result.isError` 为 `true` | 调用出错 |
| 解析内层后 `code == 200` 且 `success == true` | **只有这样才算真成功** |

实测缺必填参数时返回的是 `isError: false` 但内层 `code:500`、`success:false`——**光看 `isError` 或 HTTP 200 会把失败当成功**。
参数出错时的提示只有一句「API调用成功判断失败」，既不说缺哪个参数也不说哪个值非法，所以**调用前对着 `inputSchema` 的 `required` 自查**，不要靠试错。

调用失败时 `pointCost` 为 0，不扣费。

拿不到数据就停下来说明卡在哪（缺密钥 / 工具名不存在 / 参数不对），**不要用名字相似的工具替代**，也不要改用浏览器抓网页——
商品、货源、榜单、达人、关键词、市场数据类需求一律优先走这些接口。

下表是本技能要用的工具，写的是 `name` 原值；表里只补 `inputSchema` 里看不出来的取值来源与前置步骤。

| 工具 | 中文名 | 用在哪一步 |
| --- | --- | --- |
| `tiktok_video_ranklist` | 视频榜单列表 | 行业内容风向（热门榜/带货榜，日/周/月） |
| `tiktok_search_items` | 关键词搜索 | 按行业词搜视频、达人、商品 |
| `tiktok_video_detail` | 批量获取视频详情 | 批量拿播放与互动数据（单次≤10） |
| `tiktok_realtime_video_comments` | 视频评论列表 | 评论区舆情与用户关注点 |
| `tiktok_influencer_video_list` | 达人视频列表 | 盯住对标账号的更新节奏与内容方向 |
| `tiktok_influencer_detail` | 批量获取达人详情 | 对标账号的量级与增长 |

> 榜单类工具的 `date` 是 `yyyy-MM-dd`：日榜取昨天，周榜取当周周一，月榜取当月 1 号；榜单返回的是**周期内增量**，不是累计值。
> `region` 是站点（如 `US` `GB` `ID` `TH` `MY` `VN` `PH` `SG`），必填。类目 ID 要先用类目工具查，别编。
> 商品 / 达人 / 视频的批量详情接口单次最多 10 个 ID，逗号分隔。

## 工作流程

### 1) 定行业与站点

`region` 必填。行业用类目或关键词界定，两者都给最准。

### 2) 扫风向：`tiktok_video_ranklist`

日榜看当下热点，周榜看稳定趋势。同时看热门榜和带货榜——
**只在热门榜的是话题，两个榜都在的才是能变现的方向。**

### 3) 关键词深挖：`tiktok_search_items`

按行业词搜近期高赞内容，补充榜单没覆盖的长尾选题。

### 4) 量化爆发力：`tiktok_video_detail`

不要只看播放量，算**互动率**（点赞+评论+转发 / 播放）。
互动率高的内容说明真的戳中了人，而不是靠投流堆出来的数字。

### 5) 听舆情：`tiktok_realtime_video_comments`

高频提问、吐槽和梗——**这些是最好的选题来源，也是最真实的用户语言库**。

### 6) 盯对标账号：`tiktok_influencer_video_list`

固定跟 2~3 个对标账号的更新，观察它们的内容节奏与转型方向。

### 7) 出选题，不出数据报告

最终交付是**可执行的选题清单**：拍什么、为什么现在拍、大致怎么拍。

## 输出

- **本期选题清单（5~10 条）**：选题、依据（哪条内容验证过）、建议形式、预计难度。
- **热点排行**：话题/内容方向 + 热度与互动率。
- **对标账号动态**：它们最近在拍什么、有什么变化。
- **舆情要点**：用户高频关注与吐槽，可直接转成脚本素材。
- 明细按「数据交付」导出。

## 数据交付

- **工具返回的记录数组 ≥ 10 条时默认导出表格文件**（装了 `qinghu-excel-export` 技能就用它），不管用户有没有提「表格 / 导出」。**不要**把大数据集铺成聊天里的 markdown 表格，也**不要**反问「需要我导出吗」——先导出、给链接才是正确姿势。
- 工具返回里出现「完整数据已缓存到本机文件: ...」时，后续筛选、导出一律用那个文件路径，**绝对不要逐行抄写数据**。
- 导出后的回复保持精简：交付链接 + 一句话说明 + 不超过 5 行关键预览。
- **结论先行**：先给判断和建议（能不能做、怎么做、风险在哪），再给支撑数据；不要把原始字段直接倒给用户。
- 数字要标口径：站点 / 账期 / 周期 / 样本量。跨站点或跨周期的数字不要混在一张表里比。

## 计费与授权

- **收不收费看工具的 `free` 字段**（bool，`tools/list` 返回里每个工具都带）：`free=true` 直接调用、不必询问；`free=false` 按下面的规则征求授权。
- **不要看描述里的文案**——有的工具描述里写着「免费」，`free` 却是 `false`（1688 那几个就是），**一律以 `free` 字段为准**。取不到该字段时按付费处理。
- **实扣多少看返回信封里的 `pointCost`**（在 `result` 层，与 `isError` 同级）。这个值**要换算**：`pointCost ÷ 10000 = 青虎积分`（实测 10000 = 1 积分，16000 = 1.6 积分）。
- **只认信封层的 `pointCost`，绝不去业务数据里翻积分字段**——工具返回的业务文本里常带 `charge_points` / `points_balance` 或「消耗 8 积分，剩余 1952 积分」之类的话，那是**上游数据源自己的积分体系**，和青虎积分不是一回事（实测同一条响应 `pointCost=16000`＝青虎 1.6 积分，而业务文本写「消耗 8 积分」）。照抄业务文本会把用户的账算错。
- 信封里没有 `pointCost` 时按 0 报，或直接说这次拿不到消耗数据，**不要拿业务文本里的数字顶替，也不要自己估算**。
- **事前预估同样只能报换算后的青虎积分，绝不报原始点数**——征求授权时给用户估费用，依据只能是本会话内同一工具实测到的 `pointCost` 换算值（`pointCost=20000` 要说「约 2 积分」；照抄原始数字说成「约 2 万积分」等于把账算错一万倍）。没实测过就写「费用以实际扣费为准」，不要编数字，也不要照抄工具描述里出现的任何点数。
- **消耗写在回复的最末尾，单独一行，格式固定**：

  ```
  本次共消耗 9.6 青虎积分
  ```

  数值是本轮**所有**付费调用的 `pointCost` 累加后 ÷ 10000（例：16000 + 96000 = 112000 → `本次共消耗 11.2 青虎积分`）。小数按实际写，不补零也不四舍五入到整数。
  这一行必须**另起一行、独占一行、放在正文全部结束之后**，前面空一行隔开。**不要把积分数字混写进正文段落**（写成「共返回 60 条笔记，实扣 96000 pointCost = 9.6 青虎积分」这种是错的）。
  本轮一次付费调用都没有时，不输出这一行。
- **本会话首次用到付费工具**：一次性列清本次要用的**全部**工具，说明准备用它们做什么、会消耗青虎积分，征求**一次**同意，然后结束本轮。不要逐个询问把对话拖长。
- 用户消息里 **@ 了某个工具的中文名**（如「@商品关键词搜索 找 5 款连衣裙」），@ 本身就是授权，直接调用，不要再问一遍。
- 用户明确同意后，这些工具在**本会话内持续有效**，不再重复询问；新会话需要重新征求。
- 用户拒绝、只授权其中一部分或答非所问时，**未获同意的工具一律不调用**。
- **同一轮回复内付费工具最多调 10 次**。达到上限就用已有数据作答，还需要更多数据时先说明还差什么、要再调几次，征得同意后下一轮继续。参数写错先想清楚正确参数再重试，不要连续试错——每次失败同样可能扣费。
- 同一个数据需求既有免费工具又有付费工具时，优先用免费的。

## 能力边界

- 本技能给**选题与方向**，具体脚本拆解与模板走「TikTok-视频复刻专家」。
- 不生成视频与图片素材，那属于 LinkPix / qhkit 系列技能。
- 达人合作与建联走「TikTok-达人带货选品建联专家」。
- 热点有时效，结论要标注数据周期；实时评论接口触发风控时只重试一次。

## 相关技能

同系列的其他「青虎AI」技能（按需转交，不要在本技能里硬做）：

- **TikTok-视频复刻专家**：选题定了之后拆脚本
- **TikTok-达人带货选品建联专家**：把选题交给合适的达人
