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

> 按关键词搜抖音视频，再把每条视频下的评论一页页拉进一张表：用到的两个接口、关键参数、Python 代码，以及跑一遍要花多少钱。

网页版：https://okdata.online/zh/guides/douyin-video-comments/

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

更新于 2026-11-12

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

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

## 分步操作

### 第一步：找到视频

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

```bash
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` 传给[抖音视频评论](https://okdata.online/zh/apis/douyin/videos/comments/list/)。一次调用返回约 20 条一级评论，每次 $0.002。每条评论有 `text`、`author`、`likes`、`replies`（下面有几条回复）、`published_at` 和 `ip_location`。要下一页，就把 `page.next_cursor` 原样作为 `cursor` 传回去；`page.has_more` 为 `false` 时说明已经到底。

```bash
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。每一页都是一次单独的调用，所以页数上限同时也是花费上限。

```python
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 里打开。
- **排序。** 抖音评论按它自己的“热度”顺序返回，评论没有按最新排序的选项。

想从评论里提炼观点，可以看[怎么把抖音评论整理成情感分析摘要](https://okdata.online/zh/answers/douyin-export-comments-sentiment/)。如果关心的是某个账号的视频而不是关键词，第一步换成[抖音账号作品列表](https://okdata.online/zh/apis/douyin/users/videos/list/)即可。

## 示例花费

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

| 接口 | 调用次数 | 单价 | 小计 |
|---|---|---|---|
| [抖音视频搜索](https://okdata.online/zh/apis/douyin/videos/search/) | 1 | $0.02 | $0.02 |
| [抖音视频评论](https://okdata.online/zh/apis/douyin/videos/comments/list/) | 8 | $0.002 | $0.016 |
| 合计 | 9 |  | $0.036 |

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

## 在你的 AI 里用（MCP）

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

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

```json
{
  "endpoint": "douyin.videos.search",
  "params": {
    "query": "露营装备"
  },
  "idempotency_key": "<新的 UUID>"
}
```

MCP：`https://api.okdata.online/mcp`

## 本指南用到的接口

- [抖音视频搜索](https://okdata.online/zh/apis/douyin/videos/search/) `douyin.videos.search`：$0.02/次 · 每页约 20 条视频
- [抖音视频评论](https://okdata.online/zh/apis/douyin/videos/comments/list/) `douyin.videos.comments.list`：$0.002/次 · 每页约 20 条评论

## 更多抖音内容

- [抖音 API](https://okdata.online/zh/apis/douyin/)
- [抖音 API Python 教程：搜索、视频、账号和评论（2026）](https://okdata.online/zh/guides/douyin-api-python/)
- [怎么在抖音星图按条件找达人并拿到报价单](https://okdata.online/zh/guides/douyin-xingtu-creator-rates/)
- [爬抖音、TikTok 一定要买代理 IP 吗？要花多少钱？](https://okdata.online/zh/answers/do-i-need-proxies-for-social-media-scraping/)
- [抖音的 a_bogus 参数是什么？要拿抖音数据一定得自己生成吗？](https://okdata.online/zh/answers/douyin-a-bogus-signature/)
- [怎么获取抖音评论者的 IP 属地，并按省份统计？](https://okdata.online/zh/answers/douyin-comment-ip-location/)
- [怎么导出抖音视频评论做情感分析？](https://okdata.online/zh/answers/douyin-export-comments-sentiment/)
- [怎么监控抖音上的品牌提及，每天拿到新发布的视频？](https://okdata.online/zh/answers/douyin-keyword-monitoring/)
- [为什么有些抖音链接是 /note/ 而不是 /video/？](https://okdata.online/zh/answers/douyin-note-vs-video-links/)
- [抖音评论采集用什么？官方接口、第三方 API、开源爬虫、采集工具 4 类方案怎么选（2026）](https://okdata.online/zh/compare/douyin-comment-scraping/)
- [抖音数据接口有哪些？官方开放平台、第三方 API、开源爬虫 4 类方案怎么选（2026）](https://okdata.online/zh/compare/douyin-data-apis/)
- [平台官方 API 和第三方数据接口怎么选（2026）](https://okdata.online/zh/compare/official-apis-vs-data-apis/)
- [自己爬还是按次调用数据接口：成本、维护和风险](https://okdata.online/zh/compare/scraping-vs-data-api/)
- [怎么选社交媒体数据 API（2026）](https://okdata.online/zh/compare/social-media-data-apis/)
