YouTube Comments Scraper
Pricing
$0.40 / 1,000 comments
YouTube Comments Scraper
Scrape YouTube video comments: text, author, likes, reply count, timestamps. Pure HTTP, no browser, no proxy needed. Cheap per-comment pricing.
Pricing
$0.40 / 1,000 comments
Rating
0.0
(0)
Developer
Z Michael
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
Extract comments from any YouTube video — text, author, likes, reply count and publish time — as clean structured data.
Use it for sentiment analysis, audience research, creator analytics, or building text datasets for LLM training.
What you get
- Up to 5,000 comments per video — paginates automatically
- One item per video — metadata plus a
commentsarray, so you keep the video context - No API key, no proxy setup — nothing to configure beyond the video URLs
- ~5 seconds per video for 100 comments
Example output
{"videoId": "dQw4w9WgXcQ","title": "Rick Astley - Never Gonna Give You Up","commentCount": 100,"pagesScraped": 4,"comments": [{"commentId": "UgzKYksqeQ5gA3t0g0F4AaABAg","text": "Gonna flag this for nudity so I can rick roll the YouTube staff","author": "@grustache4569","authorChannelId": "UC...","isVerified": false,"isCreator": false,"likes": "107K","replies": "671","publishedTime": "3 years ago"}]}
Use cases
- Sentiment analysis — export comments and run them through any NLP model
- Audience research — what do viewers actually complain about or praise
- Creator analytics — comment volume and engagement per upload
- Dataset building — collect text corpora for training or evaluation
- Product research — mine launch videos and reviews for feature requests
Input
| Field | Type | Description |
|---|---|---|
| Video URLs or IDs | array | YouTube URLs or 11-character video IDs. Multiple allowed. |
| Max comments per video | integer | 1–5,000. Default 100. |
| Content language | string | Interface language, affects relative dates. Default en. |
Output fields
| Field | Example |
|---|---|
| videoId | dQw4w9WgXcQ |
| title | Rick Astley - Never Gonna Give You Up |
| commentCount | 100 |
| comments[].text | Gonna flag this for nudity... |
| comments[].author | @grustache4569 |
| comments[].likes | 107K |
| comments[].replies | 671 |
| comments[].publishedTime | 3 years ago |
| comments[].isVerified | false |
| comments[].isCreator | false |
Pricing
Pay per comment: $0.0004 per comment.
- 100 comments = $0.04
- 1,000 comments = $0.40
- 10,000 comments across 100 videos = $4.00
Only comments actually delivered are charged. A video with comments disabled costs nothing.
FAQ
Do I need a YouTube Data API key? No. There is nothing to register and no quota limit.
What happens if a video has comments disabled?
That video returns an item with error: "comments_disabled" and you are not charged for it.
Top-level comments or replies too?
Top-level comments only. Each comment includes a replies count so you know which threads have discussion worth opening manually.
Why is likes a string like "107K"?
That is how YouTube renders it. Parse to a number if you need arithmetic.
Can I scrape the same video repeatedly? Yes. Note that YouTube returns comments in its own order, so results can shift between runs.
Does it work for any language? Yes. Text is returned as-is; the language field only affects relative date formatting.
Related Actors
- YouTube Search Scraper — find the videos worth scraping first
- YouTube Channel Videos Scraper — get a channel's full upload list
- YouTube Transcript Scraper — pair comments with what was actually said
Monitor Mode (daily incremental runs)
Set Only new items = true to turn this scraper into a monitor. It remembers what was already delivered for each query/video/channel and returns only new items since the last run.
How it works:
- First run = baseline, returns everything
- Every run after = returns only the delta (new comments / newly listed videos)
- No new data = empty dataset, you are not charged (pay-per-result billing only fires on delivered items)
- Combine with Apify Schedules to run it daily or hourly
Optional Webhook URL: whenever new items are found, the actor POSTs a JSON payload — {event, source, newCount, scannedCount, sample, at} — to your endpoint (Slack webhook, n8n, Make, your own API). Nothing is sent when there is no new data; failed deliveries never fail the run.
Typical use cases: track brand mentions in new YouTube comments, alert on newly published videos matching a keyword, watch a competitor channel for fresh uploads — without re-paying for data you already have.