๐ฌ YouTube Comments Scraper
Pricing
from $1.40 / 1,000 results
๐ฌ 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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Security
Limited permissionsShare
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.
| Data | Field | What it contains |
|---|---|---|
| ๐ Comment ID | cid | Unique ID of the comment or reply |
| ๐งต Parent ID | replyToCid | ID of the parent comment for a reply, otherwise empty |
| ๐ท Type | type | comment or reply |
| ๐ Posted (as shown) | publishedTimeText | Relative time such as "3 weeks ago" |
| ๐ Estimated date | publishedTimeEstimate | Estimated date (YYYY-MM-DD) calculated from the relative time |
| ๐ฏ Estimate precision | publishedTimePrecision | The unit the estimate is based on, for example week |
| ๐ Edited | isEdited | True when the comment is marked as edited |
| ๐ฌ Comment text | comment | Full comment text |
| ๐ค Author | author | Display name of the commenter |
| ๐ Author channel ID | authorChannelId | Channel ID of the commenter |
| ๐ Author channel URL | authorChannelUrl | Link to the commenter's channel |
| ๐ท Author avatar | authorAvatarUrl | Avatar image URL |
| ๐ฌ Channel owner | authorIsChannelOwner | True when the video owner wrote it |
| โ Verified | authorIsVerified | True for verified authors |
| ๐ Pinned | isPinned | True for a pinned comment |
| ๐จ Reply count | replyCount | Number of replies under the comment |
| ๐ Likes | voteCount | Likes as a number |
| ๐ Likes (as shown) | voteCountText | Likes exactly as displayed, for example 1.3K |
| ๐ Creator heart | hasCreatorHeart | True when the creator hearted the comment |
| ๐ Video ID | videoId | ID of the video |
| ๐ Video URL | pageUrl | Link to the video |
| ๐ฌ Total comments | commentsCount | Total comment count shown for the video |
| ๐ฌ Video title | title | Title of the video |
| ๐ฉ Error flag | isError | false for comments, true for error rows |
Note:
publishedTimeEstimateandpublishedTimePrecisionare estimates calculated from the relative time text and work only when the page language is English.commentsCountcan be empty.replyToCidis 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.
- Create a free Apify account using your email.
- Open YouTube Comments Scraper.
- Add one or more video links to YouTube Video URLs (
urls). - Set Max comments per video (
maxComments) and, if you want replies, Include replies (includeReplies). - Click Start and wait for the run to finish.
- 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.
| Plan | Price per result | Price 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.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
urls | array | Yes | prefilled with one video | Video links (watch, youtu.be, Shorts) or video IDs. Duplicates are removed |
maxComments | integer | No | 10 | Top-level comments per video. Replies do not count. 0 means no limit |
sortCommentsBy | string | No | TOP_COMMENTS | TOP_COMMENTS or NEWEST_FIRST |
oldestCommentDate | string | No | empty | Stop at comments older than this date. Switches sorting to newest first |
includeReplies | boolean | No | true | Also save replies under collected comments |
maxRepliesPerComment | integer | No | 1 | Replies saved per comment. 0 means all replies |
minLikes | integer | No | 0 | Keep only comments and replies with at least this many likes |
keyword | string | No | empty | Keep only comments whose text contains this word or phrase (not case-sensitive) |
hl | string | No | empty (auto) | Language code for the video page |
gl | string | No | empty (auto) | Region code for the video page |
proxyConfiguration | object | No | {"useApifyProxy": false} | Optional network settings. The default is fine for most videos |
videoConcurrency | integer | No | 3 | Videos processed at the same time (1 to 20) |
replyConcurrency | integer | No | 5 | Reply threads processed at the same time per video (1 to 20) |
maxRetries | integer | No | 3 | Retries for a failed request (1 to 10) |
maxScanned | integer | No | 20000 | Stop 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": 2for up to 100 comments and 2 replies each - โ Bad:
"maxComments": 100and expecting 100 rows in total when replies are on
Warning: Setting
maxCommentsto0together withmaxRepliesPerCommentat0can 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-DDformat 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
voteCountis an approximation ofvoteCountText. - 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
maxCommentsandmaxRepliesPerComment, because every saved row is billed. - Turn off
includeRepliesif you only need top-level comments. - Use
minLikesorkeywordto save only the rows you need. - Add several videos to one run;
videoConcurrencycontrols 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 ApifyClientclient = 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
| Scraper | What it does |
|---|---|
| โก Fast YouTube Channel Scraper | A channel's Videos, Shorts and Live tabs |
| ๐ฅ YouTube Scraper | Videos, Shorts, streams, channels, playlists, hashtags and search results |
| ๐ฑ YouTube Shorts Scraper | Shorts from any channel with channel details |
| ๐ฌ YouTube Transcript Scraper | Transcripts, subtitles and captions in bulk |
| ๐ Best YouTube Transcripts Scraper | Get the transcript of any YouTube video, Short, playlist or channel: timestamped captions, SRT, chapters, language choice, video and channel details. |
FAQ
Is it legal to scrape YouTube comments?
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.