SuperAPI AI 工具集

extracting-youtube-comments-for-research

写作与研究

查看项目

更新于 10-14 13:43

技能介绍

用途

该技能用于提取和分析 YouTube 评论,以支持受众研究,包括情感分析、问题挖掘和产品反馈收集。资料指出,YouTube 评论比 TikTok 评论更审慎,观众在评论前会投入更多时间。

前置条件

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

输入参数

参数 类型 必填 默认值 说明
startUrls array 可选 [] YouTube 网址——频道、播放列表、Shorts、搜索结果
youtubeHandles array 可选 [] YouTube 频道句柄(如 @kurzgesagt)
getTrending boolean 可选 false 获取热门视频
keywords array 可选 [] 搜索关键词
gl string 可选 us 结果的国家代码(如 US、GB)
hl string 可选 en 语言代码(如 en、de)
uploadDate string 可选 all 上传日期筛选:any、hour、today、week、month、year
duration string 可选 all 时长筛选:any、short、long
features string 可选 all 特性筛选:4k、hd、live、cc、3d、hdr 等
sort string 可选 r 搜索结果的排序方式
maxItems number 可选 无限制 返回的最大视频数
customMapFunction string 可选 — 用于转换每个输出对象的 JavaScript 函数

工作流程

  1. 从目标视频抓取评论
  2. 过滤并清洗数据集
  3. 按研究目标分析
  4. 提炼主要主题与洞察
  5. 交付评论研究报告

步骤 1:抓取评论

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

# 快速回答(在聊天中打印表格)
node scripts/run_actor.js \
  --actor "apidojo~youtube-comments-scraper" \
  --input '{"param": "value"}'

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

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

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

如果 Apify MCP 可用:

工具:apify:run-actor Actor:"apidojo~youtube-comments-scraper" 输入:

{
  "startUrls": [{"url": "[VIDEO_URL_1]"}, {"url": "[VIDEO_URL_2]"}],
  "type": "comments",
  "maxComments": 500
}

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 '{"startUrls": [{"url": "[VIDEO_URL]"}], "type": "comments", "maxComments": 500}'

步骤 2:清洗数据集

  • 移除少于 8 个词的评论(通常只有表情符号或“great video!”)
  • 移除自我推广评论(包含外部链接)
  • 移除创作者自己的回复(将 authorName 与频道名匹配)
  • 若设置了 min_likes_on_comment,则应用该过滤条件

步骤 3:按目标分析

  • 问题:包含 "?"、"how do you"、"what is"、"can you"
  • 痛点:"I struggle"、"I can't"、"problem is"、"doesn't work"
  • 产品反馈:产品提及 + 观点信号
  • 情感:标准词汇分类器(正面/负面/中性)

comment_importance = likeCount * 0.60 + replyCount * 10 * 0.40

步骤 4:边界情况

  • 评论已关闭:记录说明;尝试同频道的其他视频
  • 大多为非英语:报告语言分布;如有需要则过滤为英语
  • 垃圾信息泛滥:过滤掉同一用户名出现超过 3 次的内容
  • 评论区被刷屏:超过 50% 为协同主题 → 标记为 BRIGADED

输出格式

# YouTube Comment Analysis
Videos: [N] | Comments analyzed: [N] | After filtering: [N] | Date: [DATE]

## Sentiment (if goal = sentiment)
Positive: [X%] | Negative: [X%] | Neutral: [X%]

## Top 10 Most-Liked Comments
| # | Comment (excerpt) | Likes | Replies |
|---|------------------|-------|---------|

## Key Themes
| Theme | Frequency | Avg Likes | Example |
|-------|-----------|-----------|---------|

## Most Asked Questions
1. "[question]" — [N] viewers

故障排除

  • 返回评论很少:YouTube 限制部分视频的访问;尝试同频道中评论较多的视频。
  • 多为表面赞美:使用 min_likes_on_comment = 5 过滤出实质性评论。
  • 研究目标未出现:受众可能不在 YouTube 上以这种方式参与;该细分领域可尝试 Reddit 或 TikTok。

适用场景

适用于需要针对 YouTube 视频评论进行受众研究、情感分析、问题挖掘与产品反馈收集的场景。