mcpField
E
extracting-youtube-comments-for-research

extracting-youtube-comments-for-research

github.com/apidojo-io营销与增长1823 次安装24 周前更新
代码仓库

关于 extracting-youtube-comments-for-research

用于采集和分析 YouTube 评论的研究技能,适合研究受众情绪、问题和产品反馈的团队。它结合评论筛选与结构化分析流程。

主要功能

  1. 01采集视频评论
  2. 02按频道、关键词或网址搜索
  3. 03筛选并清理评论数据
  4. 04分析情绪、问题和反馈
  5. 05生成结构化研究报告

适用场景

  1. 01衡量观众对视频的反应
  2. 02发现观众反复提出的问题
  3. 03识别评论中的产品反馈

MCP 相关

如有 Apify MCP 服务,可通过它运行 Apify Actor;也支持命令行脚本或 REST API。

安装

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

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

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

详细介绍

提取 YouTube 评论用于研究

抓取 YouTube 视频评论,用于情感分析、问题挖掘和产品反馈。与 TikTok 相比,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: Scrape comments from target videos
- [ ] Step 2: Filter and clean dataset
- [ ] Step 3: Analyze by research goal
- [ ] Step 4: Extract top themes and insights
- [ ] Step 5: Deliver comment research report
步骤 1:抓取评论

推荐——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:
{
  "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。

评论

支持 Markdown