YouTube Shorts Scraper (per channel, lightweight) avatar

YouTube Shorts Scraper (per channel, lightweight)

Pricing

from $1.30 / 1,000 short listeds

Go to Apify Store
YouTube Shorts Scraper (per channel, lightweight)

YouTube Shorts Scraper (per channel, lightweight)

Every Short of a YouTube channel: title, video id, view count and thumbnail, with the channel name on each row. Paste channel URLs, @handles or channel ids. Only delivered Shorts are charged.

Pricing

from $1.30 / 1,000 short listeds

Rating

0.0

(0)

Developer

Steadydata Team

Steadydata Team

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Get every Short a YouTube channel has published: title, video id, view count and thumbnail, with the channel name on each row. Paste channel URLs, @handles or channel ids, up to 100 channels per run. You only pay for Shorts that are actually delivered.

Why this scraper

  • Shorts are their own tab, and this actor reads it properly. A channel's Shorts do not show up in the regular videos list, so a normal channel scraper misses them entirely.
  • Built on a lightweight route. This actor asks YouTube's own internal API instead of loading the page, and needs roughly 6 KB per Short. That is where the low price comes from.
  • Only delivered Shorts are charged. A channel that does not exist, or has no public Shorts, comes back as a clear error record at no cost.
  • A hard cost ceiling you control. maxShortsPerChannel is the cap: one delivered Short is one charged event.
  • Every input format works. @mkbhd, a channel URL, /channel/UC... or a bare channel id.

Who this is for

Short-form content researchers comparing what channels publish and how it performs, competitor analysts tracking Shorts output, and teams that need a channel's Shorts catalogue as input for further processing.

Who this is not for

If you want to watch Shorts, the app does that better. This actor is for getting the list out as data, and it earns its place from the first channel with more Shorts than you want to scroll through.

It returns public video and channel metadata only. No comments, no commenter names, no personal data.

Input fields

FieldTypeRequired or defaultWhat it does
channelslist of textrequiredChannel URLs, @handles or channel ids. All of these work: https://www.youtube.com/@mkbhd, @mkbhd, UCBJycsmduvYEL83R_U4JriQ.
maxShortsPerChannelnumber100Stop after this many Shorts per channel, newest first. This is your cost ceiling: one delivered Short is one charged event.
languagetextenInterface language for the texts YouTube returns, e.g. en, nl, de.
countrytextUSISO country code used for the request, e.g. US, NL, DE.

Input example

{
"channels": [
"@mkbhd",
"https://www.youtube.com/channel/UCBJycsmduvYEL83R_U4JriQ"
],
"maxShortsPerChannel": 100,
"language": "en",
"country": "US"
}

Output example

FieldTypeWhat it holdsExample
channelIdtextThe channel id (UC...), stable where the channel name can change.UCBJycsmduvYEL83R_U4JriQ
channelNametextThe channel that published the video.Marques Brownlee
channelUrltextThe channel page on YouTube.https://www.youtube.com/channel/UCBJycsmduvYEL83R_U4JriQ
positionnumberThe place of the row in the list that was read, counting from 1.1
videoIdtextThe eleven-character YouTube id of the video, the key to join other data on.R6yNUnRXZ64
urltextThe watch page of the video.https://www.youtube.com/shorts/R6yNUnRXZ64
titletextThe title as the uploader set it.iPhone Duo is here
viewCountnumberViews as YouTube reports them at the moment of the run.7100000
thumbnailUrltextThe largest thumbnail YouTube offers for the video.https://i.ytimg.com/vi/R6yNUnRXZ64/oardefault.jpg?sqp=-oa...
{
"channelId": "UCBJycsmduvYEL83R_U4JriQ",
"channelName": "Marques Brownlee",
"channelUrl": "https://www.youtube.com/channel/UCBJycsmduvYEL83R_U4JriQ",
"position": 1,
"videoId": "R6yNUnRXZ64",
"url": "https://www.youtube.com/shorts/R6yNUnRXZ64",
"title": "iPhone Duo is here",
"viewCount": 3000000,
"thumbnailUrl": "https://i.ytimg.com/vi/R6yNUnRXZ64/oardefault.jpg",
"status": "ok"
}

A channel that cannot be delivered produces an error record instead, and is not charged:

{
"input": "@thischanneldoesnotexist12345",
"status": "error",
"errorCode": "CHANNEL_NOT_FOUND",
"error": "No channel behind https://www.youtube.com/@thischanneldoesnotexist12345"
}

Error codes: INVALID_CHANNEL, CHANNEL_NOT_FOUND, NO_SHORTS, BLOCKED. INPUT_TRUNCATED appears once when your input is longer than this actor accepts.

Pricing

Pay per event: one short-listed event per delivered Short. No charge for channels that fail, no charge for channels without Shorts, no separate platform-usage surcharge.

Free Apify plan: this actor delivers up to 25 rows per run for accounts on the Apify free plan, and then stops with a message. That limit is set by us, not by Apify. It exists so the actor keeps paying for itself for the people who do pay. Any paid Apify plan runs it at full size, billed per delivered row, with failed rows never charged.

Reviews: if this actor saves you time, a short review on this page is the one thing that helps most. Ratings are what other buyers look at first, and we have no other way to ask.

FAQ

Why is the view count rounded? Because YouTube rounds it in the Shorts listing: it reports "3 million views", not the exact figure. The number is converted faithfully from what YouTube says. If you need the exact count, feed the video ids into the YouTube Video Details Scraper from the same publisher.

Is there a publish date? Not in the Shorts listing; YouTube does not include one there. The video details actor has it if you need it.

Are the Shorts in order? Yes, newest first, and every row carries its position.

Is personal data collected? No. Public video and channel metadata only.

What happens when YouTube changes something? Internal routes shift from time to time. The actor is monitored daily and fixed fast, and while it is broken you are not charged, because only delivered Shorts cost anything.