YouTube Shorts Scraper
Pricing
from $2.80 / 1,000 results
YouTube Shorts Scraper
YouTube Shorts Scraper extracts Shorts data including titles, views, likes, comments, upload dates, channels, hashtags, descriptions, captions, and engagement metrics. Ideal for content research, competitor analysis, trend discovery, and AI data pipelines.
Pricing
from $2.80 / 1,000 results
Rating
0.0
(0)
Developer
Data Minds
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
16 hours ago
Last modified
Categories
Security
Limited permissionsShare
What is YouTube Shorts Scraper?
YouTube Shorts Scraper is an Apify Actor that collects Shorts from any channel you list: views, likes, comments, hashtags, subtitles and full channel details, with no YouTube API key or login. Add channel names, @handles or links, click Start and get one row per Short. It is built for competitor analysis and trend research. From $0.0028 per Short on the Gold plan ($2.80 per 1,000), plus platform usage.
Just enter a channel and click Start. No coding needed. Visit YouTube to find the channels you want to track.
- Competitor analysis: compare views, likes and comments across rival channels, and see which Shorts perform best.
- Trend research: sort a channel's Shorts by popular or newest to spot formats and topics that work.
- Creator outreach list: export channel names, links, subscriber counts and About links for influencer research.
- Hashtag research and content ideas: read hashtags, titles and descriptions to plan your own Shorts.
- Dashboards and reporting: feed Shorts data into spreadsheets or BI tools and refresh it on a schedule.
Because it runs on Apify, you also get an API, scheduling, webhooks, integrations and export to JSON, CSV, Excel, XML or HTML.
What can YouTube Shorts Scraper do?
- 📺 Scrape YouTube Shorts by channel: paste usernames, @handles or channel links, one per line. A bulk channel list of Shorts is welcome.
- 📊 Stats on every row: a YouTube Shorts stats scraper with views, likes, comments count, duration, publish date and hashtags.
- 👥 Channel data included: the YouTube channel subscriber count, total videos, total views, country and join date. The YouTube channel verified badge and About details are included.
- 🔃 Sort and filter: find popular Shorts on a channel or see the most viewed Shorts of a channel. Collect Shorts published in the last 30 days with a date such as
2026-01-01or30 days. - 📝 Subtitles and descriptions: caption track details with YouTube Shorts subtitle languages, plus the description text and its links.
- ⚡ Live results: every Short is saved to the dataset as soon as it is collected.
- 🔌 Export and automation: download your data, call the Actor through the API, schedule YouTube Shorts scraping or connect other tools.
Think of it as a YouTube Shorts extractor for analysts. It also works as a YouTube Shorts data extractor for spreadsheets.
Use it as a bulk YouTube Shorts scraper for agencies. It is also a YouTube Shorts scraping tool for marketers, and a YouTube Shorts crawler for channel lists.
Can you scrape YouTube Shorts without the YouTube Data API? Yes, and you collect YouTube Shorts analytics data too. This YouTube Shorts scraper without API key setup needs no login.
The same rows help with YouTube influencer research and YouTube Shorts market research.
Teams also monitor YouTube Shorts for social listening. Others build a YouTube Shorts performance benchmark.
Hashtags and subtitles come as ready fields, so a YouTube Shorts hashtag extractor or a YouTube Shorts subtitles extractor workflow needs no extra work.
What data can YouTube Shorts Scraper extract?
Each dataset row is one Short. The Overview, Channel & About, Engagement, Media and Source views group the fields below.
| Data | Fields |
|---|---|
| 🎬 Short | title, id, url, type (always shorts), thumbnailUrl, duration (HH:MM:SS), date (UTC) |
| 👀 Engagement | viewCount, likes, commentsCount, commentsTurnedOff |
| 🔖 Text | hashtags, text (description), descriptionLinks |
| 🔤 Subtitles | subtitles (language code, language name, auto-generated flag, link) |
| 🔞 Flags | isAgeRestricted, isMembersOnly, isPaidContent |
| 📺 Channel | channelName, channelUrl, channelUsername, channelId, channelDescription, channelAvatarUrl, channelBannerUrl |
| 👥 Channel totals | numberOfSubscribers, channelTotalVideos, channelTotalViews |
| 🌍 About details | channelLocation, channelJoinedDate, channelDescriptionLinks, isChannelVerified |
| 📦 Channel object | aboutChannelInfo repeats the channel fields and adds isAgeRestricted and inputChannelUrl |
| 📥 Source | input, inputChannelUrl, fromYTUrl, fromChannelListPage, order |
| 🚧 Reserved | translatedTitle, translatedText, location, collaborators, isMonetized, aiVideoDescription, aiVideoSummary (always null) |
| 🛑 Error rows | url, input, error, note |
Note: Subscriber and like counts can be rounded, as shown publicly. Fields that are not available for a Short or channel are
null, andsubtitlesordescriptionLinkscan be empty.
What data can't YouTube Shorts Scraper extract?
- Transcript text: you get subtitle track details only. For transcripts, try YouTube Transcript Scraper.
- Comment text and replies: you get the comments count only. For comments, try YouTube Comments Scraper.
- Reserved fields such as translations and AI summaries are always empty.
How to scrape YouTube Shorts
The Actor is designed for an easy start, even if you have never extracted data from the web before.
- Create a free Apify account with your email.
- Open YouTube Shorts Scraper.
- Add one or more names, @handles or links to
channels. - Set
maxResultsShortsto how many Shorts you want from each channel. - Choose
sortChannelShortsByand, if you like,oldestPostDate. - Click Start and wait for the run to finish.
- Download your data in JSON, CSV, Excel, XML or HTML.
How much does it cost to scrape YouTube Shorts?
This Actor uses pay-per-event pricing: you pay for each Short saved to the dataset. Error rows are not charged. Platform usage is billed in addition. Prices depend on your Apify plan:
| Plan | Price per Short | Price per 1,000 Shorts |
|---|---|---|
| Free | $0.004 | $4.00 |
| Bronze | $0.0036 | $3.60 |
| Silver | $0.0032 | $3.20 |
| Gold | $0.0028 | $2.80 |
Each run also has a start event of $0.00005 per GB of memory, minimum one. The default memory is 4 GB, so a run starts with 4 events, which is $0.0002.
For example, 1,000 Shorts on the Gold plan cost $2.80, plus the $0.0002 start charge and platform usage. On the Free plan, 100 Shorts cost $0.40 before platform usage.
Is scraping YouTube Shorts free?
You can start for free. The Apify Free plan includes $5 in monthly credit, which covers about 1,250 Shorts at the Free price of $0.004 per Short, before platform usage. See the pricing tab for all events.
Input
To run the Actor you only need channels. Set the input in the Actor's interface or send it as JSON through the API. This example collects 20 Shorts from one channel:
{"channels": ["mrbeast"],"maxResultsShorts": 20,"proxyConfiguration": {"useApifyProxy": false}}
See the input schema for the full description of every field.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
channels | array | Yes | none (prefill mrbeast) | Channel usernames, @handles or channel URLs, one per line. |
maxResultsShorts | integer | No | 20 | Shorts to collect from each channel (1 to 999999). |
sortChannelShortsBy | string | No | NEWEST | NEWEST, POPULAR or OLDEST. |
oldestPostDate | string | No | empty | Skip Shorts older than a date or relative value. |
proxyConfiguration | object | No | {"useApifyProxy": false} | Optional connection settings. Leave the default unless you need your own. |
browserFallback | boolean | No | true | Make one extra attempt on requests that keep failing. |
maxConcurrency | integer | No | 5 | Shorts fetched in parallel per channel (1 to 20). |
maxRetries | integer | No | 3 | Attempts before one request counts as failed (1 to 10). |
maxScanned | integer | No | 5000 | Safety cap on Shorts examined per channel. 0 means no cap. |
channels
Use a username, an @handle or a channel link. A link to the channel's Shorts tab also works.
- ✅ Good:
mrbeast,@mrbeast,https://www.youtube.com/@mrbeast - ❌ Bad: a link to a single video or a search results page
oldestPostDate
Use YYYY-MM-DD or a relative value such as 7 days, 2 weeks, 1 month or 1 year.
- ✅ Good:
2026-01-01,30 days - ❌ Bad:
01/01/2026,last month
Warning: When a date filter is set, Shorts are collected newest first, whatever
sortChannelShortsBysays. A value that is not recognised is ignored.
maxScanned
This caps how many Shorts are examined per channel, mainly when a date filter is set. If the cap is reached before enough Shorts match, the run moves on to the next channel. Raise it or set 0 to look further.
Output
Results appear in the run's Output or Storage tab as a dataset. View them as a table or JSON, pick the fields you need and download them in JSON, CSV, Excel, XML or HTML. The dataset has six views: Overview, Channel & About, Engagement, Media, Source and Errors. A run summary is also saved to the key-value store under run-summary.
JSON example
Results for the input example above:
{"title": "Example Short title","translatedTitle": null,"type": "shorts","id": "abc123XYZ00","url": "https://www.youtube.com/shorts/abc123XYZ00","thumbnailUrl": "https://example.com/thumbnail.jpg","viewCount": 1250000,"date": "2026-08-25T23:23:55.000Z","likes": 84000,"location": null,"channelName": "Example Channel","channelUrl": "https://example.com/channel","channelUsername": "examplechannel","collaborators": null,"channelId": "UCexample0000000000000000","channelDescription": "Example channel description.","channelJoinedDate": "Mar 21, 2012","channelDescriptionLinks": [{"title": "Website", "url": "https://example.com"}],"channelLocation": "United States","channelAvatarUrl": "https://example.com/avatar.jpg","channelBannerUrl": "https://example.com/banner.jpg","channelTotalVideos": 800,"channelTotalViews": 90000000,"numberOfSubscribers": 5000000,"isChannelVerified": true,"inputChannelUrl": "https://example.com/channel","isAgeRestricted": false,"aboutChannelInfo": {"channelDescription": "Example channel description.","channelJoinedDate": "Mar 21, 2012","channelDescriptionLinks": [{"title": "Website", "url": "https://example.com"}],"channelLocation": "United States","channelUsername": "examplechannel","channelAvatarUrl": "https://example.com/avatar.jpg","channelBannerUrl": "https://example.com/banner.jpg","channelTotalVideos": 800,"channelTotalViews": 90000000,"numberOfSubscribers": 5000000,"isChannelVerified": true,"channelName": "Example Channel","channelUrl": "https://example.com/channel","channelId": "UCexample0000000000000000","inputChannelUrl": "https://example.com/channel","isAgeRestricted": false},"duration": "00:00:42","commentsCount": 1200,"text": "Example description text #example","translatedText": null,"descriptionLinks": [{"text": "example.com", "url": "https://example.com"}],"subtitles": [{"languageCode": "en", "languageName": "English", "isAutoGenerated": true, "url": "https://example.com/captions"}],"aiVideoDescription": null,"aiVideoSummary": null,"order": 0,"commentsTurnedOff": false,"fromYTUrl": "https://example.com/channel/shorts","isMonetized": null,"hashtags": ["example"],"isMembersOnly": false,"input": "mrbeast","fromChannelListPage": "shorts","isPaidContent": false}
An error row, for example for a channel that does not exist, looks like this:
{"url": "https://example.com/channel","input": "examplechannel","error": "CHANNEL_DOES_NOT_EXIST","note": "Channel does not exist"}
The run summary in the key-value store holds totals such as totalShorts, channelsRequested, channelsOk, errors and durationSeconds.
Notes and limitations
- Channels that do not exist, have no Shorts or match no filter produce an error row instead of being skipped silently.
- Views, likes and subscriber counts are the public numbers, which can be rounded.
orderis the position of the Short within its channel in this run, starting at 0.- If your spending limit is reached, the run stops and keeps the results saved so far.
Tips and advanced usage
How many Shorts can you scrape with YouTube Shorts Scraper?
You can request up to 999,999 Shorts per channel. The real number depends on how many Shorts the channel has, your date filter and your maxScanned setting. The best way to know for your use case is a quick test run.
How to get faster or cheaper results
- Start with
maxResultsShortsbetween 10 and 20 for a sample, since you pay per saved Short. - Use
oldestPostDateto collect only recent Shorts. - Raise
maxConcurrencyfor faster runs on large channels.
Integrations and API
Can I use YouTube Shorts Scraper as an API?
Yes. The Apify API gives you programmatic access to this Actor: start runs, schedule them and fetch results. Use the apify-client package for Node.js or Python. See the API tab for ready-to-use code.
How to scrape YouTube Shorts with Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("data_minds/youtube-shorts-scraper").call(run_input={"channels": ["mrbeast"],"maxResultsShorts": 20,"proxyConfiguration": {"useApifyProxy": False},})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
Can I integrate YouTube Shorts Scraper with other apps?
Yes. Connect it with Make, Zapier, Google Sheets, Slack and more through Apify integrations. Use webhooks to trigger an action when a run finishes, and schedule runs to keep your Shorts data fresh.
Can I use YouTube Shorts Scraper with AI agents (MCP)?
Yes. Connect the Actor to Claude and other AI assistants through the Apify MCP server. Open the MCP tab for setup steps.
Other YouTube scrapers
| Actor | What it does |
|---|---|
| 💬 YouTube Comments Scraper | Video comments and replies with author, text, likes and publish date. |
| 🔗 Whop Content Rewards Scraper | Every Whop Content Rewards clipping & UGC campaign as clean data — per-platform payout tables, creator counts, budget burn, days-to-depletion... |
| 🔗 YouTube Hashtag Search Scraper | Collect videos and Shorts posted under any YouTube hashtag, with titles, views, channels, publish dates and descriptions. |
| 🔗 YouTube Trending Shorts Scraper | Collect trending YouTube Shorts for any search, hashtag or topic, with views, likes, comments, channel, publish date and keywords. |
FAQ
Is it legal to scrape YouTube Shorts?
Scraping publicly available data is generally considered legal, but you must respect personal data rules such as GDPR, copyright and YouTube's terms. Only collect personal data with a legitimate reason. This is not legal advice, so read Apify's guide to web scraping legality and consult a lawyer.
How does YouTube Shorts Scraper work?
You give it channels, and it returns one row per Short with stats, hashtags, subtitles details and channel information. It reads each channel's Shorts in your chosen order, applies your date filter, saves each Short to the dataset as it goes and stops when it reaches your limit or runs out of Shorts.
Why scrape YouTube Shorts data?
Scraping YouTube Shorts data lets you do competitor analysis, trend research and engagement analysis without copying numbers by hand. Marketers build creator outreach lists, agencies benchmark clients against rivals, and creators study hashtags and content ideas. A scheduled run keeps those numbers current in your spreadsheet or dashboard.
Why am I getting fewer YouTube Shorts than expected?
Fewer results usually mean the channel has fewer Shorts than maxResultsShorts, your oldestPostDate filter excludes older ones, or maxScanned was reached. Check the Errors view for notes. Try a larger maxResultsShorts, a wider date range or maxScanned set to 0, then run again.
Can I get all Shorts from a YouTube channel?
Yes. Put the channel in channels and set maxResultsShorts high enough, up to 999,999, with maxScanned at 0 for no scan cap. The run collects every Short the channel shows and stops when none are left. Large channels take longer and cost more, so test with 20 first.
Can I export YouTube Shorts data to CSV?
Yes. Open the run's Output tab and download the dataset as CSV, Excel, JSON, XML or HTML. You can choose which fields to include first. You can also fetch the dataset through the Apify API, or send it to Google Sheets with an integration.
Is YouTube Shorts Scraper not working?
If a run fails or returns nothing unexpected, first check the log and the Errors view for a note about the channel. Make sure the channel exists and has Shorts. If the problem remains, open the Issues tab and describe your input, and we will look into it.
Support and feedback
Found a bug or have a feature request? Please create an issue on the Issues tab.
Need a custom solution or more data? Contact us at hello.dataminds@gmail.com.
Built and maintained by the data_minds team on Apify.
This Actor is an independent tool and is not affiliated with or endorsed by YouTube or Google. It collects publicly available data, and you are responsible for using it in line with applicable laws and the platform's terms.