问答

采集 1000 条抖音、TikTok 或 YouTube 评论要花多少钱?

简短回答

在 okdata 上,1000 条 TikTok 评论 $0.04,抖音 $0.10,B站 $0.10,YouTube $0.20,小红书 $2.00。计费按页走,不按条,所以每页条数和单价一样重要:TikTok 一页约 50 条、$0.002,小红书一页约 10 条、$0.02。

想看清用户怎么评价一款新品,1000 条评论差不多是个起步量:反复出现的槽点、没人回答的问题、买家自己的说法,到这个量级基本都能看出来。用 okdata 采这 1000 条,TikTok 是 $0.04,小红书是 $2.00,其他平台各有不同。

每 1000 条评论的价格

评论接口都按次计费,一次调用返回一页。各平台一页能放的评论数不一样,所以只看单次价格会看偏,要折算到每 1000 条再比。

平台 接口 每次 每页条数 1000 条
TikTok TikTok 视频评论 $0.002 50 $0.04
抖音 抖音视频评论 $0.002 20 $0.10
B站 B站视频评论 $0.002 20 $0.10
YouTube YouTube 视频评论 $0.004 20 $0.20
小红书 小红书笔记评论 $0.02 10 $2.00

举个实际的抖音任务:搜一次关键词,挑 20 条视频,每条拉 250 条评论,总共 5000 条,费用是 {{cost:douyin.videos.search1+douyin.videos.comments.list250}}。

够数就停

import os, requests
from decimal import Decimal

URL = "https://api.okdata.online/v1/douyin/videos/comments/list"
H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}

def collect(video_id, target=1000):
    comments, cursor, spent = [], None, Decimal("0")
    while len(comments) < target:
        params = {"id": video_id, "sort": "hot", **({"cursor": cursor} if cursor else {})}
        body = requests.get(URL, headers=H, params=params, timeout=60).json()
        if body["code"] != "ok":
            raise RuntimeError(f"{body['code']}: {body['message']}")
        comments += body["data"]["items"]
        spent += Decimal(body["meta"]["billing"]["amount"])
        if not body["page"]["has_more"]:
            break
        cursor = body["page"]["next_cursor"]
    return comments[:target], spent

影响账单的几件事

  • 一条视频只有 120 条评论的话,翻几页就到底了,实际花费比表里少。
  • 这些接口返回一级评论,带回复数,楼中楼不单独拉。
  • 只返回公开评论。视频被删返回 not_found,不收费。

其他办法

如果只要 YouTube,YouTube 官方 Data API 在默认每日配额内免费,拉评论属于很便宜的读操作,手上有 Google Cloud 项目就先用它。MediaCrawler 这类开源爬虫也能采抖音、B站、小红书评论,用你自己登录的账号,不花调用费,代价是自己的时间和账号风险。拿到评论之后怎么分析,可以看口碑研究;全部价格在价格页。

更新于