YouTube Shorts Scraper: Comments & Creator Engagement Data avatar

YouTube Shorts Scraper: Comments & Creator Engagement Data

Pricing

$19.99/month + usage

Go to Apify Store
YouTube Shorts Scraper: Comments & Creator Engagement Data

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

ScrapePilot

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

15 days ago

Last modified

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-DD absolute 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 by videoId, 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

FieldTypeDefaultDescription
startUrlsarray (required)["rainbowicecream9780"]Channel handles, usernames, full channel URLs, or search keywords.
maxResultsinteger10Max Shorts per channel/keyword (1-10,000). Honored exactly.
publishedAfterstring(none)YYYY-MM-DD absolute date, or <N> day/week/month/year(s) relative (e.g. 17 days, 10 years).
sortOrderenumnewestnewest, popular (by views), or oldest.
fetchCommentsbooleantrueCollect top+newest comments for every scraped Short as separate dataset rows.
maxCommentsPerVideointeger20Max combined comment + reply rows per Short (0-500).
fetchRepliesbooleanfalseExpand replies under their parent comment (still capped by maxCommentsPerVideo).
enableAiSentimentbooleanfalseTag each comment with sentiment + topic keywords using your own AI key.
aiApiKeystring (secret)(none)Your own API key for the AI model below. Only used when enableAiSentiment is on.
aiModelstring(none)Model name, e.g. gpt-4o-mini, claude-sonnet-4-5, gemini-2.5-flash.
proxyConfigurationobject{ "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.