# YouTube Comments Scraper — Export Video Comments & Likes (`intelscrape/youtube-comments-scraper`) Actor

YouTube Comments Scraper: export comments from any YouTube video, sorted by top or newest, with text, author, channel ID, likes, reply count, verified and channel-owner flags and age, plus a video details row with views, likes, comment count and top commenters. No API key, no quota.

- **URL**: https://apify.com/intelscrape/youtube-comments-scraper.md
- **Developed by:** [IntelScrape](https://apify.com/intelscrape) (community)
- **Categories:** Social media, Videos, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## YouTube Comments Scraper — Export Video Comments & Likes

![YouTube Comments Scraper — Export Video Comments & Likes](https://api.apify.com/v2/key-value-stores/hRabN9WfDGrT4nSvV/records/youtube-comments-scraper-banner.png)

🇨🇳 **YouTube 评论采集器**：导出任意 YouTube 视频的评论，可按热门或最新排序，包含正文、作者、频道 ID、点赞数、回复数、认证和频道主标记以及发布时间，并附带视频详情行：播放量、点赞数、评论总数和最活跃评论者。无需 API 密钥，无配额限制。

🇸🇬 **Pengikis Komen YouTube**: eksport komen daripada mana-mana video YouTube, susunan teratas atau terbaharu, dengan teks, pengarang, ID saluran, suka, bilangan balasan dan bendera pencipta, serta baris butiran video. Tiada kunci API, tiada kuota.

#### 🤖 NEW: Connect This To Your AI!

Use this actor from Claude, ChatGPT, Cursor or any MCP client through the **[IntelScrape MCP Server](https://apify.com/intelscrape/skip--trace)**, or call it directly over the Apify API.

#### 🏆 Featured Bots by IntelScrape

- [Skip Trace Pro](https://apify.com/intelscrape/skip-trace-pro)
- [TruePeopleSearch Scraper](https://apify.com/intelscrape/truepeoplesearch-scraper)
- [TikTok Email Scraper](https://apify.com/intelscrape/tiktok-scraper)
- [Amazon Product Reviews Scraper](https://apify.com/intelscrape/amazon-product-review-scraper)
- [Website Contact Scraper](https://apify.com/intelscrape/contact-info-scraper)
- [Skip Trace MCP Server](https://apify.com/intelscrape/skip--trace)

⚡ Works with n8n, Make, Zapier, Google Sheets and the Apify API.

![price](https://img.shields.io/badge/price-%240.50%20per%201K%20comments-blue) ![billing](https://img.shields.io/badge/billing-pay%20per%20comment-green) ![API key](https://img.shields.io/badge/API%20key-not%20required-brightgreen) ![quota](https://img.shields.io/badge/quota-none-orange)

**Bulk YouTube comment export (top or newest) with likes, replies and authors, plus video stats, without API keys or quotas.**

> **Honest coverage & billing:** YouTube may temporarily block heavy traffic; the actor retries and does not charge failed videos. You pay only for results actually delivered, and a built-in cost guard stops the run at your max-charge limit.

🌍 Built for teams in the **US, China and Singapore**, and anyone who needs this data in a spreadsheet or pipeline.

⭐ Found it useful? Please leave a review; it helps others find it.

⚖️ **Lawful business use only.** Collect public data only, and comply with the source site's terms, copyright and data-protection laws (GDPR, CCPA, China PIPL, Singapore PDPA).

*Examples below are illustrative; names and values may be fictional or out of date.*

### What is YouTube Comments Scraper?

Comments are where viewers say what they actually think: product feedback, feature requests, objections, praise and questions. The YouTube Data API makes you manage keys and quotas to read them. **YouTube Comments Scraper** reads them the way the YouTube website does, top or newest first, and returns clean rows with likes, reply counts and author channel IDs, plus a video details row with views, likes and the most active commenters.

### What does it do?

- **Any public video**: watch URLs, youtu.be links, Shorts, live replays or IDs
- **Top or newest** ordering, exactly as YouTube shows it
- **Comment data**: comment ID, text, author handle, author channel ID and URL, likes, reply count, verified flag, channel-owner flag, posted time text, approximate age in days, edited flag, direct comment link
- **Video details (on by default)**: title, channel, views, likes, total comment count, publish date, category, duration, keywords, average comment likes, top commenters and comment-to-view ratio
- **Bulk**: thousands of videos per run

### Why choose us over cheaper scrapers?

- **Honest output**: limits are documented, missing data is labeled, never invented
- **Clean, consistent schema** ready for Excel, Sheets, BI tools or an LLM
- **No account risk**: no logins, no cookies, no API keys
- **Pay per result** with a built-in cost guard; no subscription, failed items are never charged
- **Fast and light**: no residential proxy, so runs finish in seconds and stay cheap
- **Maintained by IntelScrape** and fixed fast when the source changes

### Who is it for?

- **Product and market research**: what viewers like and dislike about products in reviews
- **Brand monitoring** on influencer videos
- **Sentiment analysis and AI datasets** from real audience language
- **Creators**: find frequently asked questions for the next video
- **Lead generation**: find engaged commenters in a niche (respect platform rules)
- **Competitor analysis**: audience reaction to competitor launches
- **Education and research**: public discourse datasets around news and science videos

### How to use it

#### In Apify Console (no code)

1. Click **Try for free** / **Start**. The form is prefilled with a working example.
2. Change the inputs (see examples below).
3. Click **Start**, then export the results as **JSON, CSV, Excel, XML or HTML**, or open them in Google Sheets.
4. Optional: **Schedule** the actor to run hourly, daily or weekly.

#### Via API

```bash
curl -X POST "https://api.apify.com/v2/acts/intelscrape~youtube-comments-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"videos": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ", "https://www.youtube.com/watch?v=jNQXAC9IVRw"], "maxCommentsPerVideo": 100}'
```

Or use the official [Apify JavaScript](https://docs.apify.com/api/client/js/) and [Python](https://docs.apify.com/api/client/python/) clients:

```python
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("intelscrape/youtube-comments-scraper").call(run_input={"videos": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ", "https://www.youtube.com/watch?v=jNQXAC9IVRw"], "maxCommentsPerVideo": 100})
for item in client.dataset(run["default_dataset_id"]).iterate_items():
    print(item)
```

#### With AI agents (MCP)

Add Apify's MCP server (`https://mcp.apify.com`) or the [IntelScrape MCP Server](https://apify.com/intelscrape/skip--trace) to Claude Desktop, Cursor, ChatGPT or any MCP client, then ask in plain language, e.g. *"Run intelscrape/youtube-comments-scraper with the default input and summarise the results."*

### Input examples

**Two videos, top comments (default)**

```json
{
  "videos": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ", "https://www.youtube.com/watch?v=jNQXAC9IVRw"],
  "maxCommentsPerVideo": 100
}
```

**Newest 1,000 comments on a launch video**

```json
{
  "videos": ["https://youtu.be/VIDEO_ID"],
  "sortBy": "newest",
  "maxCommentsPerVideo": 1000
}
```

### Output fields

| Field | Description |
|---|---|
| `videoId / videoTitle / commentId / commentUrl` | Identity |
| `text / publishedTimeText / approxAgeDays / edited` | Comment |
| `author / authorChannelId / authorChannelUrl / authorIsVerified / authorIsChannelOwner` | Author |
| `likes / replyCount` | Engagement |
| `type = video-details rows` | title, channel, views, likes, commentCount, publishDate, category, durationSeconds, keywords, avgCommentLikes, topCommenters, commentToViewRatio |

#### Sample output

```json
{
  "videoId": "dQw4w9WgXcQ",
  "videoTitle": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
  "text": "Gonna flag this for nudity so I can rick roll the YouTube staff",
  "author": "@Oatman69",
  "likes": 569000,
  "replyCount": 1200,
  "authorIsChannelOwner": false
}
```

### Pricing (pay per event)

| Event | When it is charged | Price |
|---|---|---|
| **Actor start** | once per run | $0.005 |
| **Comment** | per top-level comment | $0.0005 |
| **Video details** | per video details row (on by default; turn off to skip) | $0.002 |

#### Cost examples

| Run | Cost |
|---|---|
| Default run: 200 comments + 2 video rows | $0.109 |
| 50 videos × 500 comments | $12.605 |
| Daily newest 100 on 10 videos | $0.525 |

Platform usage is included in these prices. Set **Max charge per run** in the run options to cap spend; the actor stops cleanly when the limit is reached and keeps everything collected so far.

### Tips for best results

- Use newest with a schedule to monitor fresh reactions to a launch.
- Top comments surface the most-liked opinions quickly.
- Replies are counted (replyCount) but not exported in this version.
- Like counts above 1,000 are rounded by YouTube (e.g. 69K).

### FAQ

#### Do I need a YouTube API key?

No, and there is no daily quota.

#### Are replies included?

Reply counts are; reply texts are not in this version.

#### What if comments are off?

The video is listed with a note and not charged.

#### Why are like counts rounded?

YouTube shows rounded counts above 1,000 (e.g. 69K); we convert them to numbers.

#### Can I scrape a whole channel's comments?

Get video URLs with our YouTube Channel Scraper, then pass them here.

#### Is it legal?

It reads publicly visible comments. Use personal data lawfully.

#### How do I find the most liked comments?

Keep sortBy on top: YouTube ranks by a mix of likes, replies and recency, so the first rows are the most influential opinions. Sort the dataset by likes for a strict ranking.

#### Can I analyse sentiment?

Export the text column to your favourite NLP tool or LLM. Comment text is returned clean, without HTML, ready for analysis.

### Honest limits

- YouTube may temporarily block heavy traffic; the actor retries and does not charge failed videos.
- Replies are not exported.
- Comment timestamps are relative (e.g. "2 years ago"); approxAgeDays converts them roughly.
- Very large comment sections take longer; cap with maxCommentsPerVideo.

### Related IntelScrape bots

- [YouTube Channel Scraper](https://apify.com/intelscrape/youtube-channel-scraper): subscribers, views & engagement per channel
- [YouTube Shorts Scraper](https://apify.com/intelscrape/youtube-shorts-scraper): every Short on a channel with views
- [YouTube Playlist Scraper](https://apify.com/intelscrape/youtube-playlist-scraper): all videos in any playlist
- [YouTube Transcript Scraper](https://apify.com/intelscrape/youtube-transcript-scraper-pro): captions & timestamps in bulk
- [Brand Mentions Monitor](https://apify.com/intelscrape/brand-mentions-monitor): mentions from news, HN & Bluesky
- [Skip Trace MCP Server](https://apify.com/intelscrape/skip--trace): IntelScrape tools for AI agents

### Legal

This actor collects publicly available data only. You are responsible for using the results lawfully and in line with the source's terms and applicable privacy laws (GDPR, CCPA, PIPL, PDPA). Process personal data only with a legitimate purpose. IntelScrape is not affiliated with, endorsed by or sponsored by the data source; all trademarks belong to their owners.

# Actor input Schema

## `videos` (type: `array`):

YouTube video URLs (watch, youtu.be, shorts, live) or 11-character IDs.

## `maxCommentsPerVideo` (type: `integer`):

Top-level comments per video.

## `sortBy` (type: `string`):

YouTube's own comment ordering.

## `videoDetails` (type: `boolean`):

Add one row per video with title, channel, views, likes, comment count, publish date, keywords and top commenters. Charged per video.

## `proxyConfiguration` (type: `object`):

Not needed normally. The actor switches to Apify Proxy automatically if the source starts rate-limiting.

## Actor input object example

```json
{
  "videos": [
    "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "https://www.youtube.com/watch?v=jNQXAC9IVRw"
  ],
  "maxCommentsPerVideo": 100,
  "sortBy": "top",
  "videoDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "videos": [
        "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
        "https://www.youtube.com/watch?v=jNQXAC9IVRw"
    ],
    "videoDetails": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("intelscrape/youtube-comments-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "videos": [
        "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
        "https://www.youtube.com/watch?v=jNQXAC9IVRw",
    ],
    "videoDetails": True,
}

# Run the Actor and wait for it to finish
run = client.actor("intelscrape/youtube-comments-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "videos": [
    "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "https://www.youtube.com/watch?v=jNQXAC9IVRw"
  ],
  "videoDetails": true
}' |
apify call intelscrape/youtube-comments-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,intelscrape/youtube-comments-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/aAUHYLUi1RLwb86gZ/builds/ZamF6eREjIz6dhZV9/openapi.json
