mcpField
S
scraping-youtube-comments

scraping-youtube-comments

github.com/apidojo-io数据与数据库1809 次安装24 周前更新
代码仓库

关于 scraping-youtube-comments

此技能通过 Apify 抓取 YouTube 视频评论数据,供研究者和分析人员进行后续分析。可按视频、频道、搜索词等指定范围,并导出评论文本、作者和互动数据。

主要功能

  1. 01抓取视频评论及回复
  2. 02按 URL、频道或关键词搜索
  3. 03设置地区、语言和筛选条件
  4. 04限制视频数量并转换输出
  5. 05获取作者与互动数据

适用场景

  1. 01分析视频评论反馈
  2. 02比较不同视频的互动情况
  3. 03按关键词查找相关视频评论

MCP 相关

可选使用 Apify MCP 的 apify:run-actor 工具调用 apidojo~youtube-comments-scraper;也支持通过脚本或 REST API 运行。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/apidojo-io/apidojo-skills --skill scraping-youtube-comments

安装后在 Claude Code 中输入/scraping-youtube-comments确认已加载。

详细介绍

抓取 YouTube 评论

导出任意 YouTube 视频的完整评论数据集。返回评论文本、作者和互动数据,供后续分析使用。

前提条件

  • 已设置 APIFY_TOKEN 环境变量
  • 可选:已安装 Apify MCP 服务

输入

参数类型必填默认值备注
startUrls数组可选[]YouTube URL——频道、播放列表、Shorts、搜索结果
youtubeHandles数组可选[]YouTube 频道用户名(例如 @kurzgesagt)
getTrending布尔值可选false获取热门视频
keywords数组可选[]搜索关键词
gl字符串可选us结果的国家/地区代码(例如 US、GB)
hl字符串可选en语言代码(例如 en、de)
uploadDate字符串可选all上传日期筛选条件:any、hour、today、week、month、year
duration字符串可选all时长筛选条件:any、short、long
features字符串可选all功能筛选条件:4k、hd、live、cc、3d、hdr 等
sort字符串可选r搜索结果的排序方式
maxItems数字可选不限返回的视频数量上限
customMapFunction字符串可选—用于转换每个输出对象的 JavaScript 函数

工作流

Progress:
- [ ] Step 1: Validate video URLs
- [ ] Step 2: Run youtube-scraper (comment mode)
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Deliver comment dataset
步骤 2:运行 Actor

推荐方式——run_actor.js(自动处理等待、输出和文件保存):

# Quick answer (prints table to chat)
node scripts/run_actor.js \
  --actor "apidojo~youtube-comments-scraper" \
  --input '{"param": "value"}'

# Save as CSV
node scripts/run_actor.js \
  --actor "apidojo~youtube-comments-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.csv --format csv

# Save as JSON
node scripts/run_actor.js \
  --actor "apidojo~youtube-comments-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.json --format json

必须在环境或 .env 文件中设置 APIFY_TOKEN。

如果 Apify MCP 可用:

Tool: apify:run-actor
Actor: "apidojo~youtube-comments-scraper"
Input:
{
  "videoUrls": ["https://www.youtube.com/watch?v=<VIDEO_ID>"],
  "maxComments": 200,
  "includeReplies": false
}

REST API 备用方案:

curl -X POST \
  "https://api.apify.com/v2/acts/apidojo~youtube-comments-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"videoUrls": ["<url>"], "maxComments": 200}'

将 id 保存为 RUN_ID。轮询直至 status = SUCCEEDED:

curl "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_TOKEN" | grep '"status"'

获取结果:

curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN&format=json"
步骤 3:处理边缘情况
  • 已停用评论: 返回 0 条——请告知用户。
  • 直播: 直播或首映视频的评论数据可能不完整。
  • 已删除的评论: 文本可能为空字符串——请筛除 text: "" 的行。

输出格式

# YouTube Comment Dataset
Video: <url> | Comments collected: N | Includes replies: YES/NO

| Comment ID | Author | Text | Likes | Replies | Timestamp |
|------------|--------|------|-------|---------|-----------|
| ...        | ...    | ...  | ...   | ...     | ...       |

Available fields: id, authorDisplayName, textDisplay, likeCount, totalReplyCount,
publishedAt, isReply, parentId

故障排除

已停用评论: 创作者已关闭评论,因此无法获取。 文本被截断: YouTube API 可能会截断特别长的评论;要获取完整文本,需要抓取回复。

评论

支持 Markdown