问答
怎么根据链接拿到一个 TikTok 视频的播放、点赞和分享数?
简短回答
把链接传给 TikTok 视频详情接口(/v1/tiktok/videos/get)。完整链接和 vm.tiktok.com 短链都能识别,返回播放、点赞、评论、分享和收藏数,每条 $0.002。50 条投放视频每天查一次、连查 30 天,共 1,500 次调用,$3.00。
代理商接了一个达人投放项目:50 位海外达人发完视频,各自回传一个链接。客户要求投放期间每天出一张表,列出每条视频的播放、点赞和分享。达人不会把后台数据给你,每天早上挨个点开 50 个链接抄数字也不现实。每个链接调用一次接口,这件事就解决了。
传链接,拿数字
TikTok 视频详情接受 url 或 id 二选一。完整链接(tiktok.com/@用户名/video/…)、图文帖(/photo/…),还有 App 分享按钮生成的短链(vm.tiktok.com、vt.tiktok.com)都能直接用。页面上的数字和返回字段的对应关系如下:
| TikTok 上显示 | 字段 |
|---|---|
| 播放 | metrics.views |
| 点赞 | metrics.likes |
| 评论 | metrics.comments |
| 分享 | metrics.shares |
| 收藏 | metrics.favorites |
另外还会返回文案、话题标签、published_at 和作者用户名;加上 view=full,ext 里有视频时长和背景音乐。
追踪要花多少
| 任务 | 调用次数 | 费用 |
|---|---|---|
| 查一条 | 1 | $0.002 |
| 50 条查一次 | 50 | $0.10 |
| 50 条每天查,连续 30 天 | 1,500 | $3.00 |
每日快照脚本
把链接一行一个写进 links.txt,每天跑一次。每次运行会给每条视频追加一行带日期的数据到 stats.csv。
import csv, datetime, os, requests
URL = "https://api.okdata.online/v1/tiktok/videos/get"
H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}
today = datetime.date.today().isoformat()
with open("links.txt") as f, open("stats.csv", "a", newline="") as out:
w = csv.writer(out)
for link in filter(None, (l.strip() for l in f)):
body = requests.get(URL, headers=H, params={"url": link}, timeout=60).json()
if body["code"] != "ok":
print(link, body["code"], body["message"]) # 失败的调用不扣费
continue
v = body["data"]["item"]
m = v["metrics"]
w.writerow([today, v["id"], link, m["views"], m["likes"], m["comments"], m["shares"], m["favorites"]])
容易踩的坑
- 每次调用拿到的是当时的快照。想画增长曲线,得自己把每天的数据存下来。
- TikTok 隐藏了播放量的视频,
metrics.views为 null,meta.unavailable会注明。转发数一直拿不到。 - 视频里的作者粉丝数是空的,需要的话用 TikTok 账号信息单独查。
- 视频删了或设为私密,返回
not_found,不扣费。视频 ID 有 19 位,放进 Excel 记得设成文本格式,不然会被四舍五入。
什么时候用别的办法
自己账号的视频,TikTok Studio 后台免费,还能看到完播、观众画像这些公开数据里没有的东西。如果达人愿意把账号授权给你的工具,走 TikTok 的 Display API 可以在对方同意的前提下拿到数据。只有十来个链接、查一次就完的话,手动点开看最快。要长期盯竞品,参考竞品监测方案。
更新于