YouTube Comments Scraper - Comments & Replies, No API Key
Pricing
from $0.45 / 1,000 results
YouTube Comments Scraper - Comments & Replies, No API Key
Scrape YouTube comments and replies from any video or Short: text, author, likes, reply count, date, pinned and creator-heart flags. Top or newest first, with an optional date limit. No API key, no quota, no login. Export to CSV, Excel or JSON.
Pricing
from $0.45 / 1,000 results
Rating
0.0
(0)
Developer
Alom Dev
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Share
YouTube Comments Scraper: Comments & Replies, No API Key
Scrape the comments and replies of YouTube videos and Shorts into JSON, CSV or Excel. Paste video URLs and get one row per comment: text, author, author channel, likes, reply count, date, pinned and creator-heart flags, and the parent comment for every reply.
- No API key, no quota, no login. It reads what youtube.com shows a logged-out visitor.
- Top comments or newest first, the same two orders as the menu above YouTube's comments.
- Replies included on request, each linked to its parent comment (
replyToCid). - Date limit: only comments from the last 7 days, 30 days, or since a date.
- Monitoring: scheduled runs that return only comments you haven't received yet.
- You are never charged for errors: a deleted video gives no row and no charge.
This Actor is a focused version of the YouTube Scraper (same code). Use the YouTube Scraper if you also need video, channel, Shorts, search or community-post rows, or comments of a whole channel's videos.
What can you use it for?
- Sentiment and audience research: what viewers say about a product launch, a trailer or a competitor's video.
- Brand monitoring: new comments on your own or your competitors' videos every day.
- Community management: find questions and complaints you haven't answered yet (newest first).
- Datasets for analysis and AI: thousands of real comments with likes and reply counts.
Input
| Field | What it does |
|---|---|
startUrls | Video or Shorts URLs (youtube.com/watch?v=…, youtu.be/…, /shorts/…) or bare video ids. |
maxComments | Max comments per video (top-level comments; replies have their own limit). Default 100. |
sortCommentsBy | TOP_COMMENTS or NEWEST_FIRST (default). |
includeReplies | Also scrape the replies of each comment. Default off. |
maxRepliesPerComment | With replies on: replies kept under each comment. Default 5, so 100 comments return at most 600 rows. |
oldestCommentDate | Only comments posted after a date (2026-01-31) or an age (7 days, 2 weeks). Forces newest first. |
onlyNewSinceLastRun + monitorName | Skip comments an earlier run with the same monitoring name returned. |
{ "startUrls": [{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" }], "maxComments": 500, "sortCommentsBy": "TOP_COMMENTS", "includeReplies": true }
Coming from another comments scraper? videoUrls (a plain list of URLs), commentsSortBy ("0" = top,
"1" = newest) and sort (top / newest) are understood too. The field names above are the same as in the
YouTube Scraper, so an input works in both.
Output example
{"type": "comment","cid": "Ugzge340dBgB75hWBm54AaABAg","comment": "can confirm: he never gave us up","author": "@YouTube","authorChannelId": "UCBR8-60-B28hp2BmDPdntcQ","authorAvatarUrl": "https://yt3.ggpht.com/…","authorIsChannelOwner": false,"authorIsVerified": true,"hasCreatorHeart": true,"isPinned": true,"voteCount": 321000,"replyCount": 963,"date": "2025-09-30T11:38:17.654Z","publishedTimeText": "1 year ago","isReply": false,"replyToCid": null,"videoId": "dQw4w9WgXcQ","pageUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)","commentsCount": 2457929,"scrapedAt": "2026-09-30T11:40:00.000Z"}
commentsCount is the video's total comment count. Replies have isReply: true and the parent's id in
replyToCid.
How much does it cost?
Pay per result, platform usage (compute and proxy) included. One result = one comment or reply row.
| Apify plan | Price per 1,000 results |
|---|---|
| Free | $1.00 |
| Starter (Bronze) | $0.75 |
| Scale (Silver) | $0.60 |
| Business (Gold) and above | $0.45 |
10,000 comments cost $10 on the Free plan and $4.50 on Business. Inputs that fail (a deleted video, an unknown channel, a URL this Actor doesn't take) produce no row and no charge, and so do rows skipped by monitoring.
Monitoring (only new comments)
Turn on Only new comments since my last run, give it a name (e.g. launch-video) and schedule the run. Each run
reads the newest maxComments comments of each video and returns only the ones no earlier run with that name
returned. Skipped comments are not charged. The memory is kept per name and is separate from the YouTube
Scraper's memory.
Limitations
- Comment dates are approximate. YouTube only shows "3 days ago", so
dateis estimated from that text and the date limit is day/week/month precise. Like counts are rounded the way YouTube shows them ("321K"). - Age-restricted videos don't show comments to logged-out visitors. The YouTube Scraper has an optional own-cookie mode for those; this Actor does not.
- Members-only and private videos and videos with comments turned off give no rows.
- Speed: one video's comments are read page by page (about 20 per request). In our tests that was roughly 650 top-level comments per minute per video, and about 200 per minute with many replies; several videos run in parallel. A run that hits its timeout ends as "partial" with everything scraped so far saved (and charged only for those rows).
- Only video and Shorts URLs are accepted. A channel or playlist URL is skipped and named in the status message (the YouTube Scraper can scrape the comments of a channel's latest videos).
FAQ
Do I need a YouTube account or an API key? No.
Is it legal? It collects publicly visible data. Comments contain personal data (usernames and what people wrote), so you are responsible for handling it lawfully, for example under GDPR.
Why did my run say "partial"? Some videos could not be finished (for example the run hit its timeout). All comments scraped so far are in the dataset; the status message says what was missed.
More scrapers from the same developer
- YouTube Scraper: videos, channels, Shorts, comments, subtitles and community posts without the API quota
- YouTube Channel Scraper: every video of a channel with views, dates and the channel's stats
- YouTube Shorts Scraper: Shorts from any channel or keyword search
- Google Trends API & Scraper: interest over time, regions, related queries and Trending Now, a pytrends alternative
- Threads Scraper: posts, profiles, replies and keyword search on Meta Threads, no login
- Bilibili Scraper: videos, creators, full comment threads and danmaku from B站, no login
- Google Hotels Scraper: hotel prices from every booking site across dates, room rates and reviews
- Google Ads Transparency Scraper: every Google ad a competitor runs, with the real ad copy
- Threads Account Finder: Threads accounts by keyword with followers, bio links and the contacts they list
- Threads Hashtag & Keyword Monitor: only the new posts for your keywords and #hashtags, for scheduled runs
- Google Flights Scraper: flight prices, airlines, layovers and a cheapest-date calendar for any route
Feedback
Missing a field, found a bug, or need a feature? Open an issue in the Issues tab and I'll take a look. If this Actor saved you time, a short review on the Store page helps other people find it.