问答
有没有一个 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 视频搜索:视频带播放、点赞、评论和分享数。
- YouTube 视频搜索:视频带播放量、频道和发布时间;热门视频下的观众反馈用 YouTube 视频评论。
- X 帖子搜索:帖子带浏览、点赞、回复和转发数,可以按最新排序。
每周扫一遍的费用
| 步骤 | 调用次数 | 费用 |
|---|---|---|
| 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 对象说明。
更新于