extracting-youtube-comments-for-research
extracting-youtube-comments-for-research について
YouTube コメントを収集・分析するリサーチスキルです。視聴者の感情や質問、製品フィードバックを調べるチーム向けに、コメントの整理から分析までを支援します。
主な機能
- 01動画コメントの収集
- 02チャンネル、キーワード、URLで検索
- 03コメントデータの選別と整理
- 04感情、質問、フィードバックの分析
- 05構造化された調査レポートの作成
活用シーン
- 01動画への視聴者の反応測定
- 02視聴者からの頻出質問の特定
- 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動画のコメントを取得します。YouTubeのコメントはTikTokよりも熟考された内容です。視聴者はコメントする前に、より多くの時間をかけています。
前提条件
APIFY_TOKEN環境変数が設定されていること- 任意:Apify MCP サーバーがインストールされていること
入力
| パラメーター | 型 | 必須 | デフォルト | 備考 |
|---|---|---|---|---|
startUrls | 配列 | 任意 | [] | YouTubeのURL — チャンネル、再生リスト、ショート、検索結果 |
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
APIFY_TOKENは環境または.envファイルに設定する必要があります。
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語未満のコメントを削除します(通常は絵文字だけ、または「素晴らしい動画!」のようなコメントです)
- 自己宣伝のコメントを削除します(外部リンクを含むもの)
- 投稿者自身の返信を削除します(
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を試してください。