YouTube Shorts Scraper Pro — Short Video Data at Scale
Pricing
from $3.00 / 1,000 results
YouTube Shorts Scraper Pro — Short Video Data at Scale
Reliable short video scraper built for stability. Extract YouTube Shorts from channels, search or trending, with views, engagement and metadata. No browser needed, so it is fast and cheap. $3 per 1K results.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Sami
Maintained by CommunityActor stats
0
Bookmarked
23
Total users
5
Monthly active users
17 days ago
Last modified
Categories
Share
YouTube Shorts Scraper Pro
Scrape YouTube Shorts from channels, keyword searches or trending searches. Uses a stable structured-data approach instead of fragile HTML parsing, and needs no browser, so runs stay light and cheap.
How to scrape YouTube Shorts in 3 easy steps
- Go to the YouTube Shorts Scraper Pro page on Apify and click "Try for free".
- Configure your input — choose a scraping mode (channel Shorts, search Shorts, or trending Shorts), enter channel URLs or search keywords, and set the maximum number of results.
- Click "Run", wait for the results, and download your data in JSON, CSV, or Excel format.
No coding required. Works with Apify's free plan.
Why structured-data extraction instead of HTML parsing?
This Actor reads YouTube's structured data rather than page HTML, so frontend changes affect it less. It runs over plain HTTP, with no browser.
This actor auto-detects the current configuration on each run, ensuring compatibility even when YouTube updates these values.
YouTube Shorts API alternative
There is no official YouTube Shorts API for bulk data extraction. The YouTube Data API v3 does not distinguish Shorts from regular videos and has strict daily quota limits. This Actor works as a YouTube Shorts API alternative in 2026 — it extracts Shorts-specific data (views, likes, comments, hashtags, thumbnails) and returns structured JSON ready for analysis. No API key management, no quota worries, and no rate limit headaches.
3 Scraping Modes
Mode 1: Channel Shorts
Extract Shorts from specific YouTube channels.
Input:
{"mode": "channel_shorts","channelUrls": ["https://www.youtube.com/@MrBeast","@mkbhd","pewdiepie"],"maxResults": 50}
Mode 2: Search Shorts
Find Shorts by keyword search.
Input:
{"mode": "search_shorts","searchQuery": "cooking recipes shorts","maxResults": 30}
Mode 3: Trending Shorts
Get popular/trending Shorts. Trending mode runs three fixed searches ("shorts trending today", "#shorts viral", "popular shorts this week") in the YouTube region set by country (a 2-letter ISO code such as US, GB or ES; anything else runs as US), and every row carries that region in trendingCountry. If YouTube returns nothing for the region, the run falls back to US and labels those rows US.
Input:
{"mode": "trending_shorts","country": "US","maxResults": 50}
Engagement enrichment
Enable enrichWithEngagement to fetch likes, comments, the upload date (publishDate) and full descriptions for each Short. This adds 1 extra API request per Short (slower but more data). A count YouTube does not show (hidden likes, comments turned off) comes back as null, not 0.
{"mode": "channel_shorts","channelUrls": ["@MrBeast"],"maxResults": 10,"enrichWithEngagement": true}
Output format
| Field | Type | Description |
|---|---|---|
videoId | string | YouTube video ID |
title | string | null | Short title. null if YouTube sends none |
url | string | Direct link to the Short |
channelName | string | null | Creator's channel name (Channel Shorts mode; search/trending results from the Shorts grid do not carry channel info). null if YouTube did not return it |
channelUrl | string | null | Creator's channel URL (same as above) |
channelId | string | null | YouTube channel ID (same as above) |
viewCount | integer | null | Number of views, from YouTube's rounded text ("6.7M views" → 6700000). null if YouTube shows no view count |
viewCountText | string | null | Original view count text (e.g., "45M views"). null if YouTube shows none |
likeCount | integer | null | Likes, rounded as YouTube shows them (requires enrichment). null when the creator hides likes or YouTube sends no count — never a made-up 0 |
commentCount | integer | null | Comments, rounded as YouTube shows them (requires enrichment). null when comments are off or no count is shown |
description | string | Full description (requires enrichment; the field is left out when the Short has none) |
publishDate | string | null | Upload date YYYY-MM-DD as YouTube prints it (requires enrichment). This is YouTube's calendar day, not a UTC date like scrapedAt: YouTube's own upload timestamps are in US Pacific time, so a Short uploaded late in the Pacific evening can carry the day before its UTC date. null if YouTube only gives a relative time or a premiere/scheduled date |
publishedTimeText | string | null | Relative publish time, only when YouTube's listing includes it — the Shorts grid (channel and search results) usually does not, so use publishDate with enrichment |
thumbnailUrl | string | null | Thumbnail image URL. null if YouTube sends none |
trendingCountry | string | Trending mode only: the YouTube region the searches ran in |
hashtags | array | Hashtags from title/description |
isShort | boolean | Always true |
enriched | boolean | Whether engagement data was fetched |
scrapedAt | string | ISO timestamp |
Use cases
- Content creators: analyze competitor Shorts performance and find content gaps
- Marketing agencies: track viral Shorts trends across categories
- Brands: monitor brand mentions and product appearances in Shorts
- Researchers: study short-form video engagement patterns and virality
- Influencer marketing: find creators by Shorts views and engagement rate
Use with Python, JavaScript, or no code
You can call this Actor programmatically from any language using the Apify API, or just use the web UI with no code at all.
Python example:
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("zhorex/youtube-shorts-scraper-pro").call(run_input={"mode": "channel_shorts","channelUrls": ["@MrBeast"],"maxResults": 50,"enrichWithEngagement": True,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["viewCount"])
JavaScript example:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('zhorex/youtube-shorts-scraper-pro').call({mode: 'channel_shorts',channelUrls: ['@MrBeast'],maxResults: 50,enrichWithEngagement: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((item) => {console.log(item.title, item.viewCount);});
Pricing
$0.003 per Short ($3 per 1,000 Shorts). You only pay for successfully extracted results.
| Shorts | Cost |
|---|---|
| 100 | $0.30 |
| 1,000 | $3.00 |
| 10,000 | $30.00 |
Performance
- Speed: one request per page of results (a first page holds roughly 25-50 Shorts), with a 1.5 s pause between pages (without enrichment)
- Speed with enrichment: ~1 Short per 2 seconds (extra request per Short)
- Memory: 256MB (no browser)
- Reliability: structured-data approach is far more stable than HTML parsing
Accepted input formats
Channel inputs accept multiple formats:
- Full URL:
https://www.youtube.com/@MrBeast - Handle:
@MrBeast - Username:
MrBeast - Channel ID:
UCX6OQ3DkcsbYNE6H8uQQuVA
Proxy configuration
Datacenter proxies usually work fine. Switch to residential proxies if you experience blocks at high volume.
FAQ
Does this need a browser? No. It uses pure HTTP requests against a stable structured-data path. No Playwright, no Puppeteer.
Does this need a proxy? Optional but recommended for production use. Datacenter proxies are usually sufficient.
How is this different from other YouTube Shorts scrapers? This scraper reads YouTube's structured data rather than page HTML, so frontend changes affect it less.
Can I get likes and comments?
Yes, enable enrichWithEngagement. It adds 1 extra API request per Short.
What happens when YouTube changes something? The underlying data path rarely changes. When minor changes happen, the recursive parser adapts automatically. The actor also auto-detects the current configuration on each run.
How much does it cost to scrape YouTube Shorts? $0.003 per Short ($3 per 1,000 Shorts). You only pay for successfully extracted results. Apify's free plan includes $5 of monthly usage, so you can scrape ~1,600 Shorts for free every month.
Can I use this YouTube Shorts scraper in Python?
Yes. Install the apify-client package (pip install apify-client) and call the Actor with a few lines of code. See the Python example above.
Is scraping YouTube Shorts legal? This Actor accesses publicly available data through YouTube's own API endpoints. It does not bypass any authentication or access private data. Always review YouTube's Terms of Service and your local regulations before scraping. Use the data responsibly and in compliance with applicable laws.
How does this YouTube Shorts scraper work? This Actor (YouTube Shorts Scraper Pro) uses a structured-data approach instead of HTML parsing, so frontend changes affect it less, and it needs no browser, which keeps runs light.
Can I scrape YouTube Shorts without coding? Yes. Just open the Actor page on Apify, configure your input in the web UI, and click Run. No coding required. You can download results in JSON, CSV, or Excel format directly from the Apify dashboard.
Limitations
- YouTube may change underlying parameters (rare but possible)
- View/like counts may have slight reporting delays vs real-time
- Full descriptions require enrichment mode (adds 1 request per Short)
- Rate limited to ~40 requests/minute to avoid blocks
- Maximum 500 results per channel/search
Integrations & data export
This Actor integrates with the full Apify ecosystem and popular automation platforms:
- Google Sheets — export YouTube Shorts data directly to a spreadsheet
- Zapier / Make / n8n — trigger workflows whenever new Shorts are scraped
- REST API — call the Actor from any application using the Apify API
- Webhooks — receive notifications when a scraping run finishes
- Amazon S3 / Google Cloud Storage — store datasets in your own cloud bucket
- JSON / CSV / Excel — download results in the format you need
More scrapers by Zhorex
Social media & content scrapers:
B2B & reviews scrapers:
SEO & data tools:
Reviews, good or bad, help other users decide: leave a rating.