YouTube Shorts Scraper avatar

YouTube Shorts Scraper

Pricing

from $2.00 / 1,000 short results

Go to Apify Store
YouTube Shorts Scraper

YouTube Shorts Scraper

Get the Shorts of any YouTube channel with views, likes, comment count, duration, description and exact publish date. 2 USD per 1,000 Shorts, no minimum charge per run.

Pricing

from $2.00 / 1,000 short results

Rating

0.0

(0)

Developer

Brahim Sliti

Brahim Sliti

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Share

Give it YouTube channels, get back their Shorts with views, likes, comment count, duration, description and the exact publish date. One row per Short.

The channel's Shorts tab only shows a title and a rounded view count. We open each Short to get the rest.

What people use it for

  • Short-form trend research. See which Shorts of a creator, or of your competitors, get the most views and engagement.
  • Influencer vetting. Check how a creator's Shorts actually perform (views, likes, comments) before you pay for one.
  • Reporting. Track your own channel's Shorts week after week with exact dates.
  • Cross-platform analysis. Put YouTube Shorts next to your TikTok and Reels data with the same fields: views, likes, comments, date, duration.

How to use it

  1. Add channels in Channels, one per line: @MrBeast, a channel URL, or a UC... id. Use the @handle when in doubt.
  2. Set Max Shorts per channel (default 20).
  3. Optional: Oldest post date to stop at a date (2026-01-01 or 30 days).
  4. Click Start. Export as JSON, CSV or Excel, or pull the results through the API.
{
"channels": ["@MrBeast", "@mkbhd"],
"maxResultsShorts": 50,
"oldestPostDate": "30 days"
}

What you get

{
"id": "2QcaDwpvl7s",
"title": "Try Not To Laugh | Never-Before-Seen Footage (Part 3/3)",
"url": "https://www.youtube.com/shorts/2QcaDwpvl7s",
"viewCount": 799000,
"likes": 42000,
"commentsCount": 1300,
"publishedAt": "2026-09-01T08:15:30.000Z",
"duration": "0:47",
"durationSeconds": 47,
"text": "Never-before-seen footage from the challenge...",
"channelName": "MrBeast",
"numberOfSubscribers": 300000000,
"isMembersOnly": false,
"type": "short"
}
  • Likes, comment count, duration, description and exact date are included on every Short, at no extra cost.
  • text is often empty: most creators don't write a description on a Short, YouTube just has nothing to give back.
  • commentsTurnedOff is true when the creator disabled comments.
  • isMembersOnly flags Shorts reserved to channel members.

Pricing

2 USD per 1,000 Shorts, all fields included.

There is no minimum charge per run: 20 Shorts from one channel cost 0.04 USD. Error rows are free, and there's no monthly fee or Apify platform usage on top.

Example: the last 50 Shorts of 20 channels (1,000 Shorts) costs 2 USD.

Good to know

  • Once in a while YouTube refuses to show a Short's page. That Short still comes back and is billed normally, but without its duration and description, and with a date to the day instead of to the second.
  • This actor doesn't download the videos. For captions, use our YouTube Transcript Scraper, which also takes Shorts links.
  • Need the channel's long videos too? Our YouTube Channel Scraper gets videos, Shorts and streams with channel stats.
  • You don't need a proxy, a YouTube account or a YouTube API key.

Use it from n8n, Make or an API

  • Small inputs: call run-sync-get-dataset-items and read the items back directly. Set Time budget (seconds) (default 240) to how long you are willing to wait: the actor stops picking up new channels before that point and returns what it already has, so you never hit Apify's 300 second run-sync limit and lose the whole run. Any channel left unfinished comes back as a TIME_BUDGET_EXCEEDED row instead of being silently dropped.
  • Big inputs: start the run with POST /v2/acts/vakitek~youtube-shorts-scraper/runs, poll GET /v2/actor-runs/<runId> (or add waitForFinish=60) until the status is SUCCEEDED, then read GET /v2/datasets/<datasetId>/items. Set Time budget (seconds) to 0 (no limit) for this pattern.

Errors

A bad input never crashes the run. It becomes a row with an error code, and you are not charged for it.

errorWhat happenedRetry?
NOT_FOUNDThe handle, URL or id doesn't match a real channelNo
NO_RESULTSThe channel has no Shorts, or none newer than your oldest post dateNo
INVALID_INPUTAn option value is invalidNo
BLOCKEDYouTube refused us for now, usually an age-restricted channel, even after trying every proxy tierYes
UPSTREAM_ERRORSomething went wrong on YouTube's side or oursYes
UPSTREAM_UNAVAILABLEOur API was unreachableYes
TIME_BUDGET_EXCEEDEDThe time budget ran out before this channel finishedYes

Some rows also carry a legacyError field with the old, pre-unification code name (for example CHANNEL_NOT_FOUND or LOGIN_REQUIRED) so a pipeline still matching on it keeps working while it migrates to error.

Reliability

Success rate, last 30 days: 99.8 % of 659 results across 27 runs (updated 2026-10-10). Failures counted: blocks, errors on our side, and runs that failed or timed out. Not counted: videos with no captions, private or deleted videos, bad links.

FAQ

How many Shorts can I get per channel? All of them. Set Max Shorts per channel as high as you need.

I already use another YouTube Shorts actor. Do I have to change my code? Probably not. The input channels and maxResultsShorts and the output field names follow the most used Shorts scraper on the Store.

Can I call it from my code or from an AI agent? Yes, like any Apify actor: REST API, the Python and JavaScript clients, or the Apify MCP server. The examples are in the API tab.

Something broke or a field is missing? Open an issue on this page. We read every one and usually answer within a day.