Install
openclaw skills install @linkfox-ai/linkfox-tiktok-selection-and-shoppable-videoTikTok 选品与带货视频一站式 AI 工具集,整合 EchoTik/FastMoss 选品数据与 TikTok 官方带货视频 API,覆盖 TikTok Shop 选品、爆品趋势、带货视频分析与可购物视频发布。
openclaw skills install @linkfox-ai/linkfox-tiktok-selection-and-shoppable-videoTikTok 选品与带货视频一站式 AI 工具集,整合 3 类底层工具、10 项子能力,覆盖选品数据(EchoTik 16 区域市场 / FastMoss 全球电商)与官方带货视频发布链路(TikTok 视频号授权 → 可带货商品 → 可购物视频预检/发布)。各子能力完整参数、响应字段与错误码见 references/ 下对应文件,可执行脚本见 scripts/。
echotik_tiktok,EchoTik,覆盖 16 个区域市场):新品排行发现热销爆品与新兴趋势(echotik_tiktok list-new-product-rank);商品搜索按销量/达人/佣金/评分/评论多维筛选(echotik_tiktok list-product);商品关联带货视频查询播放/互动/视频销量/GMV(echotik_tiktok product-video);批量商品详情含多周期销量与 GMV、直播销量、带货达人数、价格评分与佣金(echotik_tiktok batch-product-detail);解析 TikTok 视频链接返回无水印/含水印下载、播放与封面地址(echotik_tiktok get-video-download-url)。fastmoss_tiktok,FastMoss):按日/周/月维度与类目分析热销商品排行榜与 GMV 排名(fastmoss_tiktok product-rank-top-selling);按类目/销量/佣金率/达人数/店铺类型多维搜索筛选商品(fastmoss_tiktok product-search)。tiktok_official_video_api):视频号达人 OAuth 授权、已授权账号列表、令牌查询与 access_token 刷新(tiktok_official_video_api linkfox-tiktok-video-auth);可购物视频内容预检、查预检结果、发布、查发布状态、达人档案查询及大文件分片上传(tiktok_official_video_api linkfox-tiktok-video);达人可带货商品查询(店铺商品与橱窗/直播袋商品),取得 product_id 供可购物视频挂车(tiktok_official_video_api linkfox-tiktok-video-products)。global(默认)/ us(美国站)。具体取值见各 references。LINKFOX_AGENT_API_KEY(或 LINKFOXAGENT_API_KEY);各工具独立计费、独立限频,数据时效与区域覆盖随数据源而异。skills-version.json 与 references 内 api.md 的 costToken 字段:EchoTik 5 项 fixed≈4.5/9000 token,FastMoss 2 项 fixed≈10.5/21000 token,TikTok 官方 3 项免费)。linkfox-tiktok-video / linkfox-tiktok-video-products 仅走 /tiktokVideo/developerProxy,path 须以 affiliate_creator / video / creator 开头(否则 errcode 1005);不可用于 /tiktokShop/*(TikTok Shop 卖家模块用 linkfox-tiktok-auth)。令牌 ttsAccessToken 由 linkfox-tiktok-video-auth 授权后经 /tiktokVideo/accountTokens 取得,固定 creator 达人端。linkfox-tiktok-video-auth 授权取令牌,再 linkfox-tiktok-video-products 取 product_id,最后 linkfox-tiktok-video 预检/发布;check_auth_dependency.py 探测 linkfox-tiktok-video-auth 是否安装(exit 42=未安装/未授权,需先完成授权)。upload_shoppable_video_file(multipart,网关暂不支持);>10MB 走大文件分片三步(Initialize → PUT 分片 → Bind,详见 references/large-file-upload.md,Step 1/3 可经 proxy,Step 2 分片 PUT 不经网关)。linkfox-tiktok-auth + 业务 skill)、TikTok Shop 可购物视频(/tiktokShop/developerProxy,用 linkfox-tiktok-creator)、TikTok 广告投放、物流与供应链、非电商任务、与平台或卖家的直接沟通。按需求在下表定到子能力,再跳到【业务需求路由速查】查端点/脚本/references 取参执行。
| 需求 / 用户说 | 默认推荐(子能力) | 何时换用其他 |
|---|---|---|
| TikTok 选品 / 搜商品("TikTok 上什么好卖") | linkfox-echotik-list-product(16 区域市场,销量/达人/佣金/评分多维) | 要全球电商+日/周/月维度+范围筛选(达人数/佣金率 range)用 linkfox-fastmoss-product-search |
| TikTok 新品 / 新兴趋势("最近有什么新品爆") | linkfox-echotik-list-new-product-rank(新品排行) | 要热销榜(非新品)用 linkfox-fastmoss-product-rank-top-selling |
| TikTok 热销榜 / 爆品排行 / GMV 排名 | linkfox-fastmoss-product-rank-top-selling(日/周/月+类目) | 要"新品"趋势用 linkfox-echotik-list-new-product-rank |
| 商品详情 / 多周期销量 GMV("这个 productId 卖得怎么样") | linkfox-echotik-batch-product-detail(1d/7d/15d/30d/60d/90d/累计+直播+达人) | — |
| 商品带货视频("这个商品有哪些带货视频 / 视频销量") | linkfox-echotik-product-video(播放/互动/视频销量/GMV) | — |
| 视频下载 / 去水印("下载这个 TikTok 视频") | linkfox-echotik-get-video-download-url(无水印/含水印/播放/封面) | — |
| 视频号授权 / 绑定视频号 / 刷新令牌 | linkfox-tiktok-video-auth(OAuth+令牌) | TikTok Shop 卖家授权用 linkfox-tiktok-auth(不互通) |
| 达人能带什么货 / 橱窗商品 / 取 product_id | linkfox-tiktok-video-products(店铺商品+橱窗/直播袋) | — |
| 发布可购物视频 / 视频挂车("发一个带商品的 TikTok 视频") | linkfox-tiktok-video(预检→发布→查状态) | 需先 linkfox-tiktok-video-auth 授权 + linkfox-tiktok-video-products 取 product_id |
| 达人主页 / 档案 | linkfox-tiktok-video(get_creator_profile,独立功能) | — |
| 大文件分片上传视频(>10MB) | linkfox-tiktok-video(large_file_upload_init/bind + 分片 PUT) | ≤10MB 走 upload_shoppable_video_file(网关暂不支持 multipart) |
按【工具选择指南】定到子能力 后,下表查端点、脚本与 references 文件取参执行:
echotik_tiktok
| 子能力 | references 文件 | 端点 | 脚本 |
|---|---|---|---|
| linkfox-echotik-list-new-product-rank | references/linkfox-echotik-list-new-product-rank.md | POST /echotik/listNewProductRank | echotik_list_new_product_rank.py |
| linkfox-echotik-list-product | references/linkfox-echotik-list-product.md | POST /echotik/listProduct | echotik_list_product.py |
| linkfox-echotik-product-video | references/linkfox-echotik-product-video.md | POST /echotik/listProductVideo | echotik_list_product_video.py |
| linkfox-echotik-batch-product-detail | references/linkfox-echotik-batch-product-detail.md | POST /echotik/batchProductDetail | echotik_batch_product_detail.py |
| linkfox-echotik-get-video-download-url | references/linkfox-echotik-get-video-download-url.md | POST /echotik/getVideoDownloadUrl | echotik_get_video_download_url.py |
fastmoss_tiktok
| 子能力 | references 文件 | 端点 | 脚本 |
|---|---|---|---|
| linkfox-fastmoss-product-rank-top-selling | references/linkfox-fastmoss-product-rank-top-selling.md | POST /fastmoss/productRankTopSelling | fastmoss_product_rank_top_selling.py |
| linkfox-fastmoss-product-search | references/linkfox-fastmoss-product-search.md | POST /fastmoss/productSearch | fastmoss_product_search.py |
tiktok_official_video_api
| 子能力 | references 文件 | 端点 | 脚本 |
|---|---|---|---|
| linkfox-tiktok-video-auth | references/linkfox-tiktok-video-auth.md | POST /tiktokVideo/authorizeUrl、/authorizedAccounts、/accountTokens、/refreshToken | authorize_url.py、authorized_accounts.py、account_tokens.py、refresh_token.py |
| linkfox-tiktok-video | references/linkfox-tiktok-video.md | POST /tiktokVideo/developerProxy | video_api.py、video_proxy.py、get_creator_profile.py、precheck_shoppable_video.py、get_shoppable_video_precheck_result.py、post_shoppable_video.py、get_shoppable_video_status.py、upload_shoppable_video_file.py、large_file_upload_init.py、large_file_upload_bind.py |
| linkfox-tiktok-video-products | references/linkfox-tiktok-video-products.md | POST /tiktokVideo/developerProxy | get_shop_products.py、get_showcase_products.py、products_api.py |
TikTok 官方三子能力共享 helper:
response_io.py(落盘/摘要)、check_auth_dependency.py(探测linkfox-tiktok-video-auth);linkfox-tiktok-video另有_video_api_runner.py/_video_endpoints.py/_tiktok_video_common.py,linkfox-tiktok-video-products另有_products_api_runner.py/_products_endpoints.py/_tiktok_video_products_common.py,均与本入口脚本同目录、随调随用。
${LINKFOX_TOOL_GATEWAY}/<端点>(默认 https://tool-gateway.linkfox.com),请求方式 POST、Content-Type application/json,认证 Header Authorization: <api_key>(api_key 从环境变量 LINKFOX_AGENT_API_KEY 或 LINKFOXAGENT_API_KEY 读取;未配置按下方【解决认证和积分问题】处理)。各端点路径见上方【业务需求路由速查】与对应 references 文件。linkfox-tiktok-video / linkfox-tiktok-video-products 经 POST /tiktokVideo/developerProxy 转发至紫鸟 tiktok-proxy/creator/{region}/{path};调用方传 path / method / ttsAccessToken(= creator access_token,上游请求头 x-tts-access-token)/ region(global 默认 / us);app_key / timestamp / sign 由紫鸟代理自动注入。具名脚本(video_api.py / products_api.py / 各 get_*.py / post_*.py)只需传 {"api": "...", "openId": "..."},脚本内部自动调 /tiktokVideo/accountTokens 取 ttsAccessToken 再调 developerProxy。scripts/<脚本名>.py '<JSON 参数>' [--inline](脚本名与端点见路由速查表)。脚本内部完成网关调用、鉴权与落盘。<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/<skill>-<timestamp>.json(<cwd> 为脚本执行时工作目录;<session> 取自环境变量 SESSION_ID;禁止写入 /tmp,当前目录不可写则报错);响应体 ≤ 8 KB 落盘后完整打印到 stdout,> 8 KB 仅打印摘要(顶层字段、常见计数、最大列表长度 + 前 3 条样本);加 --inline 强制全量打印(同样落盘)。jq 或 PowerShell ConvertFrom-Json 从保存的 json 文件按需抽取,避免整份 JSON 进入上下文。references/<子能力>.md(文件内含该子能力 SKILL.md 正文与 api.md 全文);linkfox-tiktok-video 另含 references/large-file-upload.md(大文件分片上传详解)。以下按数据层给出代表性子能力的出入参示例;其余子能力参数见对应 references 文件。
1. TikTok 新品排行(echotik_tiktok → echotik_list_new_product_rank.py)
{"date": "2025-06-15", "region": "US", "pageNum": 1, "pageSize": 50}
出参:products[](title/asin/price/minPrice/maxPrice/currency/totalSaleCnt/totalSaleGmvAmt/salesTrendFlagText/totalVideoCnt/totalLiveCnt/totalIflCnt 达人数/productCommissionRate/productRating/reviewCount/categoryId/imageUrl)、total、columns、costToken。
2. TikTok 商品搜索(echotik_tiktok → echotik_list_product.py)
{"keyword": "phone case", "region": "US", "minTotalSale30dCnt": 1000, "productSortField": 5, "sortType": 1, "pageSize": 20}
出参:products[](productId/productName/title/price/spuAvgPrice/productRating/reviewCount/ratings/productCommissionRate/totalSaleCnt/monthlySalesUnits/totalSaleGmvAmt/totalIflCnt 达人数/categoryName/firstCrawlDt/salesTrendFlagText)、total、columns、costToken。
3. TikTok 热销榜(fastmoss_tiktok → fastmoss_product_rank_top_selling.py)
{"region": "US", "dateInfo": {"type": "day", "value": "2026-04-15"}, "page": 1, "pageSize": 10}
出参:products[](title/productId/price/minPrice/maxPrice/currency/totalSaleCnt/totalSaleGmvAmt/growthRate/shopName/shopTotalUnitsSold/categoryName/productCommissionRate/imageUrl/offShelvesText)、total、columns、costToken。dateInfo.type 支持 day / week / month。
4. TikTok 商品搜索(fastmoss_tiktok → fastmoss_product_search.py)
{"keyword": "phone case", "region": "US", "orderField": "day7_units_sold", "pageSize": 10}
带范围筛选:{"keyword": "beauty", "region": "US", "commissionRateRange": {"min": 0.10}, "creatorCountRange": {"min": 50}, "orderField": "commission_rate", "pageSize": 10}
出参:products[](title/productId/price/totalSaleCnt/totalSaleGmvAmt/totalVideoCnt/totalLiveCnt/totalIflCnt 达人数/productCommissionRate/productRating/reviewCount/skuCount/shopName/isCrossBorder/tiktokUrl/fastmossUrl/imageUrl)、total、columns、costToken。
5. 批量商品详情(echotik_tiktok → echotik_batch_product_detail.py)
{"productIds": ["1729382310407603945", "1729382310407603946"]}
出参:products[](productId/productName/region/sellerId/minPrice/maxPrice/spuAvgPrice/productRating/reviewCount/productCommissionRate/totalSaleCnt/totalSaleGmvAmt/totalLiveCnt/totalVideoCnt/totalIflCnt 达人数/totalViewsCnt/discount/freeShipping/salesTrendFlag/firstCrawlDt)、total、columns、costToken。也可用 productUrls 传 TikTok Shop 商品 URL。
6. 商品带货视频(echotik_tiktok → echotik_list_product_video.py)
{"productId": "1729382310407603945", "productVideoSortField": 1, "sortType": 1, "pageSize": 20}
出参:data[](videoId/productId/userId/videoDesc/officialUrl/covet 封面/totalFavoritesCnt 点赞/totalVideoSaleCnt/totalVideoSaleGmvAmt/hashTag/createDate/region)、total、columns、costToken。
7. 视频下载地址(echotik_tiktok → echotik_get_video_download_url.py)
{"url": "https://www.tiktok.com/@user/video/1234567890"}
出参:downloadUrl(无水印)、playUrl、coverUrl、dynamicCoverUrl、videoId、costToken、errmsg。
完整链路:
linkfox-tiktok-video-auth授权取ttsAccessToken→linkfox-tiktok-video-products取product_id→linkfox-tiktok-video上传file_id→(可选)预检 → 发布 → 查状态。
8. 视频号授权与令牌(tiktok_official_video_api → authorize_url.py / authorized_accounts.py / account_tokens.py / refresh_token.py)
// POST /tiktokVideo/authorizeUrl
{"displayName": "My Channel", "region": "global"}
// → {"authorizeUrl": "https://services.tiktokshop.com/open/authorize?service_id=xxx&state=abc123"}(约 1 小时失效)
// POST /tiktokVideo/authorizedAccounts {} → accounts[](openId/displayName/region/userType)、total
// POST /tiktokVideo/accountTokens {"openId": "<creator_open_id>"}
// → accessToken/refreshToken/accessTokenExpireIn/refreshTokenExpireIn(accessToken 即下游 ttsAccessToken)
// POST /tiktokVideo/refreshToken {"openId": "<creator_open_id>"} → 续签并回写
9. 视频号可带货商品(tiktok_official_video_api → get_shop_products.py / get_showcase_products.py)
// 店铺商品(get_shop_products,GET affiliate_creator/202509/shop_products)
{"openId": "...", "title_keyword": "apple", "sort_field": "PRICE", "sort_order": "DESC", "page_size": 20}
// 橱窗/直播袋商品(get_showcase_products,GET affiliate_creator/202405/showcases/products)
{"openId": "...", "page_size": 20, "origin": "SHOWCASE"} // origin: SHOWCASE(默认)/ LIVE
出参:商品列表含 product_id(供 linkfox-tiktok-video 预检/发布挂车)、data.next_page_token(翻页)。page_size 必填 1~20。
10. 发布可购物视频(tiktok_official_video_api → precheck_shoppable_video.py / get_shoppable_video_precheck_result.py / post_shoppable_video.py / get_shoppable_video_status.py)
// 内容预检(precheck_shoppable_video,POST affiliate_creator/202511/videos/precheck_task)
{"openId": "...", "video_info": {"file_id": "..."}, "product_link_info": {"product_id": "...", "title": "Product anchor"}}
// → data.precheck.task_id
// 查预检结果(GET affiliate_creator/202511/videos/precheck_tasks/{task_id})
{"openId": "...", "task_id": "1123123123"}
// → result(SUCCESS/FAIL/PROCESSING);FAIL 时看 issues[] 整改
// 发布可购物视频(post_shoppable_video,POST affiliate_creator/202603/videos)
{"openId": "...", "video_info": {"file_id": "...", "title": "My shoppable video"}, "product_link_info": {"product_id": "...", "title": "Product anchor"}}
// → data.video.id
// 查发布状态(get_shoppable_video_status,GET affiliate_creator/202509/videos/{video_id}/status)
{"openId": "...", "video_id": "7548431509997292816"}
// → post_status(SUCCESS/FAIL/PROCESSING)、post_time
上传视频文件取
file_id:≤10MB 走upload_shoppable_video_file(multipart,网关暂不支持);>10MB 走大文件分片(large_file_upload_init→ PUT 分片 →large_file_upload_bind,详见references/large-file-upload.md)。
currency 字段标明本地币种)。ttsAccessToken / accessToken / refreshToken,仅展示前 10 字符等掩码形式。0 或 -1 的字段表示数据不可用,标注"N/A"或省略,不作实际值展示;salesTrendFlagText/salesTrendFlag 为 0=平稳 1=上升 2=下降。errcode/errmsg 或 TikTok body.code/message 说明原因并建议修正(TikTok 官方 path 未在白名单返回 errcode 1005、缺参 1002、上游异常 1003;HTTP 401/402 按下方认证积分处理);连续使用多工具时将各工具发现汇总为连贯分析,标注数据来源与时间窗。异常情况:未配置 LINKFOX_AGENT_API_KEY/LINKFOXAGENT_API_KEY;响应 401 或 402;消息含"积分余额不足/quota exceeded/insufficient balance/套餐到期/需充值"等。
措施:优先用 skill 内 onboarding.md 引导;找不到则加载 /linkfox-onboarding skill(未安装先下载 https://agent-files.linkfox.com/skills/linkfox-onboarding/release.zip 解压安装)。