YouTube Shorts Scraper: views, likes, date, channel monitor
Pricing
from $0.80 / 1,000 result items
YouTube Shorts Scraper: views, likes, date, channel monitor
YouTube Shorts scraper with no API key and no login: every Short on a channel Shorts tab (paged past 48) or matching a keyword search, as one row with title, view count, duration and channel. Optional exact views, likes and publish date per Short. Monitor mode alerts on new Shorts.
Pricing
from $0.80 / 1,000 result items
Rating
0.0
(0)
Developer
Viktor Dubnytskiy
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Features
Share
Get YouTube Shorts as one flat row per Short: video id, Shorts URL, title, view count, vertical thumbnail and the channel behind it — either the latest Shorts of a list of channels, or Shorts matching a keyword search. No API key, no OAuth, no cookies — the actor reads only what YouTube serves to a logged-out visitor.
Try it: the prefilled example opens the 12 latest MrBeast Shorts with exact views, likes and publish date and returns 12 rows in about 30 seconds for $0.012 plus about $0.0002 of Apify platform usage. Results cost $1 per 1,000; platform usage is billed to your account.
Run it once for a list, or run it on a schedule in monitor mode and get a webhook or Telegram alert the moment a channel posts a new Short.
What you get
One row per Short: id (video id), url (https://www.youtube.com/shorts/<id>), videoId, title, viewCountText,
viewCount, likeCount, publishedAt, durationSeconds, thumbnailUrl, channelId, channelHandle,
channelName, channelSubscribers, detailsFetched, rank, source (channel or search), searchQuery,
scrapedAt.
Channel rows come back in tab order — newest Short first, rank: 1. Search rows come back in the order YouTube's
Shorts filter returns them, ranked per query.
Example output
| Field | Example value |
|---|---|
id / url | wSh8fAFWEWs / https://www.youtube.com/shorts/wSh8fAFWEWs |
title | Survivor vs Beast Games |
viewCountText / viewCount | 39M views / 39916641 (exact, with includeDetails) |
likeCount / publishedAt | 921474 / 2026-01-16T11:00:01-08:00 (with includeDetails) |
durationSeconds | 27 |
channelHandle / channelId | @MrBeast / UCX6OQ3DkcsbYNE6H8uQQuVA |
thumbnailUrl | https://i.ytimg.com/vi/wSh8fAFWEWs/oardefault.jpg?... |
source / searchQuery | channel / null, or search / "funny fails" |
Use cases
- Track what a set of creators is posting in Shorts and how each Short performs, without opening YouTube.
- Build a content-research list for a topic: the top Shorts matching a keyword, with titles and view counts.
- Watch competitors on a schedule and get alerted on every new Short (monitor mode keys on the video id).
How it works
- Each channel's public Shorts tab (
https://www.youtube.com/@handle/shorts) is opened as a logged-out visitor for the first 30-48 Shorts, newest first. Further Shorts, up tomaxShortsPerChannel, come from the same public Innertubebrowsecontinuation a browser uses for its own "load more" — no login, no private endpoint. - Each
searcheskeyword openshttps://www.youtube.com/results?search_query=<q>and follows the page's own "Shorts" filter chip (an Innertubesearchcontinuation) for a Shorts-only result list, up tomaxShortsPerSearch. - With
includeDetailson, each Short's own page (https://www.youtube.com/shorts/<id>) is opened for the exact view count, like count, publish date and duration (one extra request per Short). - A bot-check or consent wall is retried on a stronger proxy tier before the run gives up, and a walled run is reported as blocked — an empty dataset never hides a wall.
Input
| Field | Meaning | Default |
|---|---|---|
channels | Channels to read, one per line: @MrBeast, a channel URL, or a UC... id | ["@MrBeast"] |
maxShortsPerChannel | Stop after this many Shorts per channel, newest first (1-500) | 48 |
searches | Keyword searches to run against the Shorts filter, one per line | [] |
maxShortsPerSearch | Stop after this many Shorts per search query (1-200) | 40 |
includeDetails | Open each Short for exact views, likes, publish date, duration | false |
tier | Proxy tier: auto climbs none → datacenter → residential on a wall | auto |
proxyCountry | Exit country for the proxy | US |
maxItems | Stop after this many rows in total | 100 |
mode | scrape or monitor (only new/changed since the last run) | scrape |
monitorStateId, webhookUrl, telegramBotToken, telegramChatId | Monitor state key and alert targets | empty |
At least one of channels or searches must have something in it; the two can be combined in one run.
Pricing
| Event | Price |
|---|---|
| result | $0.001 per Short ($1 per 1,000) |
| monitor-check | $0.005 per monitor run |
| change | $0.001 per new or changed Short |
You are charged only for rows actually pushed. A run that finds nothing pushes nothing and charges no result events.
Apify platform usage is billed to your account on top: compute (about $0.0002 for the example run) and proxy
traffic, the latter only when a wall forces the run above the free none tier.
Monitor mode and includeDetails. A change event is billed per row whose view count, like count or title moved
since the last run. With the default (includeDetails: false) the view count is YouTube's own rounded figure
(39M views), which stands still for hours or days — so a monitor run normally bills only genuinely new Shorts.
With includeDetails: true the exact viewCount is read instead, and on an active channel that number is different
on every run: expect a change event for essentially every Short you watch, on every check, plus one extra page
request per Short. Watch for new Shorts with the default, and turn details on only when you want the exact curve and
have budgeted for it.
Limits
- Without
includeDetailsthe view count is the rounded number YouTube prints on the tab or search result (39M views→39000000);likeCountandpublishedAtare empty (search rows do read an exactdurationSecondsfrom the result's own length label). TurnincludeDetailson for exact numbers. maxShortsPerChannelandmaxShortsPerSearchpage through the public Innertube continuation the same way a browser's own "load more" does; very large values mean more requests and more run time.- A channel with no Shorts, or a handle that does not exist, returns no rows and costs no result events.
- Counts are what YouTube shows a logged-out visitor and can lag the creator's own analytics.
What is NOT collected
No comments, no commenter names, no subscriber lists, no viewer data, no personal profiles — nothing about private individuals. Rows describe a public video and the channel that published it, which is a creator/business entity.
FAQ
Does it need a YouTube account, API key or cookies? No. There is no credential field at all; every request is made as a logged-out visitor.
Can I search for Shorts by keyword? Yes, with searches. YouTube's own "Shorts" filter on the search results page
is followed to a Shorts-only listing.
What happens when a run comes back empty? No rows are pushed and no result events are charged. The RUN_SUMMARY
record in the run's key-value store carries emptyReason, which separates "this channel has no Shorts" from "YouTube
answered with a bot check" — the second is reported as blocked, never as no_matches.
Changelog
- 0.2: Shorts keyword search (
searches,maxShortsPerSearch);maxShortsPerChannelnow pages past 48 through the public Innertubebrowsecontinuation, up to 500. - 0.1: initial release — channel Shorts tab (one page), optional exact per-Short stats, proxy-tier ladder on the bot wall, monitor mode for new Shorts.
If this actor saved you time, a short review on its Store page genuinely helps other people find it. Found a bug or need a field that is missing? Open a ticket on the Issues tab.