给 AI

操作指南

怎么批量导出抖音视频评论

两个接口就够:先用抖音视频搜索,再对留下的每条视频调抖音视频评论。下面的示例一共 9 次调用,花费 $0.036;失败的调用不扣费。

更新于

要做的事:手上有一个话题或产品名,想知道抖音上相关视频的评论区里大家在说什么。先搜索,留下讨论最多的那几条视频,再一页一页地读评论。最后得到一张评论表,每条都有内容、评论者、点赞数、回复数、时间,以及抖音展示的 IP 属地(有的话)。

整个过程不需要抖音账号,不用 Cookie,也不用自己处理签名。每次调用就是带着 key 发一个 HTTPS 请求。

分步操作

第一步:找到视频

调用抖音视频搜索,query 填你会在抖音搜索框里输入的词。sort 可选 relevance(默认,综合排序)、latest(最新)或 most_liked(最多点赞)。一次调用返回约 20 条视频,每条都有 id、文案 text、作者信息和 metrics(点赞、评论、分享、收藏)。看 metrics.comments 就知道哪些视频值得细看。

curl -G "https://api.okdata.online/v1/douyin/videos/search" \
  -H "Authorization: Bearer $OKDATA_API_KEY" \
  --data-urlencode 'query=露营' \
  --data-urlencode 'sort=most_liked' \
  --data-urlencode 'fields=id,text,author.name,metrics.comments,published_at'

fields 只保留你点名的字段。价格不变(每次 $0.02),但返回内容更短,交给模型读的时候能省不少 token。

第二步:读每条视频下的评论

把视频的 id 传给抖音视频评论。一次调用返回约 20 条一级评论,每次 $0.002。每条评论有 text、author、likes、replies(下面有几条回复)、published_at 和 ip_location。要下一页,就把 page.next_cursor 原样作为 cursor 传回去;page.has_more 为 false 时说明已经到底。

curl -G "https://api.okdata.online/v1/douyin/videos/comments/list" \
  -H "Authorization: Bearer $OKDATA_API_KEY" \
  --data-urlencode 'id=7301234567890123456'

第三步:用 Python 串起来

下面的脚本搜索一次,按评论数挑出前 8 条视频,每条最多读 MAX_PAGES 页评论,最后写成 CSV。每一页都是一次单独的调用,所以页数上限同时也是花费上限。

import csv
import os
import requests

API = "https://api.okdata.online"
HEADERS = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}
MAX_PAGES = 1  # 每条视频读几页评论;每页一次调用


def get(path, **params):
    body = requests.get(API + path, headers=HEADERS, params=params, timeout=60).json()
    if body["code"] != "ok":
        raise RuntimeError(f"{body['code']}: {body['message']} (charged: {body['charged']})")
    return body


videos = get("/v1/douyin/videos/search", query="露营")["data"]["items"]
videos = sorted(videos, key=lambda v: v["metrics"]["comments"] or 0, reverse=True)[:8]

with open("douyin_comments.csv", "w", newline="", encoding="utf-8") as f:
    out = csv.writer(f)
    out.writerow(["video_id", "comment", "user", "likes", "replies", "ip_location", "published_at"])
    for v in videos:
        cursor = None
        for _ in range(MAX_PAGES):
            params = {"id": v["id"], **({"cursor": cursor} if cursor else {})}
            body = get("/v1/douyin/videos/comments/list", **params)
            for c in body["data"]["items"]:
                out.writerow([v["id"], c["text"], c["author"]["name"], c["likes"], c["replies"], c["ip_location"], c["published_at"]])
            if not body["page"]["has_more"]:
                break
            cursor = body["page"]["next_cursor"]

想读得更深,就把 MAX_PAGES 调大。8 条视频各读 5 页是 40 次评论调用,在搜索之外再花 $0.08。

注意事项

  • 重试不会重复扣费。 每次调用带一个 Idempotency-Key 请求头(你自己保存的随机字符串)。网络断了重发时,24 小时内同样的请求配同样的 key,会直接拿回上次的结果,meta.replayed 为 true,不再扣费。
  • 删掉的视频不收钱。 已经不存在的视频返回 not_found,不扣费,跳过即可。
  • 数量可能对不上。 抖音会折叠一部分评论,所以拿到的条数可能比视频上显示的 metrics.comments 少。
  • 回复。 能拿到每条评论的回复数,拿不到回复正文。按 replies 排序可以看出哪些评论引发了讨论,需要看完整对话时再去 App 里打开。
  • 排序。 抖音评论按它自己的“热度”顺序返回,评论没有按最新排序的选项。

想从评论里提炼观点,可以看怎么把抖音评论整理成情感分析摘要。如果关心的是某个账号的视频而不是关键词,第一步换成抖音账号作品列表即可。

示例花费

搜一页“露营”的视频,再取评论最多的 8 条视频各自的第一页评论

接口调用次数单价小计
抖音视频搜索1$0.02$0.02
抖音视频评论8$0.002$0.016
合计9$0.036

按本页生成时的价格计算。失败的调用不扣费。

在你的 AI 里用(MCP)

先接好 MCP 服务,然后直接说你要什么。智能体会自己找到这些接口、看清价格,再用你的余额调用。

可以这样说在抖音搜“露营”,挑评论最多的 8 条视频,各取第一页评论,整理成一张表:视频、评论内容、点赞、回复数、时间。

智能体第一次调用 call 工具时发送的内容
{
  "endpoint": "douyin.videos.search",
  "params": {
    "query": "露营装备"
  },
  "idempotency_key": "<新的 UUID>"
}

配置 MCP 服务 →

接上一次,以后直接问 AI。

新 key 自带 $0.10 试用额度。贴一句话,就能接进你的智能体。

免费开始
一句话接进你的 AI

把这句话发给你的智能体

读一下 https://okdata.online/zh/agents.md,帮我把 okdata 配好;我的 key 在环境变量 OKDATA_API_KEY 里。

Claude Code、Cursor、Codex 等能打开网址的智能体,读完会自己配好。

MCP 地址https://api.okdata.online/mcp