mcpField
S
scraping-youtube-comments

scraping-youtube-comments

github.com/apidojo-ioデータ・データベース1809 回インストール24 週間前に更新
リポジトリ

scraping-youtube-comments について

Apifyを使ってYouTube動画のコメントを収集するスキルです。動画、チャンネル、検索語を指定でき、分析用にコメント本文、投稿者、反応データを取得します。

主な機能

  1. 01コメントと返信の収集
  2. 02URL、チャンネル、検索語で検索
  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 — チャンネル、再生リスト、ショート動画、検索結果
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 は非常に長いコメントを切り詰める場合があります。全文の取得には返信の取得が必要です。

コメント