YouTube Shorts Scraper: Comments & Creator Engagement Data
Pricing
$19.99/month + usage
YouTube Shorts Scraper: Comments & Creator Engagement Data
YouTube Shorts Scraper: Comments & Creator Engagement Data extracts data from YouTube Shorts videos. It collects video URLs, titles, views, likes, comments, publish dates, and channel details.
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
ScrapePilot
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
15 days ago
Last modified
Categories
Share
A YouTube Shorts scraper that pulls full video metadata from any channel, handle, or keyword search and the top and newest comments (with replies) on every Short -- including real creator-heart and pinned-comment flags. Use it as a YouTube Shorts data export tool, a YouTube comments scraper, or a lightweight creator-engagement analytics feed, no login required.
What this actor does
- Scrapes YouTube Shorts from a channel handle, a full channel URL, a plain username, or a free-text keyword search -- one run can process many inputs at once.
- Extracts full video metadata: title, view count, likes, publish date, duration, hashtags, description links, caption/subtitle availability, video format list, and channel details (avatar, banner, subscriber count, verification status, total videos/views, join date, location).
- Collects comments & replies as their own dataset rows for every Short, continuation-paginated so you're not capped at whatever loads on the first page.
- Surfaces real creator-engagement signals per comment: whether the video's creator hearted that specific comment, and whether the comment is pinned -- both read from the actual signal YouTube uses internally, not a guess.
- Optional AI sentiment & topic tagging on comment text, using your own AI provider API key (off by default).
- Filters by publish date, with an absolute date or a relative window of any length (days/weeks/months/years), and sorts by newest, oldest, or most popular.
Key features
- Flexible input: channel handles (
@MrBeast), plain usernames (MrBeast), full channel URLs, or keyword search (funny shorts). - Accurate result counts: ask for 3 Shorts, get exactly 3 -- the count you enter is what you get, not padded to a hidden minimum.
- Real date filtering:
YYYY-MM-DDabsolute dates or<N> day/week/month/year(s)relative windows for any N, matching what the input field actually promises. - Comments & replies child rows:
type: "comment"/type: "reply"rows linked to their parent video byvideoId, each with author, text, like count, reply count, and the creator-heart/pinned flags above. - Reliable connection handling: the run automatically adjusts its own connection settings if a request runs into trouble, so a single hiccup doesn't fail the whole run.
- Real-time output: every row -- videos and comments alike -- lands in the dataset as soon as it's collected, so you can watch results fill in live.
- 43 video-level fields + 17 comment-level fields, all visible in dedicated dataset table views (a "Scraped Shorts Videos" view and a separate "Comments & Replies" view).
Input
Example input
{"startUrls": ["mrbeast", "@MrBeast", "https://www.youtube.com/@MrBeast/shorts", "funny shorts"],"maxResults": 10,"publishedAfter": "30 days","sortOrder": "newest","fetchComments": true,"maxCommentsPerVideo": 20,"fetchReplies": false,"enableAiSentiment": false,"proxyConfiguration": { "useApifyProxy": false }}
Input fields
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array (required) | ["rainbowicecream9780"] | Channel handles, usernames, full channel URLs, or search keywords. |
maxResults | integer | 10 | Max Shorts per channel/keyword (1-10,000). Honored exactly. |
publishedAfter | string | (none) | YYYY-MM-DD absolute date, or <N> day/week/month/year(s) relative (e.g. 17 days, 10 years). |
sortOrder | enum | newest | newest, popular (by views), or oldest. |
fetchComments | boolean | true | Collect top+newest comments for every scraped Short as separate dataset rows. |
maxCommentsPerVideo | integer | 20 | Max combined comment + reply rows per Short (0-500). |
fetchReplies | boolean | false | Expand replies under their parent comment (still capped by maxCommentsPerVideo). |
enableAiSentiment | boolean | false | Tag each comment with sentiment + topic keywords using your own AI key. |
aiApiKey | string (secret) | (none) | Your own API key for the AI model below. Only used when enableAiSentiment is on. |
aiModel | string | (none) | Model name, e.g. gpt-4o-mini, claude-sonnet-4-5, gemini-2.5-flash. |
proxyConfiguration | object | { "useApifyProxy": false } | Standard Apify proxy configuration. |
Output
Video row example
{"type": "shorts","title": "Giving Trick-or-Treaters Weirder and Weirder Gifts","id": "R7MkZL5i3FQ","url": "https://www.youtube.com/shorts/R7MkZL5i3FQ","thumbnailUrl": "https://i.ytimg.com/vi/R7MkZL5i3FQ/hqdefault.jpg","viewCount": 64493572,"date": "2025-11-07","likes": 909841,"channelName": "MrBeast","channelUrl": "https://www.youtube.com/@MrBeast","channelUsername": "MrBeast","numberOfSubscribers": 450000000,"isChannelVerified": true,"duration": "0:27","commentsCount": 7171,"commentsTurnedOff": false,"hashtags": ["shorts"],"isAgeRestricted": false,"isPaidContent": false,"isMembersOnly": false}
Every video row carries the full field set: title, translatedTitle, type, id, url, thumbnailUrl, viewCount, date, likes, location, channelName, channelUrl, channelUsername, collaborators, channelId, channelDescription, channelJoinedDate, channelDescriptionLinks, channelLocation, channelAvatarUrl, channelBannerUrl, channelTotalVideos, channelTotalViews, numberOfSubscribers, isChannelVerified, inputChannelUrl, isAgeRestricted, aboutChannelInfo, duration, commentsCount, text, translatedText, descriptionLinks, subtitles, order, commentsTurnedOff, fromYTUrl, isMonetized, hashtags, formats, isMembersOnly, input, fromChannelListPage, isPaidContent.
Comment row example
{"type": "comment","isChild": true,"videoId": "R7MkZL5i3FQ","videoUrl": "https://www.youtube.com/shorts/R7MkZL5i3FQ","commentId": "UgxABC...","isReply": false,"text": "This made my day!","author": "@somefan","voteCount": 1240,"replyCount": 3,"hasCreatorHeart": true,"commentIsPinned": false,"authorIsChannelOwner": false,"authorIsVerified": false,"publishedTimeText": "2 days ago","sentiment": null,"topics": null}
Comment/reply rows carry: type, isChild, videoId, videoUrl, channelName, commentId, parentCommentId, isReply, text, author, authorAvatarUrl, authorIsChannelOwner, authorIsVerified, publishedTimeText, voteCount, replyCount, hasCreatorHeart, commentIsPinned, sentiment, topics, order, scrapedAt. sentiment/topics stay null unless enableAiSentiment is on and classification succeeds -- never a guessed value.
Use cases
- Creator engagement research: see which comments a creator actually hearted or pinned, not just raw comment counts.
- Content & trend research: analyze Shorts performance across channels or by keyword.
- Competitor monitoring: track competitor channels' Shorts output and audience reaction.
- Community sentiment tracking: pair the comments feed with the optional AI tagging to gauge audience reaction to a video or a channel over time.
- Dataset building: export a structured YouTube Shorts + comments dataset to CSV/JSON for downstream analysis.
Frequently asked questions
Q: Can I scrape private channels? A: No, the actor only scrapes publicly available Shorts and their public comments.
Q: What happens if a channel has no Shorts? A: The actor returns no rows for that input and continues with the rest.
Q: Is hasCreatorHeart a real signal or a guess?
A: It's read from the actual per-comment engagement data YouTube returns, not inferred from anything else -- it's only true when the video's own creator hearted that specific comment.
Q: Are comments capped per video?
A: Yes -- maxCommentsPerVideo caps the combined comment + reply rows per Short (default 20, max 500). Set it to 0 to skip comments even if fetchComments is on.
Q: What date filters are supported?
A: An absolute YYYY-MM-DD date, or a relative window like 3 days, 17 days, 2 weeks, 1 month, or 10 years -- any whole number works, not just a couple of hardcoded values.
Q: Do I need my own AI key for sentiment tagging?
A: Yes. enableAiSentiment is off by default; when you turn it on, supply your own API key in aiApiKey and a model name in aiModel. Comments are still collected normally either way.
Q: How are results sorted?
A: By sortOrder: newest (default), oldest, or popular (by view count).
Cautions
- Data is collected only from publicly available YouTube pages.
- No data is taken from private accounts, password-protected content, or authenticated-only surfaces.
- The end user is responsible for ensuring legal compliance (privacy, data protection, platform terms) for their use case.