๐Ÿ’ฌ YouTube Comments Scraper avatar

๐Ÿ’ฌ YouTube Comments Scraper

Pricing

from $1.40 / 1,000 results

Go to Apify Store
๐Ÿ’ฌ YouTube Comments Scraper

๐Ÿ’ฌ YouTube Comments Scraper

YouTube Comments Scraper: pull video comments and replies in real time โ€” author, text, likes, pinned, hearted, verified & publish date. Ideal for sentiment analysis, brand monitoring & NLP. No YouTube API key or quota. Stream results to your Apify dataset.

Pricing

from $1.40 / 1,000 results

Rating

0.0

(0)

Developer

Data Minds

Data Minds

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 days ago

Last modified

Categories

Security

Limited permissions

Share

What is YouTube Comments Scraper?

YouTube Comments Scraper is a YouTube comments scraper that collects comments and replies from any YouTube video link, ready for sentiment analysis, audience research and brand monitoring. Paste your video links, click Start, and get the comment text, author, likes, reply count, pinned and creator-heart flags and an estimated post date in a dataset. On the Free plan it costs $0.002 per result ($2.00 per 1,000), plus platform usage.

Just enter one or more video links and click Start. No coding needed, and no YouTube API key field to fill in.

  • Sentiment analysis: export comment text and likes to score how viewers feel about a video, a product or a launch.
  • Audience research: see what viewers ask, praise and complain about, and which comments get the most likes.
  • Brand monitoring: collect comments from videos that mention your brand and re-run on a schedule to track new feedback.
  • Competitor analysis: compare the comments under competitor videos side by side, video by video.
  • AI and NLP datasets: build a clean YouTube comments dataset with exact field names for training or analysis.
  • Community feedback: keep only comments that contain a keyword or reach a minimum number of likes.

Because it runs on the Apify platform, you also get the Apify API, scheduling, webhooks, integrations and export to JSON, CSV, Excel, XML or HTML.

What can YouTube Comments Scraper do?

  • ๐ŸŽฌ Scrape YouTube comments from many videos in one run (watch links, youtu.be links, Shorts links or plain video IDs)
  • ๐Ÿ’ฌ Get YouTube comments with replies, with a cap on replies per comment or all replies
  • ๐Ÿ”ƒ Sort by top comments or newest first, and stop at a cutoff date
  • ๐ŸŽฏ Filter by minimum likes or by a keyword in the comment text
  • ๐ŸŒ Set the language and region used for the video page
  • ๐Ÿ“ฆ Export YouTube comments to JSON, CSV, Excel, XML or HTML and view them in six ready-made table views
  • ๐Ÿ“ฅ Download YouTube comments for a whole list of videos in one run, like a YouTube comment extractor for many videos
  • ๐Ÿ“ค Use a YouTube comments exporter that gives you a spreadsheet export with only the columns you pick
  • ๐Ÿ”Ž Get YouTube comments by keyword or filter YouTube comments by likes
  • ๐Ÿ†• Newest YouTube comments only, or YouTube comments after a date
  • ๐Ÿงต Scrape YouTube replies with a YouTube comment replies extractor setting that you control per comment
  • ๐Ÿ”” Monitor new YouTube comments by scheduling runs, so YouTube comment collection repeats without manual work
  • ๐Ÿงฐ Get comments without writing code: results arrive in a dataset you can open as a table or download

What data can YouTube Comments Scraper extract?

Every saved row is one comment or one reply. Field names below are exactly the ones in the dataset.

DataFieldWhat it contains
๐Ÿ†” Comment IDcidUnique ID of the comment or reply
๐Ÿงต Parent IDreplyToCidID of the parent comment for a reply, otherwise empty
๐Ÿท Typetypecomment or reply
๐Ÿ•’ Posted (as shown)publishedTimeTextRelative time such as "3 weeks ago"
๐Ÿ“… Estimated datepublishedTimeEstimateEstimated date (YYYY-MM-DD) calculated from the relative time
๐ŸŽฏ Estimate precisionpublishedTimePrecisionThe unit the estimate is based on, for example week
๐Ÿ“ EditedisEditedTrue when the comment is marked as edited
๐Ÿ’ฌ Comment textcommentFull comment text
๐Ÿ‘ค AuthorauthorDisplay name of the commenter
๐Ÿ†” Author channel IDauthorChannelIdChannel ID of the commenter
๐Ÿ”— Author channel URLauthorChannelUrlLink to the commenter's channel
๐Ÿ“ท Author avatarauthorAvatarUrlAvatar image URL
๐ŸŽฌ Channel ownerauthorIsChannelOwnerTrue when the video owner wrote it
โœ… VerifiedauthorIsVerifiedTrue for verified authors
๐Ÿ“Œ PinnedisPinnedTrue for a pinned comment
๐Ÿ—จ Reply countreplyCountNumber of replies under the comment
๐Ÿ‘ LikesvoteCountLikes as a number
๐Ÿ‘ Likes (as shown)voteCountTextLikes exactly as displayed, for example 1.3K
๐Ÿ’– Creator hearthasCreatorHeartTrue when the creator hearted the comment
๐Ÿ†” Video IDvideoIdID of the video
๐Ÿ”— Video URLpageUrlLink to the video
๐Ÿ’ฌ Total commentscommentsCountTotal comment count shown for the video
๐ŸŽฌ Video titletitleTitle of the video
๐Ÿšฉ Error flagisErrorfalse for comments, true for error rows

Note: publishedTimeEstimate and publishedTimePrecision are estimates calculated from the relative time text and work only when the page language is English. commentsCount can be empty. replyToCid is empty for top-level comments.

Videos that cannot be processed produce an error row with isError, error, note, videoId and pageUrl. Error rows are not charged.

What data can't YouTube Comments Scraper extract?

  • Exact post timestamps: only a relative time and an estimated date are available.
  • Video statistics other than the title, ID, link and total comment count. For video details, try YouTube Scraper.
  • Video transcripts. For subtitles and captions, try YouTube Transcript Scraper.

How to scrape YouTube comments

YouTube Comments Scraper is designed for an easy start, even if you have never extracted data from the web before.

To download all comments from a YouTube video, set maxComments to 0; to get a YouTube comments bulk export, add many links.

  1. Create a free Apify account using your email.
  2. Open YouTube Comments Scraper.
  3. Add one or more video links to YouTube Video URLs (urls).
  4. Set Max comments per video (maxComments) and, if you want replies, Include replies (includeReplies).
  5. Click Start and wait for the run to finish.
  6. Open the Output tab and download your data in JSON, CSV, Excel, XML or HTML.

How much does it cost to scrape YouTube comments?

YouTube Comments Scraper uses a pay-per-event pricing model: you pay for each saved comment or reply (the Results event) plus a small Actor start event. Platform usage is billed in addition. Failed videos and error rows are not charged.

PlanPrice per resultPrice per 1,000 results
Free$0.002$2.00
Bronze$0.0018$1.80
Silver$0.0016$1.60
Gold$0.0014$1.40

The start event costs $0.00005 per GB of memory, minimum one event. The Actor starts with 1024 MB (1 GB), so one start event applies: $0.00005 per run.

Worked example: scraping 5,000 comments and replies on the Gold plan costs 5,000 x $0.0014 = $7.00 in result events, plus $0.00005 for the start event and platform usage.

Is scraping YouTube comments free?

You can start for free. The $5 monthly credit of the Apify Free plan covers about 2,500 results at the Free price ($5 / $0.002), before platform usage. For regular volumes, higher plans lower the price per result. See the pricing tab for all events.


Input

The only required field is YouTube Video URLs (urls). Everything else has a default. Set the input in the Actor interface or send it as JSON through the API.

This example collects the first 10 comments of one video, with the default of one reply per comment:

{
"urls": [
"https://www.youtube.com/watch?v=dQw4w9WgXcQ"
],
"maxComments": 10
}

See the input tab for a full description of all fields.

FieldTypeRequiredDefaultDescription
urlsarrayYesprefilled with one videoVideo links (watch, youtu.be, Shorts) or video IDs. Duplicates are removed
maxCommentsintegerNo10Top-level comments per video. Replies do not count. 0 means no limit
sortCommentsBystringNoTOP_COMMENTSTOP_COMMENTS or NEWEST_FIRST
oldestCommentDatestringNoemptyStop at comments older than this date. Switches sorting to newest first
includeRepliesbooleanNotrueAlso save replies under collected comments
maxRepliesPerCommentintegerNo1Replies saved per comment. 0 means all replies
minLikesintegerNo0Keep only comments and replies with at least this many likes
keywordstringNoemptyKeep only comments whose text contains this word or phrase (not case-sensitive)
hlstringNoempty (auto)Language code for the video page
glstringNoempty (auto)Region code for the video page
proxyConfigurationobjectNo{"useApifyProxy": false}Optional network settings. The default is fine for most videos
videoConcurrencyintegerNo3Videos processed at the same time (1 to 20)
replyConcurrencyintegerNo5Reply threads processed at the same time per video (1 to 20)
maxRetriesintegerNo3Retries for a failed request (1 to 10)
maxScannedintegerNo20000Stop a video after examining this many comments. 0 means no limit

Max comments and replies

maxComments counts only top-level comments. Replies are controlled separately by maxRepliesPerComment, so a run can save more rows than maxComments. You pay per saved row, comments and replies alike.

  • โœ… Good: "maxComments": 100, "maxRepliesPerComment": 2 for up to 100 comments and 2 replies each
  • โŒ Bad: "maxComments": 100 and expecting 100 rows in total when replies are on

Warning: Setting maxComments to 0 together with maxRepliesPerComment at 0 can save a very large number of rows on popular videos. Run a small test first.

Date filter

oldestCommentDate accepts a date such as 2026-01-31 or a value in days such as 7 days. The cutoff uses the estimated date, so it is only as precise as the relative time shown on the comment.

  • โœ… Good: "oldestCommentDate": "2026-01-31" or "7 days"
  • โŒ Bad: "oldestCommentDate": "31/01/2026"

Warning: Use the YYYY-MM-DD format or a number of days. Other formats are not applied as a cutoff.

Filters

minLikes and keyword are applied to both comments and replies. Replies are collected under comments that pass your filters, so a strict filter can also reduce the number of replies. If a filter matches nothing after many comments, the video is skipped; raise maxScanned or relax the filter.


Output

Results appear in the Output or Storage tab as a dataset. Each comment or reply is saved as it is collected. View the data as a table or JSON, pick only the fields you need, and download it in JSON, CSV, Excel, XML or HTML. The Output tab has six views: Overview, Comments, Authors, Engagement, Video source and Errors.

JSON example

Results for the input example above (a comment followed by one reply, with fake values):

[
{
"cid": "UgxExampleCommentId1",
"replyToCid": null,
"type": "comment",
"publishedTimeText": "3 weeks ago",
"publishedTimeEstimate": "2026-10-05",
"publishedTimePrecision": "week",
"isEdited": false,
"comment": "Great video, thanks for sharing!",
"author": "@example-user",
"authorChannelId": "UCexampleChannelId000000",
"authorChannelUrl": "https://example.com/@example-user",
"authorAvatarUrl": "https://example.com/avatar.jpg",
"authorIsChannelOwner": false,
"authorIsVerified": false,
"isPinned": false,
"replyCount": 1,
"voteCount": 1300,
"voteCountText": "1.3K",
"hasCreatorHeart": true,
"videoId": "dQw4w9WgXcQ",
"pageUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"commentsCount": 1000,
"title": "Example video title",
"isError": false
},
{
"cid": "UgxExampleCommentId1.ExampleReplyId1",
"replyToCid": "UgxExampleCommentId1",
"type": "reply",
"publishedTimeText": "3 weeks ago",
"publishedTimeEstimate": "2026-10-05",
"publishedTimePrecision": "week",
"isEdited": false,
"comment": "Agreed!",
"author": "@example-fan",
"authorChannelId": "UCexampleChannelId000001",
"authorChannelUrl": "https://example.com/@example-fan",
"authorAvatarUrl": "https://example.com/avatar2.jpg",
"authorIsChannelOwner": false,
"authorIsVerified": false,
"isPinned": false,
"replyCount": 0,
"voteCount": 2,
"voteCountText": "2",
"hasCreatorHeart": false,
"videoId": "dQw4w9WgXcQ",
"pageUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"commentsCount": 1000,
"title": "Example video title",
"isError": false
}
]

Error row example

A video that is private, deleted or has comments turned off is reported like this and is not charged:

{
"isError": true,
"error": "COMMENTS_DISABLED",
"note": "Comments are disabled (or hidden) for this video.",
"videoId": "dQw4w9WgXcQ",
"pageUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
}

Other error codes are VIDEO_UNAVAILABLE, REQUEST_FAILED, INVALID_INPUT and NO_VALID_START_URLS.

Run summary

At the end of a run, a run-summary record in the key-value store lists videosQueued, videosProcessed, videosFailed, commentsSaved, repliesSaved, pinnedComments, creatorHearted and elapsedSeconds.

Notes and limitations

  • Dates are estimates, not exact timestamps, and are available only for English pages.
  • Like counts above 1,000 are shown by YouTube in abbreviated form, so voteCount is an approximation of voteCountText.
  • A run stops cleanly when the spending limit you set for the run is reached; everything saved so far stays in the dataset.

Tips and advanced usage

How many comments can you scrape with YouTube Comments Scraper?

You can collect as many comments as a video shows, or set a limit with maxComments. The exact number depends on the video, the filters you set, whether replies are on and the scan limit. The best way to know for your use case is a quick test run.

What can you do with the scraped data?

  • Run YouTube comment engagement analysis by comparing likes, replies and creator hearts.
  • Collect YouTube community management feedback to see which questions come up again and again.
  • Review YouTube ad campaign comment feedback after a video ad or a launch.
  • Support YouTube comment moderation research by reviewing what viewers discuss.
  • Prepare YouTube influencer comment analysis before a partnership.
  • Build NLP training data from YouTube comments, or an LLM dataset from YouTube comments.
  • Add YouTube social listening to your reports with scheduled runs.

How to get faster or cheaper results

  • Lower maxComments and maxRepliesPerComment, because every saved row is billed.
  • Turn off includeReplies if you only need top-level comments.
  • Use minLikes or keyword to save only the rows you need.
  • Add several videos to one run; videoConcurrency controls how many run in parallel.

Known issues

  • Why are YouTube comments missing from my export? A comment that does not pass your filters is not saved, and its replies are not collected.
  • Relative values other than days (for example weeks or months) are not applied to oldestCommentDate.

Integrations and API

Can I use YouTube Comments Scraper as an API?

Yes. The Apify API gives you programmatic access to YouTube Comments Scraper: start runs, schedule them and fetch results. Use the apify-client package for Node.js or Python. See the API tab for ready-to-use code.

How to scrape YouTube comments with Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("data_minds/youtube-comments-scraper").call(run_input={
"urls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
"maxComments": 10,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

Can I integrate YouTube Comments Scraper with other apps?

Yes. Connect it with Make, Zapier, Google Sheets, Slack and other tools through Apify integrations. Use webhooks to trigger an action when a run finishes, and schedule runs to keep your comments data fresh.

Can I use YouTube Comments Scraper with AI agents (MCP)?

Yes. You can connect it to Claude and other MCP clients through the Apify MCP server. Open the MCP tab for setup steps.


Other YouTube scrapers

ScraperWhat it does
โšก Fast YouTube Channel ScraperA channel's Videos, Shorts and Live tabs
๐ŸŽฅ YouTube ScraperVideos, Shorts, streams, channels, playlists, hashtags and search results
๐Ÿ“ฑ YouTube Shorts ScraperShorts from any channel with channel details
๐ŸŽฌ YouTube Transcript ScraperTranscripts, subtitles and captions in bulk
๐Ÿ”— Best YouTube Transcripts ScraperGet the transcript of any YouTube video, Short, playlist or channel: timestamped captions, SRT, chapters, language choice, video and channel details.

FAQ

Web scraping is generally legal when you collect publicly available data, but comments contain personal data such as names, so follow privacy laws like GDPR, only collect what you need, and respect YouTube's terms. Read Is web scraping legal? for background. This is not legal advice.

How does YouTube Comments Scraper work?

You give it YouTube video links and optional settings such as a comment limit, replies, sort order and filters. It reads each video's public comments, saves every comment and reply that matches your settings as a dataset row, and reports videos it cannot read as error rows.

Why scrape YouTube comments?

Comments show what viewers really think. Teams scrape YouTube comments for sentiment analysis, audience research, brand monitoring, competitor analysis and community feedback. Researchers also build comment datasets for NLP and AI work. Scheduled runs let you track how opinions change after a launch or a new upload.

Why am I getting fewer comments than expected?

Several settings can reduce the count. Check that comments are not disabled on the video, that maxComments is not too low, and that minLikes, keyword or oldestCommentDate are not too strict. A very narrow filter can also hit the maxScanned limit. Check the Errors view and the run log for details.

Can I get YouTube comments without an API key?

Yes, the input has no YouTube API key field. You only need video links and an Apify account. Free Apify accounts include monthly credit, so you can test with a small run before collecting more data. Results are saved to the dataset and downloaded in the format you choose.

Can I export YouTube comments to CSV or Excel?

Yes. Every run saves comments to a dataset that you can download as CSV, Excel, JSON, XML or HTML from the Output tab, or fetch through the API. You can also choose which fields to include, so a spreadsheet export contains only the columns you need, for example author, comment and likes.

Can I get replies to YouTube comments?

Yes. Replies are on by default. Set includeReplies to true and choose maxRepliesPerComment, with one reply per comment as the default or 0 for all replies. Each reply is its own row with type set to reply and replyToCid pointing to the parent comment.

Is YouTube Comments Scraper not working?

First, check the Errors view and the run log for the reason, such as a private video or disabled comments. Make sure the links are valid video links and try a smaller run. If the problem continues, open an issue on the Issues tab with your run link.


Support and feedback

We are always working on improving YouTube Comments Scraper. If you found a bug or have a feature request, create an issue on the Issues tab.

Need a custom solution or more data? Contact us at hello.dataminds@gmail.com.

Built and maintained by the data_minds team on Apify. This Actor is an independent tool and is not affiliated with or endorsed by YouTube; you are responsible for using the data in line with the platform's terms and applicable laws.