scraping-youtube-comments について
Apifyを使ってYouTube動画のコメントを収集するスキルです。動画、チャンネル、検索語を指定でき、分析用にコメント本文、投稿者、反応データを取得します。
主な機能
- 01コメントと返信の収集
- 02URL、チャンネル、検索語で検索
- 03地域、言語、条件の指定
- 04動画数の制限と出力変換
- 05投稿者と反応データの取得
活用シーン
- 01動画への反応の分析
- 02動画間のエンゲージメント比較
- 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 は非常に長いコメントを切り詰める場合があります。全文の取得には返信の取得が必要です。
コメント
Markdown 対応