问答
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。至于上面这种企业场景,竞品监测方案里有一套完整的每周流程可以照着做。
更新于