问答

怎么根据链接拿到一个 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 可以在对方同意的前提下拿到数据。只有十来个链接、查一次就完的话,手动点开看最快。要长期盯竞品,参考竞品监测方案。

更新于