YouTube Shorts Scraper avatar

YouTube Shorts Scraper

Pricing

from $2.80 / 1,000 results

Go to Apify Store
YouTube Shorts Scraper

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

Data Minds

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

16 hours ago

Last modified

Categories

Security

Limited permissions

Share

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-01 or 30 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.

DataFields
🎬 Shorttitle, id, url, type (always shorts), thumbnailUrl, duration (HH:MM:SS), date (UTC)
👀 EngagementviewCount, likes, commentsCount, commentsTurnedOff
🔖 Texthashtags, text (description), descriptionLinks
🔤 Subtitlessubtitles (language code, language name, auto-generated flag, link)
🔞 FlagsisAgeRestricted, isMembersOnly, isPaidContent
📺 ChannelchannelName, channelUrl, channelUsername, channelId, channelDescription, channelAvatarUrl, channelBannerUrl
👥 Channel totalsnumberOfSubscribers, channelTotalVideos, channelTotalViews
🌍 About detailschannelLocation, channelJoinedDate, channelDescriptionLinks, isChannelVerified
📦 Channel objectaboutChannelInfo repeats the channel fields and adds isAgeRestricted and inputChannelUrl
📥 Sourceinput, inputChannelUrl, fromYTUrl, fromChannelListPage, order
🚧 ReservedtranslatedTitle, translatedText, location, collaborators, isMonetized, aiVideoDescription, aiVideoSummary (always null)
🛑 Error rowsurl, 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, and subtitles or descriptionLinks can 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.

  1. Create a free Apify account with your email.
  2. Open YouTube Shorts Scraper.
  3. Add one or more names, @handles or links to channels.
  4. Set maxResultsShorts to how many Shorts you want from each channel.
  5. Choose sortChannelShortsBy and, if you like, oldestPostDate.
  6. Click Start and wait for the run to finish.
  7. 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:

PlanPrice per ShortPrice 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.

FieldTypeRequiredDefaultDescription
channelsarrayYesnone (prefill mrbeast)Channel usernames, @handles or channel URLs, one per line.
maxResultsShortsintegerNo20Shorts to collect from each channel (1 to 999999).
sortChannelShortsBystringNoNEWESTNEWEST, POPULAR or OLDEST.
oldestPostDatestringNoemptySkip Shorts older than a date or relative value.
proxyConfigurationobjectNo{"useApifyProxy": false}Optional connection settings. Leave the default unless you need your own.
browserFallbackbooleanNotrueMake one extra attempt on requests that keep failing.
maxConcurrencyintegerNo5Shorts fetched in parallel per channel (1 to 20).
maxRetriesintegerNo3Attempts before one request counts as failed (1 to 10).
maxScannedintegerNo5000Safety 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 sortChannelShortsBy says. 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.
  • order is 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 maxResultsShorts between 10 and 20 for a sample, since you pay per saved Short.
  • Use oldestPostDate to collect only recent Shorts.
  • Raise maxConcurrency for 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 ApifyClient
client = 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

ActorWhat it does
💬 YouTube Comments ScraperVideo comments and replies with author, text, likes and publish date.
🔗 Whop Content Rewards ScraperEvery Whop Content Rewards clipping & UGC campaign as clean data — per-platform payout tables, creator counts, budget burn, days-to-depletion...
🔗 YouTube Hashtag Search ScraperCollect videos and Shorts posted under any YouTube hashtag, with titles, views, channels, publish dates and descriptions.
🔗 YouTube Trending Shorts ScraperCollect trending YouTube Shorts for any search, hashtag or topic, with views, likes, comments, channel, publish date and keywords.

FAQ

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.