YouTube Shorts Scraper (per channel, lightweight)
Pricing
from $1.30 / 1,000 short listeds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
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.
maxShortsPerChannelis 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
| Field | Type | Required or default | What it does |
|---|---|---|---|
channels | list of text | required | Channel URLs, @handles or channel ids. All of these work: https://www.youtube.com/@mkbhd, @mkbhd, UCBJycsmduvYEL83R_U4JriQ. |
maxShortsPerChannel | number | 100 | Stop after this many Shorts per channel, newest first. This is your cost ceiling: one delivered Short is one charged event. |
language | text | en | Interface language for the texts YouTube returns, e.g. en, nl, de. |
country | text | US | ISO 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
| Field | Type | What it holds | Example |
|---|---|---|---|
channelId | text | The channel id (UC...), stable where the channel name can change. | UCBJycsmduvYEL83R_U4JriQ |
channelName | text | The channel that published the video. | Marques Brownlee |
channelUrl | text | The channel page on YouTube. | https://www.youtube.com/channel/UCBJycsmduvYEL83R_U4JriQ |
position | number | The place of the row in the list that was read, counting from 1. | 1 |
videoId | text | The eleven-character YouTube id of the video, the key to join other data on. | R6yNUnRXZ64 |
url | text | The watch page of the video. | https://www.youtube.com/shorts/R6yNUnRXZ64 |
title | text | The title as the uploader set it. | iPhone Duo is here |
viewCount | number | Views as YouTube reports them at the moment of the run. | 7100000 |
thumbnailUrl | text | The 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.
Related actors from steadydata
- youtube-channel-videos: the long-form videos of the same channel
- youtube-channel-details: the channel profile
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.