问答

TikTok Research API 只给高校研究者,企业要拿 TikTok 公开数据用什么?

简短回答

申请不到 TikTok Research API 的企业,可以只用一个 API key 通过 okdata 读取同类公开数据:视频搜索每页约 30 条,$0.002;视频详情 $0.002 一条;账号信息 $0.002 一个;评论每页 $0.002。不用填申请表,不需要高校身份,也不用排队等审核。

很常见的经历:品牌方的洞察团队兴冲冲去填 TikTok Research API 的申请表,填到一半才把资格要求看仔细。这个接口只开放给美国、欧洲经济区、英国和瑞士的非营利学术机构研究者,每个项目都要审核。公司不符合条件,替公司干活的代理商也不符合。可团队真正想要的东西并不复杂:大家在这个品类下发了哪些视频,视频底下评论在说什么,相关博主体量多大。这些都是公开信息,绕开 Research API 也能拿到。

企业常用的四个接口

想要的数据 接口 价格
某个关键词下的视频 TikTok 视频搜索 每页约 30 条,$0.002
单条视频的数据(ID 或链接) TikTok 视频详情 $0.002
视频下的评论 TikTok 视频评论 每页约 50 条,$0.002
账号的粉丝、获赞和作品数 TikTok 账号信息 $0.002

举个月度品类扫描的例子:20 个关键词各翻 5 页,播放最高的 30 条视频各拉 4 页评论,再查 100 个博主的账号信息,合计 {{cost:tiktok.videos.search100+tiktok.videos.comments.list120+tiktok.users.get*100}}。按次计费,没有套餐和最低消费,新 key 自带 $0.10 额度。

先跑一遍

import os, requests

API = "https://api.okdata.online/v1"
H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}

def get(path, **params):
    body = requests.get(f"{API}/{path}", headers=H, params=params, timeout=60).json()
    if body["code"] != "ok":
        raise RuntimeError(f"{body['code']}: {body['message']}")
    return body["data"]

videos = get("tiktok/videos/search", query="protein bar", sort="most_liked")["items"]
creators = {v["author"]["username"] for v in videos if v["author"]["username"]}
for handle in sorted(creators)[:10]:
    p = get("tiktok/users/get", username=handle)["item"]
    print(handle, p["followers"], p["likes"], p["posts"])

和 Research API 比,少了什么

选之前先把差距想清楚:

  • Research API 允许按日期区间和地区查询。这里的搜索两样都没有,只能拿到结果后按 published_at 自己筛。
  • 粉丝列表、评论的回复楼层、某个账号的完整作品列表,这套接口里都没有。
  • 拿到的是 TikTok 当下公开展示的数据。私密账号和已删除的视频返回 not_found,不扣费。

什么情况下走别的路

如果你本身就是符合条件的高校研究者,先申请 Research API,免费,而且就是为研究设计的。要看自己账号或广告的数据,用 TikTok 自家的商业工具,或者让用户授权你的应用后走 Display API。至于上面这种企业场景,竞品监测方案里有一套完整的每周流程可以照着做。

更新于