# 怎么把一条 TikTok 视频的评论全部导出成 CSV 或 Excel？

> 把 TikTok 视频评论导出成 Excel 能直接打开的 CSV：正文、点赞、回复数、时间和评论者。附脚本、每 1,000 条的费用，以及导不出来的部分。

网页版：https://okdata.online/zh/answers/export-tiktok-comments-csv/

**简短回答：**用 TikTok 视频评论接口（/v1/tiktok/videos/comments/list）逐页拉取，边拉边写进 CSV。每次调用约 50 条，$0.002，一条 2,000 评论的视频导完是 $0.08，1,000 条评论 $0.04。每行包括评论正文、点赞、回复数、时间和评论者。

你们的一条产品视频在 TikTok 上火了，底下有 2,000 条评论。团队想把评论放进 Excel，逐条标出吐槽、提问和功能建议。手动复制到第一百条就会想放弃。下面这段脚本几分钟就能把所有一级评论写进一个 CSV。

## 先算清楚：有多少评论，要花多少钱

视频的评论数能提前告诉你账单。[TikTok 视频详情](/zh/apis/tiktok/videos/get/)返回的 `metrics.comments` 就是它，查一次 $0.002。之后按页计费：

| 评论数 | 调用 [TikTok 视频评论](/zh/apis/tiktok/videos/comments/list/)的次数 | 费用 |
|---|---|---|
| 500 | 10 | $0.02 |
| 2,000 | 40 | $0.08 |
| 10,000 | 200 | $0.40 |

## 导出脚本

传入视频链接，脚本先查出视频 ID，再一页页往下翻，直到 TikTok 说没有更多。文件用 `utf-8-sig` 编码，Excel 打开时表情符号和中文、阿拉伯文都不会乱码。

```python
import csv, os, sys, 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

video = get("tiktok/videos/get", url=sys.argv[1])["data"]["item"]
print("TikTok 显示评论数", video["metrics"]["comments"])

with open(f"comments-{video['id']}.csv", "w", newline="", encoding="utf-8-sig") as f:
    w = csv.writer(f)
    w.writerow(["published_at", "author", "text", "likes", "replies", "location"])
    cursor = None
    while True:
        body = get("tiktok/videos/comments/list", id=video["id"], **({"cursor": cursor} if cursor else {}))
        for c in body["data"]["items"]:
            w.writerow([c["published_at"], c["author"]["username"], c["text"], c["likes"], c["replies"], c["ip_location"]])
        if not body["page"]["has_more"]:
            break
        cursor = body["page"]["next_cursor"]
```

运行方式：`python export.py "https://www.tiktok.com/@user/video/7305085486984858894"`。App 分享按钮生成的短链也能用。

## 为什么导出的行数比 TikTok 显示的少

TikTok 显示的评论数包含了楼中楼回复。这个接口返回的是一级评论，每条带一个 `replies` 回复数，但不带回复的正文。被 TikTok 过滤或删除的评论也不会出现。所以一条显示 2,000 评论的视频，导出来少几百行很正常，差的大多是回复。

还有几个细节：`ip_location` 只有 TikTok 展示地区时才有值；每一页单独计费；某一页失败不收钱，用同一个 `cursor` 重试即可。

拿到表格之后，建议先按 likes 从高到低排一遍。点赞最多的几十条评论，往往就代表了大多数人的看法，先读它们，再决定要不要逐条打标签。

## 其他办法

- **手动复制或浏览器插件**：一条视频、评论不到一百条时够用。
- **TikTokApi**：免费，但要驱动浏览器，放在服务器上经常拿到空响应。
- **TikTok Research API**：有评论接口，只对通过审核的学术研究者开放。

要横向比较多条视频、多个品牌的评论，可以看[口碑分析方案](/zh/solutions/word-of-mouth/)。

## 用到的接口

- [TikTok 视频评论](https://okdata.online/zh/apis/tiktok/videos/comments/list/) `tiktok.videos.comments.list`：$0.002/次 · 每页约 50 条评论
- [TikTok 视频详情](https://okdata.online/zh/apis/tiktok/videos/get/) `tiktok.videos.get`：$0.002/次

更新于 2026-11-12
