YouTube Comments Scraper (Videos & Shorts)
Pricing
from $0.70 / 1,000 comment scrapeds
YouTube Comments Scraper (Videos & Shorts)
Scrape comments from YouTube videos and Shorts. Get comment text, author, likes, replies, timestamps, pinned status, and more.
Pricing
from $0.70 / 1,000 comment scrapeds
Rating
0.0
(0)
Developer
LurkAPI
Actor stats
1
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Extract comments and replies from any YouTube video, Short, channel, or playlist. Get structured data ready for analysis in seconds.
π¬ What it does
Give it one or more YouTube URLs, and it will:
- Pull every comment from each video, including Shorts
- Grab reply threads with configurable depth
- Expand channels and playlists automatically into individual videos
- Filter comments by keyword or date range
- Detect comment language and look up commenter location (optional add-ons)
- Deliver structured data you can export as JSON, CSV, or Excel
Perfect for sentiment analysis, audience research, competitor monitoring, content strategy, and brand tracking.
π How to use it
Step 1: Add your URLs
Paste YouTube URLs or 11-character video IDs into the input field. You can add up to 500 per run.
Supported formats:
https://www.youtube.com/watch?v=VIDEO_ID(regular videos)https://youtu.be/VIDEO_ID(short links)https://www.youtube.com/shorts/VIDEO_ID(Shorts)https://www.youtube.com/live/VIDEO_ID(live streams)https://www.youtube.com/embed/VIDEO_ID(embeds)https://www.youtube.com/@ChannelName(channels: expands to videos automatically)https://www.youtube.com/channel/CHANNEL_ID(channels by ID)https://www.youtube.com/playlist?list=PLAYLIST_ID(playlists: expands to videos automatically)- Bare video IDs like
dQw4w9WgXcQ
When you provide a channel or playlist URL, the scraper finds the videos for you and scrapes comments from each one.
Step 2: Configure options
- Sort by: Choose "Top comments" (most popular) or "Newest first" (most recent).
- Max comments per video: Limit how many top-level comments to collect. Default is 100. Set to 0 for unlimited.
- Include replies: Toggle reply collection on or off. On by default.
- Max replies per comment: Limit replies per thread. Default is 10. Set to 0 for unlimited.
- Comment filter keywords: Only keep comments containing specific text. Case-insensitive. Leave empty to keep all.
- Date range: Only keep comments posted within a specific window. Approximate, since YouTube shows relative timestamps.
- Max videos per channel: When scraping a channel, how many videos to include. Default is 50, max 500.
Step 3: Run and get results
Click Start and wait for the run to finish. Results appear in the Output tab as a table. You can download the data as JSON, CSV, or Excel.
Using the API
{"urls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ","https://www.youtube.com/shorts/kJQP7kiw5Fk","https://www.youtube.com/@ChannelName","9bZkp7q19f0"],"sortBy": "TOP_COMMENTS","maxCommentsPerVideo": 100,"includeReplies": true,"maxRepliesPerComment": 10,"maxVideosPerChannel": 50}
π Output fields
Each row in the output represents one comment or reply.
| Field | Description |
|---|---|
status | "Success" or an error message explaining what went wrong |
videoId | YouTube video ID |
videoUrl | Full YouTube URL |
videoTitle | Title of the video |
channelName | Name of the channel that uploaded the video |
channelId | Channel ID |
totalCommentCount | Total number of comments on the video (when available) |
commentId | Unique comment ID |
text | The comment text |
authorName | Display name of the commenter |
authorChannelId | Commenter's channel ID |
authorChannelUrl | Link to the commenter's channel |
authorProfileImageUrl | Commenter's profile picture URL |
likeCount | Number of likes on the comment |
replyCount | Number of replies (top-level comments only) |
publishedAt | When the comment was posted (ISO 8601 datetime) |
isReply | Whether this row is a reply to another comment |
parentCommentId | The parent comment's ID (for replies only) |
isPinned | Whether the comment is pinned by the video creator |
isHearted | Whether the creator hearted this comment |
isAuthorChannelOwner | Whether the commenter is the video creator |
detectedLanguage | ISO 639-3 language code (only when language detection is enabled) |
authorLocation | Self-reported location from commenter's channel (only when location lookup is enabled) |
Example output
{"status": "Success","videoId": "dQw4w9WgXcQ","videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","videoTitle": "Rick Astley - Never Gonna Give You Up","channelName": "Rick Astley","channelId": "UCuAXFkgsw1L7xaCfnd5JJOw","totalCommentCount": 3200000,"commentId": "UgyL2...","text": "This song is a masterpiece.","authorName": "MusicFan42","authorChannelId": "UC...","authorChannelUrl": "https://www.youtube.com/@MusicFan42","authorProfileImageUrl": "https://yt3.ggpht.com/...","likeCount": 1200,"replyCount": 15,"publishedAt": "2024-03-15T10:30:00.000Z","isReply": false,"parentCommentId": null,"isPinned": true,"isHearted": true,"isAuthorChannelOwner": false,"detectedLanguage": "eng","authorLocation": "United States"}
The status field
Every row has a status field. When everything works, it says "Success". When something goes wrong, the status tells you exactly what happened and what you can do about it:
- "Comments are disabled for this video."
- "This video is private and cannot be accessed."
- "This video is unavailable. It may have been removed by the creator."
- "Could not load channel videos. The channel may not exist or may be private."
π Country & Language
These optional features add extra data to each comment. They are disabled by default and each has a separate cost.
Detect comment language
Turn on "Detect Comment Language" to identify the language of each comment. The result appears in the detectedLanguage field as an ISO 639-3 code (e.g., "eng" for English, "kor" for Korean, "fra" for French).
Cost: $0.50 per 1,000 detections ($0.0005 per comment). You are only charged when a language is successfully detected, not when detection fails on very short comments.
Language detection works best on comments longer than a few words. Very short comments (like "lol" or emojis) may not return a result.
Look up author location
Turn on "Look Up Author Location" to get the self-reported location from each commenter's YouTube channel. The result appears in the authorLocation field.
Cost: $2 per 1,000 unique authors ($0.002 per author). You are only charged once per unique commenter, and only when a location is found. If the commenter hasn't set a location on their channel, no charge applies.
Good to know about location lookup:
- Not all YouTube users set a location on their channel. Many will return empty.
- The location is self-reported, not verified by YouTube.
- This feature increases run time because it checks each unique commenter's profile.
π Proxy settings
By default, the scraper uses Apify's datacenter proxies to access YouTube.
- Automatic (default): Apify selects the best proxy automatically.
- Datacenter: Fast and affordable. Works for most videos.
- Residential: Use this if you're getting frequent blocks or empty results. Residential IPs look like regular users to YouTube.
- Own proxies: Provide your own proxy URLs.
- No proxy: Disable proxies entirely. There will be no IP rotation if you get blocked.
If you see errors about sign-in challenges or bot detection, switch to residential proxies.
π° Pricing
Base cost: $1 per 1,000 comments ($0.001 per comment).
Both top-level comments and replies count toward the total. You only pay for comments that are successfully collected. Comments filtered out by keyword or date range are not charged.
Optional add-ons:
- Language detection: +$0.50 per 1,000 successful detections
- Author location lookup: +$2 per 1,000 locations found
Examples:
- 100 comments from one video: $0.10
- 1,000 comments with replies: $1.00
- 10 videos with 100 comments each: $1.00
- 1,000 comments with language detection: ~$1.50
- 1,000 comments with location lookup (500 unique authors, 50 locations found): $1.10
Set maxCommentsPerVideo to control costs. The default of 100 comments per video costs about $0.10 per video.
π‘ Good to know
- Shorts work just like regular videos. The same comment collection works for both.
- Channels and playlists expand automatically. Provide a channel URL and the scraper finds the videos for you. Use
maxVideosPerChannelto control how many (default 50, max 500). - Reply threads can go deep. Use
maxRepliesPerCommentto limit how many replies are collected per thread. - Keyword filtering saves money. Comments that don't match your filter are skipped entirely and not charged.
- Date filtering is approximate. YouTube shows relative timestamps ("2 days ago"), which get converted to dates. Recent comments are accurate to the hour, older ones to the month.
- Disabled comments show a clear message. You'll see "Comments are disabled for this video" instead of a silent failure.
- Duplicates are removed automatically. If you paste the same video twice, it only gets scraped once.
- Data is stored in your Apify storage. How long it's kept depends on your Apify plan.
- Up to 500 URLs per run. For larger batches, split them across multiple runs.
β FAQ
Why did my scrape return no comments?
The video might have comments disabled, or it might be private or unavailable. Check the status field in the output for details. If you're seeing bot detection errors, try switching to residential proxies.
What's the difference between "Top comments" and "Newest first"? "Top comments" shows the most popular comments first (by likes and engagement). "Newest first" shows the most recently posted comments. This matches the sort options you see on YouTube itself.
Are replies included in the comment count?
Yes. Both top-level comments and replies are charged. Replies are collected separately after each top-level comment and have their own limit via maxRepliesPerComment.
How accurate are the timestamps? YouTube shows relative timestamps ("2 days ago", "3 months ago"). The scraper converts these to approximate ISO dates. Recent comments are accurate to the hour, older ones to the month.
Can I scrape all comments from a channel?
Yes. Provide a channel URL (like https://www.youtube.com/@ChannelName) and set maxVideosPerChannel to control how many of their videos to scrape. The scraper expands the channel into individual videos and scrapes comments from each one.
How does the keyword filter work? Enter a word or phrase in the "Comment Filter Keywords" field. Only comments containing that text (case-insensitive) will be included in the output and charged. Non-matching comments are skipped entirely.
Which proxy should I use? Start with the default (datacenter). If you get frequent errors about sign-in challenges, switch to residential proxies. Residential proxies are slower but much harder for YouTube to detect.
How long are the files stored? Stored in your Apify storage. How long they're kept depends on your Apify plan.
π Other tools you might like
- YouTube Transcript Download - Download transcripts and subtitles from YouTube videos.
- YouTube Channel Email Scraper - Find email addresses from YouTube channels.
βοΈ Disclaimer
This tool is intended for personal, research, and educational use. You are responsible for complying with YouTube's Terms of Service and applicable laws in your jurisdiction. The developer is not liable for misuse. Data availability depends on YouTube at run time.
Keywords: youtube comments, youtube comment scraper, youtube shorts comments, youtube data extraction, comment analysis, youtube channel comments, youtube playlist comments