How to scrape YouTube Shorts
Scrape YouTube Shorts from channels or single Shorts URLs: views, likes, comment count, exact publish date, duration, hashtags, description and full channel stats. Sort by newest, popular or oldest, filter by date, monitor for new Shorts. No login, no API key, no proxy needed.
Open YouTube Shorts Scraper: Views, Likes, Comments, $2/1K on Apify
YouTube Shorts scraper for any public channel, no login or API key: title, views, likes, comment count, exact publish time, duration, hashtags and description for every Short, with the full channel profile (subscribers, total views, country, joined date, links) on each row.
This Actor vs streamers/youtube-shorts-scraper: that one is the most-used YouTube Shorts scraper and also returns dislikes. Choose this one for the full channel profile on every Short row, exact publish times, a newer-than date filter, and a monitor mode that returns only Shorts you have not seen yet.
What it outputs
- Identity:
id,url,title,thumbnailUrl,order(position on the channel Shorts tab). - Performance:
viewCount,likes,commentsCount,commentsTurnedOff. - Timing:
date(exact publish time, ISO format),publishedTimeText,duration,durationSeconds. - Content:
text(the description),hashtags,tags,category,hasSubtitles,subtitleLanguages. - Flags:
isAgeRestricted,isMembersOnly,isFamilySafe,availableCountriesCount. - Channel (on every row):
channelId,channelName,channelHandle,channelUsername,channelUrl,numberOfSubscribers,subscriberCountText,channelTotalViews,channelTotalVideos,channelCountry,channelJoinedDate,channelDescription,channelLinks,channelKeywords,channelAvatarUrl,channelBannerUrl,channelVerified. - Provenance:
input,fromYTUrl,fromChannelListPage,sortedBy,scrapedAt.
Rows are flat JSON, so they load straight into a spreadsheet, a database or a pandas data frame without any unpacking, apart from the two list fields (hashtags, channelLinks) and the subtitle list.
Example input
{
"channels": ["@MrBeast", "@mkbhd"],
"maxResultsShorts": 25,
"sortChannelShortsBy": "POPULAR"
}Sample output
{
"type": "shorts",
"id": "aNI2jv7lBPQ",
"url": "https://www.youtube.com/shorts/aNI2jv7lBPQ",
"title": "Giving $10,000 To A Random Subscriber",
"viewCount": 26368305,
"likes": 786261,
"commentsCount": 19000,
"date": "2026-10-09T09:00:01-07:00",
"duration": "0:40",
"durationSeconds": 40,
"category": "Entertainment",
"hasSubtitles": true,
"channelName": "MrBeast",
"channelHandle": "@MrBeast",
"numberOfSubscribers": 521000000,
"channelCountry": "United States",
"channelJoinedDate": "Feb 19, 2012",
"channelTotalVideos": 1006,
"channelVerified": true,
"order": 1,
"fromChannelListPage": "shorts",
"sortedBy": "NEWEST"
}Sample taken from the actor's README; values shown as placeholders there are placeholders.
FAQ
What does a run cost?
On the Free plan, 1,000 Shorts cost $2.00. Higher plans pay less per Short. There is no extra charge for details, sorting or date filters.
What happens if a channel has no Shorts?
The run records a warning for that channel, delivers nothing for it and moves on to the next one.
Can I run it on a schedule?
Yes. Create a schedule in the Apify console and enable monitor mode so each run delivers only new Shorts.
Where do I report a problem?
Open an issue on the Actor's Issues tab with the run link and the input you used.
Can I get the video file or the transcript?
This Actor returns metadata. Use a transcript extractor for captions.
Where do I run it?
On Apify: https://apify.com/transparent_meteorite/youtube-shorts-scraper. Check the Pricing tab there for current prices.
Try YouTube Shorts Scraper: Views, Likes, Comments, $2/1K on Apify