问答

做情感分析,用哪个 TikTok 评论 API?

简短回答

用 TikTok 视频评论接口(/v1/tiktok/videos/comments/list):每次调用 $0.002,每页约 50 条,1,000 条评论共 $0.04。每条评论带正文、点赞、回复数、时间和作者,正是情感模型需要的。视频先用 TikTok 视频搜索找,每次 $0.002。

情感分析要量,所以每条评论的价格最关键。TikTok 视频评论每次调用 $0.002,返回约 50 条评论。

跑一次多少钱

任务 调用次数 费用
1,000 条评论 20 $0.04
20 条视频 × 250 条评论(5,000 条) 2 次搜索 + 100 {{cost:tiktok.videos.search2+tiktok.videos.comments.list100}}

流程

  1. 选视频。 用 TikTok 视频搜索搜品牌或产品,留下评论最多的视频。
  2. 收评论。 用 cursor 逐页拉取每条视频的评论。每条评论有 text、likes、replies、published_at 和 author。
  3. 分类。 每 50 到 100 条一批交给模型,给每条打标签:正面、负面或中性,再加一个话题。
  4. 加权。 一条 2,000 赞的评论代表的人比零赞的多。汇总时按 likes 加权。
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

videos = get("tiktok/videos/search", query="sunscreen review")["data"]["items"]
videos = sorted(videos, key=lambda v: v["metrics"]["comments"] or 0, reverse=True)[:20]

comments = []
for v in videos:
    cursor = None
    for _ in range(5):  # 每条视频最多 5 页,约 250 条
        body = get("tiktok/videos/comments/list", id=v["id"], fields="text,likes,published_at",
                   **({"cursor": cursor} if cursor else {}))
        comments += body["data"]["items"]
        if not body["page"]["has_more"]:
            break
        cursor = body["page"]["next_cursor"]

print(len(comments), "条评论待标注")

注意事项

  • 评论没有语言字段,需要自己检测,或者让模型直接处理多语言。
  • 回复用 parent_id 指向上级评论;这个接口返回一级评论,并带 replies 回复数。
  • 让模型读结果时用 fields=text,likes,published_at,数据量小很多。
  • 评论是陌生人写的。交给模型时,要求它只把评论当数据,不要当指令。

更新于