问答

有没有一个 API 能同时监测品牌在 TikTok、YouTube 和 X 上的讨论?

简短回答

有。okdata 用一个 key 就能搜 TikTok(每页 $0.002)、YouTube(每页 $0.004)和 X(每页 $0.006),三个平台返回的帖子结构相同。每周扫一遍品牌,约 120 条 TikTok 视频、40 条 YouTube 视频外加热门视频评论、200 条 X 帖子,共 $0.156。

一位海外品牌经理每周一都想要一张表:上周 TikTok、YouTube 和 X 上关于产品的内容,按传播量排好。手工做要开三个 App、复制粘贴一上午;接三家官方 API,要申请三个开发者账号、对付三套鉴权和三种数据格式。在这里只需要一个 key,结果也只有一种结构:不管来自哪个平台,每条都是带 url、text、published_at、author 和 metrics 的帖子。

用到的接口

每周扫一遍的费用

步骤 调用次数 费用
TikTok 搜索 4 页(约 120 条视频) 4 $0.008
YouTube 搜索 2 页(约 40 条视频) 2 $0.008
播放最高的 10 条 YouTube 视频,每条评论翻 2 页 20 $0.08
X 搜索 10 页(约 200 条帖子) 10 $0.06
合计 36 {{cost:tiktok.videos.search4+youtube.videos.search2+youtube.videos.comments.list20+x.posts.search10}}

一个循环跑三个平台

import csv, os, requests

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

def search(path, query, pages, **extra):
    cursor, out = None, []
    for _ in range(pages):
        params = {"query": query, **extra, **({"cursor": cursor} if cursor else {})}
        body = requests.get(f"{API}/{path}", headers=H, params=params, timeout=60).json()
        if body["code"] != "ok":
            raise RuntimeError(f"{path}: {body['code']} {body['message']}")
        out += body["data"]["items"]
        if not body["page"]["has_more"]:
            break
        cursor = body["page"]["next_cursor"]
    return out

rows = []
for platform, path, pages, extra in [("tiktok", "tiktok/videos/search", 4, {}),
                                     ("youtube", "youtube/videos/search", 2, {}),
                                     ("x", "x/posts/search", 10, {"sort": "latest"})]:
    for p in search(path, BRAND, pages, **extra):
        m = p["metrics"]
        rows.append([platform, p["url"], p["published_at"], p["author"]["username"], m["views"], m["likes"], (p["title"] or p["text"])[:120]])

rows.sort(key=lambda r: r[4] or 0, reverse=True)
csv.writer(open("weekly-sweep.csv", "w", newline="", encoding="utf-8")).writerows(rows)

三个平台的差别

  • YouTube 搜索结果有播放量,但没有点赞数和评论数,这两个字段是 null,并写在 meta.unavailable 里。真正关心的几条视频再调视频详情补上。
  • TikTok 和 YouTube 的搜索按相关性排序,选最新排序也不保证严格按时间排列。用 published_at 过滤,只留上周的。
  • X 搜索支持 X 的高级语法,加上 -from:你的品牌账号 就能去掉品牌自己的帖子。
  • TikTok 和 YouTube 的评论都只返回一级评论,附带回复数。

什么时候买舆情软件更划算

团队想要现成的看板、预警、情感打分和多年历史数据,又不想写代码,那舆情监测产品的订阅费是值得的。如果你更想把数据握在自己手里,喂给自己的模型,或者希望按调用付费,这个每周扫描就能完成核心工作。在此基础上做情感和话题标注,见口碑监测方案;每个字段的含义见 Post 对象说明。

更新于