# 怎么导出某个话题下所有 YouTube 视频的评论

> 按关键词搜 YouTube，再把每条视频下的评论一页页拉进一个 CSV：两个接口、排序选项、Python 代码、官方配额限制和费用。

网页版：https://okdata.online/zh/guides/youtube-comments-export/

先用 YouTube 视频搜索找到视频，再对每条视频翻页调 YouTube 视频评论。下面的示例一共 9 次调用，花费 $0.02；失败的调用不扣费。

更新于 2026-11-12

要做的事：你在卖某个产品，或者准备卖，相关的测评视频下面有成千上万条评论，有买家也有观望的人。先搜出大家真正在看的那些视频，再把每条视频下的评论读进同一张表。最后得到一个 CSV，每行一条评论，带所属视频、内容、作者、点赞、回复数和日期，可以人工打标签，也可以交给模型归纳出吐槽和好评。

不需要 Google Cloud 项目，不用申请 API key，也不用申请配额。每次调用就是带着 key 发一个 HTTPS 请求。

## 分步操作

### 第一步：找到视频

调用[YouTube 视频搜索](https://okdata.online/zh/apis/youtube/videos/search/)，填 `query` 和 `sort`：`relevance`（默认，相关度）、`latest`（最新）或 `most_viewed`（播放最多）。一次调用返回约 20 条视频，每次 $0.004，每条有 `id`、`title`、`url`、频道信息 `author` 和 `metrics.views`。搜索结果里 `metrics.comments` 为 null，所以按播放量挑视频。

```bash
curl -G "https://api.okdata.online/v1/youtube/videos/search" \
  -H "Authorization: Bearer $OKDATA_API_KEY" \
  --data-urlencode 'query=robot vacuum review' \
  -d sort=most_viewed \
  -d fields=id,title,author.name,metrics.views
```

### 第二步：翻页读评论

把视频的 `id` 传给[YouTube 视频评论](https://okdata.online/zh/apis/youtube/videos/comments/list/)。`sort` 可选 `top`（默认，即 YouTube 的“热门评论”顺序）或 `latest`（从新到旧）。想看大多数观众看到的评论用 `top`；视频还在持续涨评论、想跟进最新动态时用 `latest`。

一次调用返回约 20 条评论，每次 $0.002。每条有 `id`、`text`、`author`（`name` 和 `username`，后者是 @ 开头的那个账号名）、`likes`、`replies`（下面有几条回复）和 `published_at`。要下一页，就把 `page.next_cursor` 原样作为 `cursor` 传回去；`page.has_more` 为 `false` 时停下。

```bash
curl -G "https://api.okdata.online/v1/youtube/videos/comments/list" \
  -H "Authorization: Bearer $OKDATA_API_KEY" \
  -d id=h4Lw0pZk3sE -d sort=top
```

### 第三步：用 Python 串起来

脚本留下播放量最高的 4 条视频，每条读 `MAX_PAGES` 页评论。每一页都是一次单独的调用，所以页数上限同时也是花费上限。

```python
import csv
import os
import requests

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


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


found = get("/v1/youtube/videos/search", query="robot vacuum review", sort="most_viewed")["data"]["items"]
videos = sorted(found, key=lambda v: v["metrics"]["views"] or 0, reverse=True)[:VIDEOS]

with open("youtube_comments.csv", "w", newline="", encoding="utf-8-sig") as f:
    out = csv.writer(f)
    out.writerow(["video_id", "video_title", "comment_id", "author", "likes", "replies", "published_at", "text"])
    for v in videos:
        cursor = None
        for _ in range(MAX_PAGES):
            body = get("/v1/youtube/videos/comments/list", id=v["id"], sort="top", **({"cursor": cursor} if cursor else {}))
            for c in body["data"]["items"]:
                out.writerow([v["id"], v["title"], c["id"], c["author"]["name"], c["likes"], c["replies"], c["published_at"], c["text"]])
            if not body["page"]["has_more"]:
                break
            cursor = body["page"]["next_cursor"]
```

`utf-8-sig` 会在文件开头写一个 BOM，Excel 打开时表情和外文才不会乱码。想读得更深，就调大 `MAX_PAGES`：4 条视频各读 10 页是 40 次评论调用，在搜索之外再花 $0.08。

## 注意事项

- **只有一级评论。** 能拿到每条评论的回复数，拿不到回复正文；这里的 `parent_id` 始终为 null。
- **日期是估算的。** `published_at` 是从“2 个月前”这类标签推算的，越早的评论日期越粗。
- **没有评论者属地。** YouTube 不显示这个信息，`ip_location` 为 null，并在 `meta.unavailable` 里注明。
- **删掉的视频不收钱。** 已经不存在的视频返回 `not_found`，不扣费。
- **官方配额。** 按 Google 的[配额计算页](https://developers.google.com/youtube/v3/determine_quota_cost)，新项目每天有 100 次 `search.list`，单独计算；其他方法合计每天 10,000 个单位，太平洋时间零点重置。[commentThreads.list](https://developers.google.com/youtube/v3/docs/commentThreads/list) 每次消耗 1 个单位，一次最多返回 100 条评论串。如果你已经有 Google 项目，主要是读评论，官方 API 更省钱；按话题批量跑时，通常是搜索配额先用完。
- **重试不会重复扣费。** 每次调用带一个 `Idempotency-Key` 请求头。24 小时内同样的请求配同样的 key，会直接拿回上次的结果，`meta.replayed` 为 `true`，不再扣费。

只导出单条视频的评论到表格，看[怎么把 YouTube 视频评论导出成 CSV](https://okdata.online/zh/answers/export-youtube-comments-csv/)。卡在每天的搜索次数上，看[YouTube 搜索配额用完怎么办](https://okdata.online/zh/answers/youtube-search-quota-exceeded/)。

## 示例花费

搜一页播放最多的扫地机器人测评（robot vacuum review）视频，再取播放量前 4 条视频各两页热门评论

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

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

## 在你的 AI 里用（MCP）

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

可以这样说：在 YouTube 搜 robot vacuum review，按播放量排序。挑播放最多的 4 条视频，每条取两页热门评论，整理成一张表：视频、评论内容、作者、点赞、回复数、日期。再把出现不止一次的吐槽点列出来。

```json
{
  "endpoint": "youtube.videos.search",
  "params": {
    "query": "claude code tutorial"
  },
  "idempotency_key": "<新的 UUID>"
}
```

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

## 本指南用到的接口

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

## 更多YouTube内容

- [YouTube API](https://okdata.online/zh/apis/youtube/)
- [怎么按关键词搜 YouTube 视频并拿到字幕](https://okdata.online/zh/guides/youtube-video-transcript/)
- [有没有一个 API 能同时监测品牌在 TikTok、YouTube 和 X 上的讨论？](https://okdata.online/zh/answers/social-listening-api-tiktok-youtube-x/)
- [几百个 YouTube 视频的字幕怎么批量下载？](https://okdata.online/zh/answers/bulk-youtube-transcripts/)
- [跑一个社媒数据任务之前，怎么提前知道要花多少钱？](https://okdata.online/zh/answers/estimate-data-api-cost-before-running/)
- [怎么把 YouTube 视频评论导出成 CSV 或 Excel？](https://okdata.online/zh/answers/export-youtube-comments-csv/)
- [抓取社交媒体上的公开数据合法吗？](https://okdata.online/zh/answers/is-scraping-public-social-media-data-legal/)
- [用平台官方 API 还是第三方社媒数据接口？](https://okdata.online/zh/answers/official-api-vs-third-party-social-data/)
- [平台官方 API 和第三方数据接口怎么选（2026）](https://okdata.online/zh/compare/official-apis-vs-data-apis/)
- [怎么选社交媒体数据 API（2026）](https://okdata.online/zh/compare/social-media-data-apis/)
- [评论接口](https://okdata.online/zh/roles/posts-comments-list/)
- [内容搜索接口](https://okdata.online/zh/roles/posts-search/)

## 资料来源

- [YouTube Data API: Quota calculator](https://developers.google.com/youtube/v3/determine_quota_cost) (读取于 2026-11-12)
- [YouTube Data API: CommentThreads: list](https://developers.google.com/youtube/v3/docs/commentThreads/list) (读取于 2026-11-12)
