# 🎁 FREE YouTube Comments Scraper (only cover platform usage) (`lofomachines/free-youtube-comments-scraper`) Actor

Free Extract YouTube comments and replies from any video URL in bulk. Rich author, engagement and video fields, plus optional AI sentiment and intent labels (option for paying users).

- **URL**: https://apify.com/lofomachines/free-youtube-comments-scraper.md
- **Developed by:** [Lofomachines](https://apify.com/lofomachines) (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

from $0.15 / 1,000 comments

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## YouTube Comments Scraper — Extract Comments & Replies from Any Video URL (Bulk)

**Paste YouTube video links, get every comment in a clean spreadsheet.** This YouTube comment scraper extracts comments, replies, likes, author profiles and full video context from any YouTube URL — one video or thousands — and exports everything to Excel, CSV, JSON or straight into your own app.

No API key. No Google login. No quota limits. No cookies. Just paste links and run.

> ⚡ **Fast and cheap:** hundreds of comments per second across videos, engineered to keep your compute costs low even on large bulk jobs.
> 🤖 **Optional AI enrichment:** automatically tag every comment with **sentiment** and **intent** (praise, criticism, suggestion, question, irony and 15 more).

***

### ✨ What this Actor does

Extract public YouTube comments at scale, with all the context you need to actually use them:

- ✅ **Comments and replies** — full threads, not just top-level comments
- ✅ **Bulk mode** — drop in an unlimited list of video URLs and process them together
- ✅ **All YouTube link formats** — regular videos, **Shorts**, live replays, `youtu.be` short links, even bare video IDs
- ✅ **Sort by Top or Newest** — relevance for research, recency for monitoring and alerts
- ✅ **Date filter** — collect only comments posted after a date you pick, ideal for daily monitoring
- ✅ **Rich author data** — display name, handle, channel URL, avatar, verified and creator badges
- ✅ **Engagement signals** — likes per comment, reply counts, pinned comments, hearted-by-creator
- ✅ **Full video context on every row** — title, description, views, likes, channel, subscribers, publish date and more
- ✅ **Ready-to-filter extras** — links, @mentions, hashtags, timestamps, emoji and word counts, all pre-extracted
- ✅ **AI sentiment & intent** *(optional, any paid plan)* — turn raw comments into insight in one click
- ✅ **Export anywhere** — Excel, CSV, JSON, XML, or via API and integrations

***

### 🎯 Who is it for?

| You are a… | You use it to… |
|---|---|
| **Marketer / Brand manager** | Track how audiences react to campaigns, launches and ads |
| **Content creator / YouTuber** | Find the questions, requests and video ideas hiding in your comments |
| **Market researcher** | Mine authentic, unfiltered opinions about products and categories |
| **E-commerce & product team** | Discover complaints, feature requests and objections before they hurt sales |
| **Agency** | Deliver audience and competitor reports without manual copy-paste |
| **Data scientist / AI team** | Build labelled datasets for NLP, sentiment and recommendation models |
| **Community & support manager** | Spot unanswered questions and negative sentiment early |
| **SEO / Growth specialist** | Harvest the real language your audience uses for keywords and copy |

***

### 💡 Popular use cases

#### 1. Audience sentiment analysis

Measure how viewers actually feel about a video, a product or a campaign. Enable AI enrichment and get a **positive / negative / neutral** breakdown plus intent labels — no manual tagging, no spreadsheets full of formulas.

#### 2. Competitor & market research

Scrape comments from competitor videos in bulk and find out what their customers praise, criticise and keep asking for. It is the cheapest customer research you will ever run.

#### 3. Content idea mining

Filter comments by the **question** and **suggestion** intents to get a ready-made backlog of topics your audience is literally asking for.

#### 4. Product feedback & feature requests

Pull comments from review and unboxing videos to surface recurring complaints, missing features and buying objections.

#### 5. Brand monitoring & reputation tracking

Sort by **Newest first**, schedule the Actor to run daily, and get alerted to negative comments while they are still fresh.

#### 6. Influencer vetting

Check whether an influencer's engagement is genuine: real conversations, or spam and bot replies?

#### 7. Lead & community discovery

Build lists of engaged, verified commenters in your niche, complete with channel links.

#### 8. Training data for AI models

Generate large, clean, labelled comment datasets for sentiment analysis, moderation and NLP research.

***

### 🚀 How to use it

1. Open the Actor and paste one or more **YouTube video URLs**
2. Choose **how many comments** you want per video
3. Pick **Top comments** or **Newest first**
4. Decide whether to **include replies** and whether to **enrich with AI**
5. Click **Start** — results appear live and can be exported at any time

That's it. There is nothing to install, authenticate or configure.

***

### 📥 Input example

```json
{
  "videoUrls": [
    "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "https://youtu.be/9bZkp7q19f0",
    "https://www.youtube.com/shorts/abcdefghijk"
  ],
  "maxComments": 500,
  "sortBy": "newest",
  "onlyCommentsAfter": "7 days",
  "includeReplies": true,
  "enrichComments": true
}
```

| Field | Description |
|---|---|
| `videoUrls` | One or more YouTube video links. Videos, Shorts, live replays, `youtu.be` links and plain video IDs all work. |
| `maxComments` | How many comments to collect per video. Use `0` for no limit. |
| `sortBy` | `top` for the most relevant conversations, `newest` for the most recent. |
| `onlyCommentsAfter` | Keep only comments posted after a date. Accepts a calendar date (`2026-01-01`) or a span (`7 days`, `3 months`). Leave empty for all comments. |
| `includeReplies` | Include replies inside each thread. Turn off for a faster, cheaper run. |
| `enrichComments` | Add AI sentiment and intent labels. Available on any Apify paid plan. |

***

### 📤 Output example

Every row is one comment or reply, already joined with its full video context — so the dataset is usable in Excel or a BI tool without any extra work.

```json
{
  "commentId": "Ugzge340dBgB75hWBm54AaABAg",
  "commentUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ&lc=Ugzge340dBgB75hWBm54AaABAg",
  "text": "can confirm: he never gave us up",
  "likeCount": 274000,
  "replyCount": 961,
  "publishedTimeText": "1 year ago",
  "publishedAtApprox": "2025-07-29T12:10:45.627Z",
  "isEdited": false,
  "isReply": false,
  "replyLevel": 0,
  "parentCommentId": null,
  "isPinned": true,
  "pinnedByText": "Pinned by @RickAstleyYT",
  "isHeartedByCreator": true,
  "authorDisplayName": "@YouTube",
  "authorHandle": "YouTube",
  "authorChannelId": "UCBR8-60-B28hp2BmDPdntcQ",
  "authorChannelUrl": "https://www.youtube.com/@YouTube",
  "authorAvatarUrl": "https://yt3.ggpht.com/…",
  "authorIsVerified": true,
  "authorIsCreator": false,
  "authorIsArtist": false,
  "textLength": 32,
  "wordCount": 7,
  "emojiCount": 0,
  "containsLinks": false,
  "links": [],
  "mentions": [],
  "hashtags": [],
  "videoTimestamps": [],
  "sentiment": "positive",
  "intention": "humor",
  "videoId": "dQw4w9WgXcQ",
  "videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
  "videoTitle": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
  "videoThumbnailUrl": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg",
  "videoViewCount": 1797851649,
  "videoLikeCount": 19284062,
  "videoPublishedAt": "2009-10-25T06:57:33.000Z",
  "videoDurationSeconds": 213,
  "videoCategory": "Music",
  "videoKeywords": ["rick astley", "never gonna give you up"],
  "channelName": "Rick Astley",
  "channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
  "channelUrl": "https://www.youtube.com/@RickAstleyYT",
  "channelSubscriberCount": 4520000,
  "isLiveContent": false,
  "commentPosition": 1,
  "scrapedAt": "2026-07-29T18:10:45.627Z"
}
```

***

### 🤖 AI enrichment: sentiment + intent

Switch on **Enrich comments with AI** and every comment is automatically labelled using the video's own title and description as context — so sarcasm, in-jokes and topic-specific language are read correctly.

**Sentiment:** `positive` · `negative` · `neutral`

**Intent — 20 labels:**

| | | | |
|---|---|---|---|
| praise | criticism | suggestion | question |
| complaint | request | humor | irony\_sarcasm |
| gratitude | correction | personal\_story | comparison |
| promotion\_spam | hostility | encouragement | opinion |
| information\_sharing | timestamp\_highlight | call\_to\_action | off\_topic |

Now you can answer questions like *"what share of this launch video's comments are complaints?"* or *"show me every question nobody replied to"* with a single filter.

> **Note:** AI enrichment is available on **any Apify paid plan**. On the free plan the run still completes normally and every other field is fully populated — the `sentiment` and `intention` fields simply return an upgrade notice.

***

### 💰 Pricing

You pay per comment delivered — nothing else. There are two rates:

| What you get | Billed as |
|---|---|
| A comment or reply with all its author, engagement and video fields | **Comment** |
| The same comment, plus its AI sentiment and intent labels | **Enriched comment** |

Two things worth knowing:

- **You only pay the enriched rate for comments that actually come back labelled.** If a label can't be produced for a particular comment, that row is billed at the standard rate.
- **Leave AI enrichment off and you never pay the enriched rate at all** — every comment is billed at the standard rate.

You can cap the cost of any run with the **maximum cost per run** setting. The Actor watches that limit, stops cleanly when it is reached, and everything collected up to that point is saved and available to export.

**It also protects you from paying for nothing.** If a run is clearly not going to return anything — a list of links that are offline, private, or all have comments switched off — it stops early instead of working through the rest of the list, and tells you why. A long list of good links is never affected: once results start coming in, the Actor keeps going normally even if some videos along the way have no comments.

***

### 🔗 Integrations & automation

Push YouTube comments straight into the tools you already use:

- **Make** / **Zapier** / **n8n** — trigger on every run and route comments into Slack, Notion, Airtable or Google Sheets
- **Google Sheets & Excel** — one-click export, or a live link that always serves the latest results
- **Webhooks & REST API** — stream results into your own database, warehouse or app
- **Scheduler** — run daily or hourly for continuous brand and reputation monitoring
- **LangChain / LlamaIndex / RAG pipelines** — feed real audience language into your AI stack

**Automation idea:** schedule the Actor with **Newest first** on your brand's videos, filter for `negative` sentiment plus the `complaint` or `hostility` intents, and post those straight to a Slack channel. Instant early-warning system.

***

### ❓ FAQ

**Do I need a YouTube API key or a Google account?**
No. There is nothing to authenticate — just paste links and run.

**Is there a limit on how many comments I can get?**
No hard cap. Set `maxComments` to `0` to collect everything available on a video.

**Can I scrape many videos at once?**
Yes — bulk is the default. Paste as many URLs as you like.

**Does it work with YouTube Shorts?**
Yes, along with regular videos, live replays and every common YouTube link format.

**Does it collect replies too?**
Yes, full threads. Each reply is linked to its parent comment so you can rebuild any conversation.

**Can I collect only recent comments?**
Yes. Set **Only comments after this date** to a date or a span like `7 days`, and pair it with **Newest first** for the fastest run. YouTube publishes comment ages rather than exact timestamps, so the filter is precise for recent windows and gradually more approximate the further back you go.

**What if a video has comments turned off?**
The run continues normally and simply reports that no public comments are available for that video.

**In what formats can I export?**
Excel, CSV, JSON, XML, JSONL and RSS — or via the Apify API.

**Is scraping public YouTube comments legal?**
This Actor collects only publicly visible information. You are responsible for using the data in line with applicable laws (including GDPR where relevant) and YouTube's terms.

***

### 🧰 More Actors you might like

- [YouTube Transcript Turbo Saver ⚡💸](https://apify.com/lofomachines/youtube-transcript-turbo-saver) — grab full transcripts from any YouTube video, fast and cheap
- [Reddit Scraper & AI Insights](https://apify.com/lofomachines/reddit-ai-insights) — posts, comments and sentiment from any subreddit or topic
- [AI App Store & Google Play Reviews Scraper](https://apify.com/lofomachines/app-review-intelligence) — mine mobile app reviews for feedback and complaints
- [Brand Monitoring AI](https://apify.com/lofomachines/brand-monitoring-ai) — track mentions, sentiment and reputation across the web
- [Sentiment and Topics Text Classifier](https://apify.com/lofomachines/sentiment-and-topics-text-classifier) — run sentiment and topic labelling on any text you already have

***

### 🏷️ Keywords

youtube comments scraper · youtube comment extractor · extract youtube comments · youtube comments api · scrape youtube comments · youtube comment downloader · export youtube comments to excel · youtube comments to csv · bulk youtube comment scraper · youtube replies scraper · youtube comment sentiment analysis · youtube audience research tool · youtube shorts comments scraper · youtube data extraction · social listening youtube

***

*Built by [Lofomachines](https://apify.com/lofomachines). Questions or a feature you need? Open an issue on the Actor's Issues tab.*

# Actor input Schema

## `videoUrls` (type: `array`):

One or more YouTube video links. Regular videos, Shorts, live replays, youtu.be links and plain video IDs all work. Add as many as you like to run them in bulk.

## `maxComments` (type: `integer`):

How many comments to collect from each video. Replies count towards this number when replies are enabled, and a single very busy thread will never use up the whole limit. Set 0 for no limit (collects everything available).

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

"Top comments" returns the most relevant and most liked conversations first. "Newest first" returns the most recent comments first - ideal for monitoring and alerts.

## `onlyCommentsAfter` (type: `string`):

Leave empty to collect comments of any age. Pick a date to keep only comments posted after it, or type a span such as "7 days", "2 weeks" or "3 months". YouTube publishes comment ages rather than exact timestamps, so filtering is precise for recent dates and gradually more approximate for older ones. Tip: pair this with "Newest first" for the fastest and cheapest runs.

## `includeReplies` (type: `boolean`):

Also collect the replies inside each comment thread. Turn this off for a faster, cheaper run when you only need top-level comments.

## `enrichComments` (type: `boolean`):

Adds a sentiment label (positive / negative / neutral) and an intent label (praise, criticism, suggestion, question, irony and 15 more) to every comment, using the video context for accuracy. Available on any Apify paid plan. On the free plan the run still completes and both fields return an upgrade notice.

## Actor input object example

```json
{
  "videoUrls": [
    "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "https://youtu.be/9bZkp7q19f0"
  ],
  "maxComments": 100,
  "sortBy": "top",
  "onlyCommentsAfter": "2026-01-01",
  "includeReplies": true,
  "enrichComments": false
}
```

# Actor output Schema

## `overview` (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 = {
    "videoUrls": [
        "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("lofomachines/free-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 = { "videoUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"] }

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

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

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

```

## CLI example

```bash
echo '{
  "videoUrls": [
    "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
  ]
}' |
apify call lofomachines/free-youtube-comments-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=lofomachines/free-youtube-comments-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/11UahDLakKaTNkrxC/builds/SKX1EvjLk6aFuwXhO/openapi.json
