# YouTube Comments Scraper (`scrapier/youtube-comments-scraper`) Actor

Scrape YouTube video comments easily with the YouTube Comments Scraper. Extract usernames, comment text, timestamps, likes, and replies. Ideal for sentiment analysis, trend tracking, and audience research. Fast, reliable, and customizable for any video or channel URL.

- **URL**: https://apify.com/scrapier/youtube-comments-scraper.md
- **Developed by:** [Scrapier](https://apify.com/scrapier) (community)
- **Categories:** Automation, Lead generation, Social media
- **Stats:** 31 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

$24.99/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

🚀 The YouTube Comments Scraper is a powerful actor designed to extract public comments from YouTube videos in a reliable, automated way. It helps you collect large volumes of comment data without manual scrolling, browser extensions, or fragile scripts. Built for scale, this actor supports automated youtube comments scraping across single videos or large video lists.

🧩 As a youtube comments scraper by Apify, it is production-ready and maintained to handle dynamic loading, pagination, and platform changes. The apify youtube comments scraper is ideal for research, analytics, sentiment analysis, and content insights where accuracy and consistency matter. It delivers structured outputs that integrate easily into data pipelines, dashboards, and analysis workflows.

### What This YouTube Comments Scraper Does 🛠️

⚙️ The YouTube Comments Scraper automatically collects public comments from YouTube videos and converts them into structured, usable data. It retrieves top-level comments and replies, along with key metadata such as author names, timestamps, like counts, and video identifiers. The actor handles dynamic comment loading, pagination, and large comment volumes without manual interaction.

📈 This tool is built for reliable youtube comments scraping at scale. You can process single videos or large URL lists in one run. As a youtube comments scraper by Apify, it works independently of YouTube’s interface and remains stable during platform changes. The apify youtube comments scraper supports repeatable, automated data extraction for analytics, monitoring, and research workflows.

### What Can This YouTube Comments Scraper Extract?📥

The YouTube Comments Scraper extracts detailed comment data and returns it in a structured dataset. Each record represents a single comment or reply and includes the following fields.

| Data Field | Description |
| --- | --- |
| Comment Text | Full text content of the YouTube comment |
| Comment ID | Unique identifier assigned to each comment |
| Author Name | Display name of the comment author |
| Author Channel ID | Channel ID of the comment author |
| Author Channel URL | Link to the author’s YouTube channel |
| Like Count | Number of likes received by the comment |
| Reply Count | Total number of replies to the comment |
| Is Reply | Indicates whether the item is a reply or a top-level comment |
| Parent Comment ID | ID of the parent comment for replies |
| Published Date | Original posting date and time |
| Updated Date | Last edit timestamp, if available |
| Video ID | Unique ID of the YouTube video |
| Video Title | Title of the related YouTube video |
| Video URL | Direct link to the YouTube video |

This structured output supports analysis, reporting, and automated youtube comments scraping workflows at scale.

### Supported YouTube Content Types 📺

This YouTube Comments Scraper supports a wide range of public YouTube content. It is designed to cover common formats used by creators, brands, and researchers.

#### Public YouTube Videos

Scrape comments from standard public videos, including top comments and newest comments.

#### YouTube Shorts

Extract comments from Shorts where comments are enabled and publicly accessible.

#### Live Stream Replays

Collect comments from completed live streams and their replay pages.

#### Pinned Comments

Capture pinned comments highlighted by the video creator.

#### Comment Threads and Replies

Scrape full discussion threads, including replies linked to parent comments.

Private videos, deleted content, and restricted comments are not supported. This ensures compliant and reliable youtube comments scraping at scale.

### Why Use YouTube Comments Scraper by Apify⭐

The YouTube Comments Scraper by Apify is built for reliability, scale, and long-term use. It removes the risks associated with fragile scripts, browser extensions, and manual scraping methods. This actor is maintained to handle platform changes and deliver consistent results for automated youtube comments scraping.

#### Production-Ready Design 🏗️

Designed for real-world workloads, the actor supports large comment volumes and repeatable runs without manual intervention.

#### Automatic Dynamic Loading ⚡

Comments and replies load automatically, including deep threads and long discussions.

#### Reliable Error Handling 🛠️

Built-in retries and safeguards reduce failures during large or long-running jobs.

#### Clean Structured Output 📦

All data is returned in organized datasets, ready for analysis or export.

#### Independent of UI Changes 🧱

Scraping logic does not depend on YouTube’s visual layout, reducing breakage.

#### Trusted Apify Solution ✅

Backed by Apify infrastructure, this apify youtube comments scraper is suitable for professional and enterprise use.

### Who Should Use This YouTube Comments Scraper👥

*   Marketing teams: collecting audience feedback and campaign insights  
      
    
*   Brand managers: monitoring public sentiment and product discussions  
      
    
*   Content creators and streamers: analyzing viewer engagement and reactions  
      
    
*   Market researchers: gathering large-scale qualitative data  
      
    
*   Data analysts: building datasets for reporting and trend analysis  
      
    
*   NLP and AI teams: creating training data for text and sentiment models  
      
    
*   Agencies and consultants: managing multiple YouTube channels or clients  
      
    
*   Developers: automating youtube comments scraping workflows using Apify
    

  

### Common Use Cases🔎

The YouTube Comments Scraper supports a wide range of practical, data-driven use cases across industries.

#### Audience Sentiment Analysis 😊

Analyze viewer opinions, emotions, and recurring themes by collecting large volumes of comments for sentiment and tone evaluation.

#### Brand and Product Monitoring 🏷️

Track how audiences discuss brands, products, or campaigns across multiple YouTube videos in real time.

#### Creator and Streamer Engagement Tracking 🎮

Measure engagement patterns, community interaction, and audience response for creators and live streamers.

#### Market Research and Feedback Collection 📊

Gather unbiased user feedback to identify trends, preferences, and pain points at scale.

#### Dataset Creation for NLP Models 🧠

Build clean, structured datasets for training and testing NLP and machine learning models using real user comments.

### How to Scrape YouTube Comments🪜

Follow these simple steps to start automated youtube comments scraping using Apify.

#### 1\. Create an Apify Account 🧾

Sign up for an Apify account to access the YouTube Comments Scraper and manage your runs and datasets.

#### 2\. Add YouTube Video URLs 🔗

Paste one or multiple YouTube video URLs into the input field. Bulk URLs are fully supported.

#### 3\. Configure Scraping Settings ⚙️

Set comment limits, enable replies, choose sorting options, and adjust other input parameters as needed.

#### 4\. Run the Actor ▶️

Start the actor and let it automatically load and collect comments without manual interaction.

#### 5\. Export Your Results 📤

Download the scraped data in JSON, CSV, or Excel format for analysis or reporting.

### Input Data Structure
```json
{
    "proxyConfiguration": {
        "useApifyProxy": false
    },
    "startUrls": [
        {
            "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
            "method": "GET"
        }
    ]
}
````

### Output Data Structure

```json
[
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@YouTube",
    "comment": "can confirm: he never gave us up",
    "likeCount": 109000,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@linganguliguliwatcha",
    "comment": "YOUTUBE AND ONE LIKE WOOHAAAAH",
    "likeCount": 3900,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@_bugrabilgin",
    "comment": "HEY YOUTUBE",
    "likeCount": 1800,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@NashiraArif",
    "comment": "new comment alert",
    "likeCount": 1100,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@jennaortega-m4m",
    "comment": "oop 3rd didnt realise youtube was here😄",
    "likeCount": 667,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@FactusCactus",
    "comment": "Dear team YT,\n-Kindly bring back dislikes\n-Kindly promote underrated creators more \nAnd kindly stop showing me with channels that I've marked with \"do not recommend\"\nAnd last but not the least- - -delete YT shorts forever from this holy planet",
    "likeCount": 614,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@ShyGuy_cc",
    "comment": "Youtube accidently got rickrolled",
    "likeCount": 461,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@TheAngelofBattle99",
    "comment": "He's ingrained in our brains at this point. Such a devoted man.",
    "likeCount": 415,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@fishunboxing",
    "comment": "make this appear on everyone's homepages for a day",
    "likeCount": 347,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@hinzbx",
    "comment": " @FactusCactus  also fix the homepage. I want my 4 videos per row back!",
    "likeCount": 183,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@EstevãoMachado-d4h",
    "comment": "Omg",
    "likeCount": 156,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@someone_hate3970",
    "comment": "even in 2025 youtube  got rickrolled.. maybe there is hope for humanity after all",
    "likeCount": 100,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@jotape8417",
    "comment": "chat gpt rick rolled me and led me to this",
    "likeCount": 80,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@SleepyBear_SB",
    "comment": "Only took 15 years for YouTube to get rickrolled I guess",
    "likeCount": 74,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@MaroSecnjak",
    "comment": "Hi",
    "likeCount": 63,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@H.A.M.P.T.E.R",
    "comment": "You know it's good when the Youtube gods themselves show up",
    "likeCount": 59,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@kskskskkskskn",
    "comment": "Youtube quedo troleado",
    "likeCount": 49,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@kskskskkskskn",
    "comment": "Youtube oh",
    "likeCount": 48,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@0ProGamer0",
    "comment": "Hello youtube!",
    "likeCount": 46,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@SebastianCasados",
    "comment": "i was bere",
    "likeCount": 45,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@SouthwestairlinesYT",
    "comment": "YOOO",
    "likeCount": 43,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@Lybitel_Kotikov",
    "comment": "Ютуб",
    "likeCount": 42,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@icarogurgel-r2o",
    "comment": "OMG YOUTUBE GOT RICKROLLED",
    "likeCount": 36,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@_andreitalo",
    "comment": "This song will never die",
    "likeCount": 34,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@quixvy-g6j",
    "comment": "w youtube",
    "likeCount": 32,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@JJ77477",
    "comment": "Can confirm youtube fell off 😔",
    "likeCount": 30,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@NuggetManDenni",
    "comment": "He didn’t 😂",
    "likeCount": 24,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@SidSitee",
    "comment": "True",
    "likeCount": 23,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@emotii_here",
    "comment": "YOUTUBE 1 HOUR AGO IN NEVER GONNA GIVE YOU UP COMMENTS?!?!?!?",
    "likeCount": 23,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@luk1nvm",
    "comment": "1h, Hi from Brazil, YouTube",
    "likeCount": 22,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@Sammy_GD",
    "comment": "YouTube",
    "likeCount": 22,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@vergil7185",
    "comment": "Hello YouTube, from Ukraine 💙💛",
    "likeCount": 22,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@traceygoslin",
    "comment": "😂😂",
    "likeCount": 20,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@JohnnySins-k2c",
    "comment": "For 15 years",
    "likeCount": 20,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@chuymurillo4177",
    "comment": "Oh hello there",
    "likeCount": 19,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@JohnnyminecrafteditsYT",
    "comment": "Hey",
    "likeCount": 18,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@ThrillSeeker-x6b",
    "comment": "Used this on April fools. Did you just rickroll us in the 20th anniversary thing?",
    "likeCount": 18,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@Hazzer_du_69",
    "comment": "wtf",
    "likeCount": 13,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@VictorsProdz",
    "comment": "2 hours ago!!!?\nHe never did",
    "likeCount": 13,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@RandomGuywhomakesrandomvids",
    "comment": "2 hours is crazy",
    "likeCount": 12,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@rshadowsail",
    "comment": "Did YouTube just get rickrolled?!?",
    "likeCount": 12,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@SamySam-OFC",
    "comment": "HELLO",
    "likeCount": 11,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@aiueokakikukekosaisuseso-v1b",
    "comment": "えぐ\n2時間前",
    "likeCount": 11,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@tarasturgis1940",
    "comment": "Who is here before 1k",
    "likeCount": 9,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@JonnyzHere",
    "comment": "So early can I get a hi from YouTube?",
    "likeCount": 9,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@LMSHOfDeath",
    "comment": "Hello youtube",
    "likeCount": 9,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@XxRUBYYxX-f4s",
    "comment": "YOOO YOUTUBE??!",
    "likeCount": 9,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@dogeboyeee",
    "comment": "Bro YouTube your a bit late lmao",
    "likeCount": 9,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@KitKat-i3h",
    "comment": "2h ago!",
    "likeCount": 8,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  },
  {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
    "author": "@CallMehAngel207",
    "comment": "YOUTUBE WHAT U DOING HER EAT 22/04/2025",
    "likeCount": 8,
    "commentsCount": 100,
    "type": "comment",
    "success": true
  }
]
```

### Apify vs Extensions and GitHub Scripts ⚔️

Choosing the right approach for youtube comments scraping impacts reliability, scale, and maintenance.

#### Browser Extensions 🧩

Browser extensions often require manual scrolling and active browser sessions. They break frequently due to YouTube UI updates and struggle with large comment volumes. Automation and scheduling are limited.

#### GitHub Scripts 🧑‍💻

GitHub scripts usually need setup, API keys, and ongoing maintenance. Many repositories are outdated and fail when YouTube changes its structure or limits access.

#### Why Apify Is Better ⭐

The YouTube Comments Scraper by Apify is fully automated, scalable, and maintained. It handles dynamic loading, retries, and platform changes while delivering clean, structured data ready for production use.

### Is It Legal to Use a YouTube Comments Scraper? ⚖️

Using a YouTube comments scraper is generally allowed when applied responsibly and within legal boundaries. This actor is designed to collect only publicly available data.

#### Public Data Collection 🌐

The scraper accesses comments that are visible to any YouTube user without authentication. Private, deleted, or restricted content is not collected.

#### Terms of Service Considerations 📜

Users are responsible for reviewing and complying with YouTube’s Terms of Service and applicable platform policies when scraping data.

#### Data Usage Responsibility 🔐

Scraped data should be used ethically and in compliance with local laws, privacy regulations, and internal data governance standards.

### Why Choose Us 🌟

This YouTube Comments Scraper is built to deliver reliable results for both short-term tasks and long-term data collection projects.

#### Built on Apify Infrastructure ☁️

Runs on Apify’s proven cloud platform with managed scaling, storage, and execution.

#### Stable and Scalable Scraping 📈

Handles small jobs and large comment volumes without performance issues.

#### No Code Required 🧩

Designed for non-technical users, with optional API access for developers.

#### Accurate and Structured Data 📊

Returns clean, well-organized datasets ready for analysis and reporting.

#### Time and Cost Efficient ⏱️

Automates manual work and reduces operational overhead.

#### Trusted for Long-Term Use 🛡️

Maintained and monitored to remain stable as YouTube evolves.

### Frequently Asked Questions❓

#### Can this scraper collect replies to comments? 💬

Yes. The actor can extract both top-level comments and their replies, including full discussion threads when replies are available.

#### Does it work for multiple videos at once? 📺

Yes. You can provide multiple YouTube video URLs in a single run and scrape comments from all of them together.

#### Is coding required to use this actor? ❌

No. The scraper works through the Apify interface without any coding. API access is optional for automation.

#### Can I export the data in different formats? 📁

Yes. Scraped data can be exported in JSON, CSV, or Excel formats.

#### Is there a free option available? 🆓

Yes. Small runs can be completed using Apify’s free tier, with paid options available for larger projects.

### Conclusion 🎯

The YouTube Comments Scraper offers a reliable way to collect public YouTube comments at scale without manual effort. It supports automated youtube comments scraping for research, monitoring, and analysis use cases. Built on Apify infrastructure, the youtube comments scraper by Apify delivers structured, accurate data while remaining stable as the platform evolves.

If you need a production-ready apify youtube comments scraper that saves time and reduces maintenance, this actor is a practical choice. Get started today to turn YouTube comments into actionable insights with minimal setup and full control over your data.

### What are other Youtube scraping tools?

If you want to scrape specific Youtube data, you can use any of the dedicated scrapers below for faster and more targeted results.

| Scraper Name | Scraper Name |
|---|---|
| [Youtube B2b Email Scraper](https://apify.com/scrapier/youtube-b2b-email-scraper) | [Youtube Phone Number Scraper](https://apify.com/scrapier/youtube-phone-number-scraper) |
| [Youtube B2b Lead Scraper](https://apify.com/scrapier/youtube-b2b-lead-scraper) | [YouTube Playlist Extractor](https://apify.com/scrapier/youtube-playlist-scraper) |
| [Youtube B2b Phone Number Scraper](https://apify.com/scrapier/youtube-b2b-phone-number-scraper) | [Youtube Scraper](https://apify.com/scrapier/youtube-scraper) |
| [Youtube Channel Email Scraper](https://apify.com/scrapier/youtube-channel-email-scraper) | [Youtube Search And Channel Scraper](https://apify.com/scrapier/youtube-search-and-channel-scraper) |
| [Youtube Channel Finder](https://apify.com/scrapier/youtube-channel-finder) | [Youtube Search Scraper](https://apify.com/scrapier/youtube-search-scraper) |
| [Youtube Channel Lead Scraper](https://apify.com/scrapier/youtube-channel-lead-scraper) | [YouTube Shorts Scraper](https://apify.com/scrapier/youtube-shorts-scraper) |
| [Youtube Channel Phone Number Scraper](https://apify.com/scrapier/youtube-channel-phone-number-scraper) | [Youtube Transcript Scraper](https://apify.com/scrapier/youtube-transcript-scraper) |
| [Youtube Channel Scraper](https://apify.com/scrapier/youtube-channel-scraper) | [YouTube Trending Scraper](https://apify.com/scrapier/youtube-trending-scraper) |
| [Youtube Community Posts Scraper](https://apify.com/scrapier/youtube-community-posts-scraper) | [YouTube Video Details Scraper](https://apify.com/scrapier/youtube-video-details-scraper) |
| [Youtube Email Scraper](https://apify.com/scrapier/youtube-email-scraper) | [YouTube Video Scraper By Hashtag](https://apify.com/scrapier/youtube-video-scraper-by-hashtag) |
| [Youtube Lead Scraper](https://apify.com/scrapier/youtube-lead-scraper) | [YouTube Video Subtitles Scraper](https://apify.com/scrapier/youtube-video-subtitles-scraper) |
| [YouTube Metadata Scraper](https://apify.com/scrapier/youtube-metadata-scraper) | [YouTube Video Summarizer](https://apify.com/scrapier/youtube-video-summarizer) |
| [YouTube Most Replayed Scraper](https://apify.com/scrapier/youtube-most-replayed-actor) |  |

# Actor input Schema

## `startUrls` (type: `array`):

📋 Enter the YouTube videos you want to scrape comments from. You can use full URLs (e.g. https://www.youtube.com/watch?v=VIDEO\_ID or https://youtu.be/VIDEO\_ID) or just the 11-character video ID. Add multiple URLs or IDs to scrape several videos in one run — the actor processes each video sequentially. Each video's comments are saved to the dataset with the correct video title and metadata.

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

🔢 Set the maximum number of comments to scrape per video. Use 0 for no limit (scrape all available comments). For faster runs or testing, use values like 100, 500, or 1000. The actor stops fetching once this limit is reached for each video. Default is 50.

## `sortOrder` (type: `string`):

⬆️ Choose how comments are ordered when fetching. • top — Shows the most liked and relevant comments first (YouTube's default). Best for sentiment analysis or finding popular opinions. • newest — Shows the most recently posted comments first. Best for monitoring live discussions or recent feedback.

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

🛡️ Configure proxy settings for scraping. By default, no proxy is used. If you encounter rate limits, blocks, or geographic restrictions, enable Apify Proxy. The actor will automatically try datacenter proxies first, then residential proxies if needed. Residential proxies work best for strict regions but cost more. Leave disabled unless you experience blocking.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.youtube.com/watch?v=KrLj6nc516A"
  ],
  "maxComments": 50,
  "sortOrder": "top",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "startUrls": [
        "https://www.youtube.com/watch?v=KrLj6nc516A"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapier/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 = {
    "startUrls": ["https://www.youtube.com/watch?v=KrLj6nc516A"],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapier/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 '{
  "startUrls": [
    "https://www.youtube.com/watch?v=KrLj6nc516A"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call scrapier/youtube-comments-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "YouTube Comments Scraper",
        "description": "Scrape YouTube video comments easily with the YouTube Comments Scraper. Extract usernames, comment text, timestamps, likes, and replies. Ideal for sentiment analysis, trend tracking, and audience research. Fast, reliable, and customizable for any video or channel URL.",
        "version": "0.1",
        "x-build-id": "p7KCVD1a9CtbskKeG"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapier~youtube-comments-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapier-youtube-comments-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapier~youtube-comments-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapier-youtube-comments-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapier~youtube-comments-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapier-youtube-comments-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "🔗 YouTube Video URLs or IDs",
                        "type": "array",
                        "description": "📋 Enter the YouTube videos you want to scrape comments from. You can use full URLs (e.g. https://www.youtube.com/watch?v=VIDEO_ID or https://youtu.be/VIDEO_ID) or just the 11-character video ID. Add multiple URLs or IDs to scrape several videos in one run — the actor processes each video sequentially. Each video's comments are saved to the dataset with the correct video title and metadata.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxComments": {
                        "title": "📊 Maximum Comments per Video",
                        "minimum": 0,
                        "type": "integer",
                        "description": "🔢 Set the maximum number of comments to scrape per video. Use 0 for no limit (scrape all available comments). For faster runs or testing, use values like 100, 500, or 1000. The actor stops fetching once this limit is reached for each video. Default is 50.",
                        "default": 50
                    },
                    "sortOrder": {
                        "title": "📑 Comment Sort Order",
                        "enum": [
                            "top",
                            "newest"
                        ],
                        "type": "string",
                        "description": "⬆️ Choose how comments are ordered when fetching. • top — Shows the most liked and relevant comments first (YouTube's default). Best for sentiment analysis or finding popular opinions. • newest — Shows the most recently posted comments first. Best for monitoring live discussions or recent feedback.",
                        "default": "top"
                    },
                    "proxyConfiguration": {
                        "title": "🌐 Proxy Configuration",
                        "type": "object",
                        "description": "🛡️ Configure proxy settings for scraping. By default, no proxy is used. If you encounter rate limits, blocks, or geographic restrictions, enable Apify Proxy. The actor will automatically try datacenter proxies first, then residential proxies if needed. Residential proxies work best for strict regions but cost more. Leave disabled unless you experience blocking."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
