YouTube Shorts Scraper: Channels, Hashtags & Search
Pricing
from $1.20 / 1,000 shorts
YouTube Shorts Scraper: Channels, Hashtags & Search
Scrape YouTube Shorts from channels, hashtags and search queries in one run: exact views and likes, comments count, publish date, duration, hashtags and channel stats. Duplicates removed before billing, new-Shorts-only monitoring with webhook. No browser.
Pricing
from $1.20 / 1,000 shorts
Rating
0.0
(0)
Developer
Alexis Morain
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
This Actor turns YouTube Shorts into structured data. Give it channels, hashtags, search queries or Short URLs, and it returns every Short with its exact view count, exact like count, comment count, publish date, description, hashtags, and the channel with its subscriber count. With extended details on (the default), each Short also gets its duration and exact publish time.
It talks to YouTube over plain HTTP, the way the YouTube app does. No browser, no login, no proxy to pay for. 1,000 Shorts from 20 channels, all details included, take about a minute. Pricing is pay per event: $2.00 per 1,000 Shorts at the entry price, from $1.20 / 1,000 on Gold, date filter included; $3.00 per 1,000 with duration and exact time ($1.80 on Gold); and $0.002 per run.
The YouTube Data API has no Shorts filter and caps you at 10,000 quota units a day. This Actor is a YouTube Shorts API without the quota: a list of sources in, JSON out, scheduled or called from your code.
What does YouTube Shorts Scraper do?
It reads four kinds of sources, and you can mix them in one run:
- Channels: the Shorts tab of any channel, newest, most popular or oldest first. There is no hidden ceiling: the NBA channel holds more than 14,000 Shorts and the Actor pages through all of them if you ask.
- Hashtags: the Shorts feed YouTube shows on
youtube.com/hashtag/<tag>/shorts. - Search queries: YouTube search with the Shorts filter on, optionally limited to today, this week, this month or this year.
- Short URLs: single Shorts, to refresh the counters of videos you already track.
A Short found by two sources is returned once and charged once. YouTube repeats Shorts as you scroll a search (28% to 44% repeats on the 8 pages we measured); the Actor drops them before they reach your dataset.
Why use this YouTube Shorts scraper?
- Creator and competitor tracking. Schedule it daily on a list of channels with New Shorts only: each run returns only Shorts never returned before, and a webhook pings Slack, Zapier, Make or n8n when a tracked channel posts.
- Influencer discovery. Search a niche or a hashtag, then sort by views, likes or subscribers to find the creators who carry it.
- Trend research. What a hashtag or a keyword shows this week, in the country you pick. YouTube ranks searches per country: the same query in the US and in Brazil shares about a third of its first results.
- Datasets for analysis and AI. Titles, descriptions, hashtags and engagement for thousands of Shorts, ready for a spreadsheet, a BI tool or a model.
What you get that a grid scrape misses:
- Exact counters. The Shorts grid shows "29M views". The Actor opens each Short and returns 29,104,377. Likes come exact too, read from the like button itself.
- Every source type. Channels, hashtags, searches and URLs in the same run, with
inputTypeandinputon each row so you know which source found it. - Free date filter.
Published on or aftercosts nothing extra. On a channel read newest first, the Actor stops paging as soon as it reaches older Shorts, so a daily check is fast. - It tells you what it could not get. A channel without Shorts, a hashtag that does not exist or a search that returns nothing gets one error row with the reason, never charged.
What data can I extract from YouTube Shorts?
| Field | Description |
|---|---|
id, url, title | Short ID, URL and title |
description, hashtags | Full description and the hashtags in it, without # |
viewCount | Exact view count |
likeCount, likeCountExact | Like count, and whether it is exact |
commentCount, commentCountText | Comment count as YouTube rounds it (1.2K becomes 1200) |
publishedDate | Publish day, YYYY-MM-DD |
publishedAt, durationSeconds, duration | Exact publish time and duration (extended details) |
category, isFamilySafe | YouTube category and family-safe flag (extended details) |
thumbnailUrl | Vertical thumbnail |
channelId, channelName, channelHandle, channelUrl | The channel |
channelSubscribers, channelVerified, channelAvatarUrl | Subscribers, badge and avatar |
inputType, input, position | The source that found the Short and its rank in that source |
How to scrape YouTube Shorts
- Add one or more channels (
@MrBeast, a channel URL or ID), hashtags (cooking), search queries (air fryer recipe) or Short URLs. - Set Max Shorts per source: 50 by default, counted from the top of each feed.
- Optionally pick a channel order, a Published on or after date or span (
7 days), and a country for searches and hashtags. - Leave Duration and exact publish time on if you need them, turn it off for a cheaper run.
- Press Start, then download the dataset as JSON, CSV, Excel or HTML.
How much does it cost to scrape YouTube Shorts?
| Event | Free | Bronze | Silver | Gold and up |
|---|---|---|---|---|
| Short | $2.00 / 1,000 | $1.70 / 1,000 | $1.40 / 1,000 | $1.20 / 1,000 |
| Detailed Short (instead of Short) | $3.00 / 1,000 | $2.50 / 1,000 | $2.10 / 1,000 | $1.80 / 1,000 |
| Actor start, per GB of memory | $0.002 | $0.002 | $0.002 | $0.002 |
The 50 latest Shorts of 20 channels (1,000 Shorts) cost $2.00 on the Free plan, or $3.00 with duration and exact time. With the default 1 GB of memory the start event is charged once.
A Short is charged as a Detailed Short only when its extended details came back. If YouTube refuses that extra request, the Short keeps every other field and pays the normal price. Duplicates, error rows, Shorts YouTube refused to return, and Shorts already returned in New Shorts only mode are free. The Actor stops cleanly at the maximum charge you set in the run options.
Input
See the Input tab for every option. The ones worth knowing:
- Max Shorts per source applies to each channel, hashtag and search separately. Max Shorts in total caps the whole run.
- Published on or after takes a date (
2026-10-01) or a span (7 days,1 daymeaning today). Days follow the US Pacific calendar, like YouTube itself. - Search: uploaded within is YouTube's own filter. Sorting a Shorts search by date or by views is not offered: we tested both, the first does not sort and the second returns nothing.
- Mode: New Shorts only keeps a memory per source in your Apify account. Memory name lets you keep separate memories for the same channels, or start over.
- Webhook URL receives a JSON summary (
runId,datasetId,mode,shorts, and the first 100items) when a run returns at least one Short.
Example, a daily feed of new Shorts from three channels and a hashtag:
{"channels": ["@examplechannel", "https://www.youtube.com/@anotherchannel"],"hashtags": ["skincare"],"maxResultsPerSource": 30,"oldestPostDate": "2 days","mode": "new-only","webhookUrl": "https://hooks.slack.com/services/T000/B000/XXXX"}
Output
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
[{"id": "AbCdEfGhIjK","url": "https://www.youtube.com/shorts/AbCdEfGhIjK","title": "Can you pass this quiz?","description": "#quiz #challenge","hashtags": ["quiz", "challenge"],"viewCount": 74027067,"likeCount": 1919661,"likeCountExact": true,"commentCount": 66000,"commentCountText": "66K","commentsTurnedOff": null,"publishedDate": "2026-08-11","publishedAt": "2026-08-11T16:00:06Z","durationSeconds": 74,"duration": "00:01:14","thumbnailUrl": "https://i.ytimg.com/vi/AbCdEfGhIjK/frame0.jpg","category": "Entertainment","isFamilySafe": true,"channelId": "UCabcdefghijklmnopqrstuv","channelName": "Example Channel","channelHandle": "examplechannel","channelUrl": "https://www.youtube.com/@examplechannel","channelSubscribers": 1500000,"channelSubscribersText": "1.5M subscribers","channelVerified": true,"channelAvatarUrl": "https://yt3.ggpht.com/example-avatar=s88-c-k-c0x00ffffff-no-rj","inputType": "channel","input": "@examplechannel","position": 1,"scrapedAt": "2026-10-19T15:36:20Z"},{"inputType": "search","input": "a query with no shorts","error": "NO_RESULTS","message": "YouTube returned no Shorts for this source."}]
Tips
- Monitoring: schedule the same input with New Shorts only and a date span a little
longer than the schedule interval (
2 daysfor a daily run). A run that finds nothing new costs $0.002. - Cheaper, faster runs: turn off Duration and exact publish time when counts and the publish day are enough. 1,000 Shorts from 12 sources then take about 65 seconds.
- More from a search: YouTube runs dry after roughly 100 to 200 unique Shorts per query. Split a broad query into several narrower ones, or run it in several countries.
- Memory: keep the default 1 GB. Half a gigabyte works but runs about 2.5 times slower.
- From code: call the Actor through the Apify API or the Python and JavaScript clients; the API tab has ready-to-paste snippets.
FAQ
Why is likeCount empty for some Shorts?
The creator hid the like count. YouTube shows "N/A" and the Actor returns null rather than a
guess. When YouTube shows only a rounded figure, likeCount holds it and likeCountExact is
false.
Why is channelSubscribers empty for a channel?
The channel hides its subscriber count, or YouTube does not show it to visitors from the US, where the Actor runs. We saw it on 1 channel out of 304 in our tests.
Why is commentsTurnedOff usually null?
YouTube's Shorts page does not say whether comments are off or simply not counted, so the
field is true only when YouTube says so explicitly. An empty commentCount is common on
channels made for kids, where comments are off.
Which time zone are dates in?
publishedDate is the day YouTube displays, on the US Pacific calendar. publishedAt is the
exact time in UTC, available with extended details.
Is it legal to scrape YouTube Shorts?
Our Actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our Actors, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
Something does not work
Open an issue in the Issues tab with the run ID. Error rows in the dataset (error,
message) and the run's status message usually say what went wrong.