YouTube Shorts Scraper - Views, Likes & Channel Data avatar

YouTube Shorts Scraper - Views, Likes & Channel Data

Pricing

from $1.20 / 1,000 short scrapes

Go to Apify Store
YouTube Shorts Scraper - Views, Likes & Channel Data

YouTube Shorts Scraper - Views, Likes & Channel Data

Scrape every Short from any YouTube channel: title, view count, thumbnail, duration, publish date and description, with exact view and like counts on request. Takes handles, channel ids or URLs. No login, no API key, no quota.

Pricing

from $1.20 / 1,000 short scrapes

Rating

0.0

(0)

Developer

Eimantas V

Eimantas V

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

YouTube Shorts Scraper

Scrape every Short from any YouTube channel — by handle, channel id or URL — with view counts, thumbnails, titles and publish order. No Google account, no API key, and none of the 10,000-unit daily quota the official YouTube Data API imposes.

One row per Short, plus a summary row per channel that tells you exactly what was and was not collected.


What you get on every Short

Identityvideo id, canonical youtube.com/shorts/… link, title
Reachview count as a number and as YouTube words it, plus a flag saying which kind you got
Imagethumbnail at full 1080×1920, not a resized preview
Orderrank — its position in the channel's Shorts tab, newest first
Channelchannel id, display name and URL on every row, so nothing needs joining back together

Turn on exact statistics and each Short also carries its exact view count, duration in seconds, UTC publish date and full description. Turn on like counts as well and you get the exact number of likes.


The rounded-number problem, and what this does about it

A channel's Shorts tab does not contain view counts. It contains prose about view counts — "12M views" — and 12M is anything from 12,000,000 to 12,999,999. That is a range a million wide, presented as a fact.

Most exports quietly turn "12M views" into 12000000 and hand it to you as a number. It looks exact. It is a rounding artefact, and it will happily tell you two Shorts performed identically when one has 400,000 more views than the other.

This Actor does three things instead:

  1. Keeps viewCountText — the original "12M views" — so the source figure is never lost.
  2. Puts the expanded number in viewCount, which is genuinely useful for sorting and thresholds.
  3. Marks every row with viewCountIsExact, so you always know which you are holding.

Switch on exact view counts and viewCount is replaced with the real figure and the flag flips to true. Measured on a MrBeast Short listed as "12M views": the exact count was 12,574,516. The rounding hid over half a million views.

The exact figure is read from whichever of two sources answers, so a bot check on one of them costs you the duration and the publish date but never the view count itself.

Like counts work the same way, except there is no rounded version to fall back on — YouTube publishes no like count anywhere on a Shorts listing, so this is the only way to get one at all.


Point it at a channel however you already write it

  • @MrBeast or just MrBeast
  • UCX6OQ3DkcsbYNE6H8uQQuVA
  • https://www.youtube.com/@MrBeast
  • https://www.youtube.com/channel/UCX6OQ3DkcsbYNE6H8uQQuVA
  • the older /c/Name and /user/Name forms

A channel id costs nothing to resolve; a handle costs one extra request. Paste a /watch or /shorts link — a single video rather than a channel — and you get a clear bad-input row saying so, rather than a silent guess at which channel you meant.

Every run is deduplicated across the whole run, so listing the same channel twice under two different names collects it once and bills it once.


An empty result always tells you why

A channel that has never posted a Short returns a perfectly successful, completely empty response — identical in shape to what a broken scraper produces. So every channel gets a summary row that says which it was:

zeroReasonWhat it means
channel-has-no-shortsThe channel was read successfully and genuinely posts no Shorts
all-shorts-filtered-outShorts were found; your minimum-views filter removed all of them
charge-limit-reachedYour charge limit stopped the run before this channel
run-short-limit-reachedThe total-Shorts ceiling was reached first
run-timeout-reachedThe run stopped itself early to finish cleanly rather than be killed

The same row carries stoppedOn, pagesFetched, shortsScanned and shortsFiltered, so a short result is never ambiguous. If a channel stopped because it ran out of page budget rather than out of Shorts, stoppedOnScanLimit says so and the log tells you which setting to raise.

A channel handle that does not exist produces an error row with errorClass: channel-not-found — never an empty result that could be mistaken for a quiet channel.


Honest about limits

  • YouTube's Shorts tab is finite. It pages back a long way but not forever, and a channel with tens of thousands of Shorts will stop before you reach the end. stoppedOn tells you when that happens.
  • Listing view counts are rounded. Covered above — the flag is there so you always know.
  • Duration, publish date and description are best-effort. YouTube applies a bot check to one of the two requests behind exact statistics, based on the IP address a run happens to be given. Exact view counts are unaffected — they are read from a second source that is not gated — but those three fields come only from the checked request and are left null on the Shorts it refuses. Measured on a full run: exact views on 100% of rows, the other three on roughly half. The summary row's detailsGated is the count, so an empty cell always has a number explaining it, and you are never charged for statistics you did not receive. Re-running, or using a different proxy country, normally returns a different set.
  • The description is never approximated. The lighter source that supplies view counts also carries a description, but it truncates every URL inside it — https://www.themo… instead of the real link. Rather than hand you a broken link that looks like a working one, the description is left empty unless the full version was retrieved.
  • Like counts are occasionally withheld by YouTube on individual Shorts. Those rows get likeCount: null, and a null is never charged for.
  • Comments are not included. They are a different surface with a different cost, and bundling them would mean charging every customer for something most do not want.
  • Sorting is YouTube's. The Shorts tab is newest-first and there is no "most viewed" ordering available on it, so rank reflects recency. Sort by viewCount after the fact.

Pricing

Pay per result. No monthly platform rental on top.

EventPrice per 1,000What triggers it
Short scraped$2.00One Short written to your dataset
Exact statistics$1.00Optional — exact views, duration, publish date, description
Exact like count$1.20Optional — one exact like count actually obtained

Prices fall with your Apify plan, down to $1.20 / $0.60 / $0.80 per 1,000 on Gold.

A listing-only run — titles, rounded views, thumbnails, ranks — costs $2.00 per 1,000 Shorts and nothing else. The two optional events each cost one extra request per Short, which is why they are priced separately rather than folded into one headline number you would pay whether you used them or not.

What is never charged:

  • Shorts removed by your minimum-views filter — they are never written, so they are never billed
  • The same Short seen twice in one run
  • Summary rows and error rows
  • A request that failed and had to be retried
  • A like count that came back empty

Getting started

  1. Put one or more channels in YouTube channels — handles, ids or URLs, one per line.
  2. Set Max Shorts per channel. YouTube returns 48 per request, so 100 is three requests and takes seconds.
  3. Leave the exact-statistics options off for a first run to see the shape of the data cheaply. Turn them on when you need real numbers.
  4. Run it. Results appear in the dataset as they are collected — the Shorts view is one row per Short, the Run report view is the per-channel summary.

Leave the channel list empty and it runs a small demo on @MrBeast, so you can see the output format before spending anything meaningful.