Skip to main content
skill CX Codex

scraping-youtube-comments — Claude Code skill: how to install

Pulls comments, likes, and reply counts from YouTube videos using Apify. Useful for audience feedback and sentiment analysis.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add apidojo-io/apidojo-skills --skill scraping-youtube-comments -a claude-code
Open on GitHub

What scraping-youtube-comments does

This skill extracts comment datasets from YouTube videos, Shorts, and search results. It routes requests to the apidojo~youtube-comments-scraper actor on Apify. Each entry provides the commenter display name, text content, like count, reply count, and published timestamp.

Execution happens through three pathways. The agent can use the helper script node scripts/run_actor.js, call an Apify MCP tool, or trigger runs via curl. Output formats include formatted tables in chat, CSV files, and JSON. If a creator disabled comments, the scraper simply returns 0 items. Deleted entries may appear with empty text fields.

Without the APIFY_TOKEN environment variable, the scraper cannot run.

What it helps with

  • collect comment threads and replies from any YouTube video
  • export author names, comment text, and like counts to CSV or JSON
  • filter out deleted comments with empty text strings

Example prompts for the agent

  • Collect all comments for video <url> and save them to a JSON file.
  • Scrape viewer comments and like counts from <url> as a CSV.
  • Fetch the top comments and replies from the video at <url>.

How to install scraping-youtube-comments

1Skills CLI (Vercel)

npx skills add apidojo-io/apidojo-skills --skill scraping-youtube-comments -a claude-code

2Manually: put the files in place

~/.claude/skills/scraping-youtube-comments/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/scraping-youtube-comments/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about scraping-youtube-comments

How do I install scraping-youtube-comments in Claude Code?

Run npx skills add apidojo-io/apidojo-skills --skill scraping-youtube-comments -a claude-code. The skill definition will be added to ~/.claude/skills/scraping-youtube-comments/SKILL.md.

What fields does the scraper return?

The actor returns comment IDs, author names, comment text, like counts, total reply counts, and published dates. It also indicates whether an item is a top-level comment or a reply.

What credentials do I need before running this skill?

You need an Apify API token. Set the APIFY_TOKEN environment variable in your terminal session or store it inside a .env file.

Source text

SKILL.md · Apache-2.0
---
name: scraping-youtube-comments
description: >
  Scrapes comments from any YouTube video using apidojo's YouTube scraper on Apify.
  Triggers when the user asks to: get all comments on a YouTube video, export YouTube
  comment data, scrape what viewers say about a YouTube video, fetch comment text and
  likes from a YouTube URL, collect comment threads from a YouTube video, or download
  audience feedback from a YouTube video. Returns commenter username, comment text,
  like count, reply count, and timestamp per comment.
  Ideal for sentiment researchers, product teams, and content analysts.
license: Apache-2.0
metadata:
  author: apidojo
  version: "1.0"
  apify-actor: apidojo/youtube-scraper
---

# Scraping YouTube Comments

Exports the full comment dataset from any YouTube video. Returns comment text, author, and engagement for downstream analysis.

## Prerequisites

- `APIFY_TOKEN` environment variable set
- Optional: Apify MCP server installed

## Inputs

| Parameter | Type | Required | Default | Notes |
|-----------|------|----------|---------|-------|
| `startUrls` | array | Optional | `[]` | YouTube URLs — channels, playlists, Shorts, search results |
| `youtubeHandles` | array | Optional | `[]` | YouTube channel handles (e.g. `@kurzgesagt`) |
| `getTrending` | boolean | Optional | `false` | Retrieve trending videos |
| `keywords` | array | Optional | `[]` | Search keywords |
| `gl` | string | Optional | `us` | Country code for results (e.g. `US`, `GB`) |
| `hl` | string | Optional | `en` | Language code (e.g. `en`, `de`) |
| `uploadDate` | string | Optional | `all` | Upload date filter: `any`, `hour`, `today`, `week`, `month`, `year` |
| `duration` | string | Optional | `all` | Duration filter: `any`, `short`, `long` |
| `features` | string | Optional | `all` | Feature filter: `4k`, `hd`, `live`, `cc`, `3d`, `hdr`, etc. |
| `sort` | string | Optional | `r` | Sort order for search results |
| `maxItems` | number | Optional | Unlimited | Maximum videos to return |
| `customMapFunction` | string | Optional | — | JavaScript function to transform each output object |

## Workflow

```
Progress:
- [ ] Step 1: Validate video URLs
- [ ] Step 2: Run youtube-scraper (comment mode)
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Deliver comment dataset
```

### Step 2: Run the Actor


**Recommended — run_actor.js (handles waiting, output, and file saving automatically):**
```bash
# 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` must be set in environment or `.env` file.

**If Apify MCP is available:**
```
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 fallback:**
```bash
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}'
```

Save `id` as `RUN_ID`. Poll until `status = SUCCEEDED`:
```bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_TOKEN" | grep '"status"'
```

Fetch results:
```bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN&format=json"
```

### Step 3: Handle Edge Cases

- **Comments disabled**: Returns 0 — inform user.
- **Live streams**: Comment data may be incomplete for live/premiere videos.
- **Deleted comments**: May appear as empty text strings — filter out rows with `text: ""`.

## Output Format

```
# 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
```

## Troubleshooting

**Comments disabled:** Creator has turned off comments — cannot be retrieved.
**Truncated text:** YouTube API may truncate very long comments; full text requires reply fetching.

© apidojo · Apache-2.0 · apidojo-io/apidojo-skills

Similar skills

All skills for Browser and scraping →

From the same set96

finding-podcast-hosts-for-outreach Find podcast hosts for PR and guest pitches through Apify Twitter scrapers. Use it when you need a topic-focused outreach list. CX Codex +1 782installs scraping-instagram-location-posts Extracts Instagram posts tagged at venues or geographic places via Apify. Helpful for gathering UGC content and attendee feedback. CX Codex +1 781installs building-journalist-outreach-list-from-twitter Builds journalist and media contact lists for a given beat by scraping Twitter/X through Apify. Useful when you need names before a press pitch. CX Codex +1 780installs scraping-tiktok-comments Exports the comment dataset of any TikTok video through apidojo's scraper on Apify: author, text, likes, replies, timestamp. Handy when you need to read what viewers actually wrote. CX Codex +1 778installs discovering-viral-tiktok-content-trends This skill finds viral TikTok formats in a chosen niche and breaks down hashtags, reach, engagement, and hooks. Use it when planning content angles. CX Codex +1 777installs analyzing-competitor-youtube-content-strategy Audits a competitor’s YouTube strategy by topic, format, publishing cadence, views, and engagement. Use it to compare two channels or find content gaps. CX Codex +1 776installs finding-ecommerce-brands-for-outreach Builds a list of e-commerce and DTC brands on Instagram and TikTok by product-category hashtags. Useful when you need an outreach list instead of scrolling profiles by hand. CX Codex +1 776installs finding-hospitality-brands-on-instagram Finds hotels and resorts on Instagram via Apify, scoring hospitality accounts into lead tiers for B2B sales. CX Codex +1 774installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor