Install
openclaw skills install @why20261/tiktok-skill用于 TikTok 达人数据、TikTok 达人作品、TikTok KOL 作品列表、TikTok 博主视频列表、TikTok 网红近期发布、TikTok 内容调研和创作者内容分析。支持三大能力:(1) 关键词搜索 TikTok 视频,可按最多点赞、相关度排序,并按发布时间筛选;(2) 博主作品抓取,按主页链接或用户名批量获取公开作品列表,支持最新/最热排序;(3) 视频评论分析,按视频链接或作品 ID 获取评论内容、评论者与互动数据。无需登录账号,只读公开数据,输出结构化 JSON 供 AI 直接做选题、竞品监控与舆情分析。
openclaw skills install @why20261/tiktok-skill一句话:把 TikTok 的公开内容(搜索结果 / 博主作品 / 视频评论)拿回来,输出成 AI 可直接消费的结构化 JSON。
| 能力 | 入口脚本 | 必填参数 | 返回 |
|---|---|---|---|
| 关键词搜索 | scripts/tiktok/search-cli.js | --keyword | 作品列表:作者、点赞/评论/分享/收藏、标签、播放地址 |
| 博主作品 | scripts/tiktok/post-cli.js | --url(主页或用户名) | 该博主公开作品列表(支持最新 / 最热排序) |
| 视频评论 | scripts/tiktok/comment-cli.js | --url(视频链接或 ID) | 评论正文、评论者、点赞数、回复数、IP 归属地 |
前置条件:必须在技能根目录执行,且环境变量
GUAIKEI_API_TOKEN已配置。未配置时所有命令返回退出码3、error_code=AUTH_REQUIRED——此时直接提示用户配置 Token,不要重试、不要换参数。
发布 / 点赞 / 评论 / 关注 / 私信等写操作一律不支持;不登录任何账号;不采集手机号、位置、私信等隐私字段;不替用户做营销决策——职责是把数据拿回来,分析交给上层。
| 用户意图 | 脚本 | 判定关键词 |
|---|---|---|
| 搜关键词、找某类内容、找爆款 | search-cli | 搜索 / 找 / 关键词 / 爆款 / 最火 |
| 看某博主 / 达人 / 网红的作品、主页、账号、近期发布 | post-cli | 作品 / 主页 / 账号 / 博主 / 达人 / 网红 / KOL |
| 看某条视频的评论、留言 | comment-cli | 评论 / 留言 / 评论区的观点 |
post-cli。
search-cli(用户想搜这类视频)。comment-cli。post-cli。/video/<id> 且问的是评论 → comment-cli;若问的是"这个人的作品" → post-cli(用 @username)。/video/<id> 链接却要"作品列表" → 先确认是要该作者的作品还是该视频的评论。| 用户说法 | 参数 |
|---|---|
| 相关度 / 默认 | --sort 0(搜索) |
| 最火 / 点赞最多 / 爆款 / 最热 | --sort 1(搜索) |
| 最近发的 / 按时间倒序 | --sort 0(作品) |
| 最热的作品 | --sort 1(作品) |
| 一天 / 24 小时 | --time 1 |
| 一周 / 7 天 | --time 7 |
| 一个月 / 三个月 / 半年 | --time 30 / 90 / 180 |
| N 条 / 前 N 条 / 要 N 个 | --limit N |
默认值:sort=0、time=0、limit=10。
⚠️ 搜索的
--sort与作品的--sort不要混用:前者是"相关度 / 最多点赞",后者是"最新 / 最热"。
任何参数被非法值回退,都会出现在输出 JSON 的 warnings 数组里,必须回显给用户,不要当成原样生效。
完整参数说明见 references/options.md;字段级 Schema 见
assets/下的 6 个 JSON Schema(draft-07)。
# 关键词搜索
node scripts/tiktok/search-cli.js --keyword "AI" --sort 1 --limit 20
node scripts/tiktok/search-cli.js --keyword "AI model" --time 7 --limit 20
# 博主作品
node scripts/tiktok/post-cli.js --url "https://www.tiktok.com/@username" --limit 30
node scripts/tiktok/post-cli.js --url "https://www.tiktok.com/@username" --sort 1 --limit 30
# 视频评论
node scripts/tiktok/comment-cli.js --url "https://www.tiktok.com/@username/video/1234567890123456789" --limit 40
可用的输入形态
https://www.tiktok.com/@username、带参数链接 https://www.tiktok.com/@username?lang=en、或直接 author_sec_uidhttps://www.tiktok.com/@username/video/<id>、短链、或直接作品 <id>执行纪律
--limit 建议 ≤ 1000。--time。所有入口输出同一个信封,成功与失败结构一致:
{
"status": "success | empty | error",
"error_code": "OK | NO_MATCH | AUTH_REQUIRED | INVALID_KEYWORD | ...",
"message": "人类可读说明",
"timestamp": "2026-09-16 21:00:00",
"request": {
"command": "search",
"keyword": "AI",
"sort": 1,
"time": 0,
"limit": 20
},
"metadata": {
"skill_version": "1.0.0",
"skill_name": "tiktok-creator-videos",
"runtime_version": "22.22.2",
"execution_time": 8421
},
"results": [],
"warnings": ["数量 99999 无效,已回退为 10"]
}
status 语义| status | 含义 | results | 该怎么做 |
|---|---|---|---|
success | 拿到数据 | 非空数组 | 直接分析 |
empty | 请求成功,但确实没数据 | null | 视为有效结果,告知用户没搜到,不要当成失败 |
error | 请求失败 | null | 按 error_code 处理,不要编造数据 |
| 退出码 | 含义 | Agent 行为 |
|---|---|---|
0 | 成功(success 或 empty) | 继续分析 |
1 | 运行错误(网络 / 超时 / 接口异常 / 参数非法) | 展示 message,询问用户是否换参数重试 |
3 | AUTH_REQUIRED:Token 缺失或格式错误 | 立即停止,提示配置 GUAIKEI_API_TOKEN,禁止重试 |
| error_code | 处理方式 |
|---|---|
AUTH_REQUIRED | 停止并提示配置 Token。禁止重试、禁止改参数绕行 |
INVALID_KEYWORD | 提示关键词需 2–100 字符、不能含 < > " ' & 与 http 链接 |
NO_MATCH | 有效空结果,建议换关键词或放宽 --time |
NETWORK_ERROR | 已内置重试;仍失败则提示检查网络,最多手动重试 1 次 |
TIMEOUT_ERROR | 已内置重试;仍失败则建议降低 --limit 后重试 |
| 其它(服务端码) | 原样展示 error_code + message,不要自行猜测含义 |
warnings 必须回显当传入参数不合法被自动回退时(如 --sort 9、--limit 99999),warnings 数组会说明"哪个参数被改成了什么"。必须原样转告用户,不能假装参数按原值生效了。
AUTH_REQUIRED 后不重试、不换脚本、不改参数。empty 当成"用户要的内容不存在"以外的结论(不等于接口坏了)。拿到 results 后,按用户原始目标组织输出,而不是原样吐 JSON:
digg_count 降序取 Top N,归纳标题句式 / 标签 / 时长分布规律create_time 排发布节奏,统计更新频率与爆款占比digg_count 取高赞评论做观点聚类,输出正负向占比author_nickname / 平均互动 / 发布频次,给出候选清单GUAIKEI_API_TOKEN;不读取本地其他文件、不写技能目录以外路径(日志写入系统临时目录)。https://www.guaikei.com 发送:你的 API Token、查询关键词或目标 URL/ID,以及技能名与 Node 版本。除此之外不采集任何本地信息。https / fs / path / os / querystring),无 npm 依赖、无远程脚本加载、无 eval / child_process。| 现象 | 原因与处理 |
|---|---|
| 退出码 3 / AUTH_REQUIRED | Token 未配置或格式不对(需 16–256 位字母数字下划线连字符) |
| 搜索结果为空 | 换更通用的关键词,或 --time 0 放开时间窗;empty 是正常结果不是错误 |
结果条数少于 --limit | 服务端无可返回更多,或单次上限被截断;降到 ≤ 1000 分批取 |
| 一直超时 | 减小 --limit 后重试;脚本已内置指数退避重试 |
| 想看"最热作品"却按时间倒序 | post-cli 要用 --sort 1 |
| 参数没生效 / 结果与预期排序不同 | 检查输出里的 warnings,参数不合法时会被静默回退为默认值 |
| 日志文件在哪 | 见 stderr 中"已保存到 …"那一行(系统临时目录 tiktok-guaikei/logs/<日期>/) |
GUAIKEI_API_TOKEN。13395823479(备注:TikTok 技能)。