YouTube Shorts Scraper
Pricing
Pay per event
YouTube Shorts Scraper
Scrape YouTube Shorts from any channel. Extract video titles, view counts, thumbnails, and URLs. Fast pure HTTP approach — no browser needed. Export to JSON, CSV, or Excel.
Pricing
Pay per event
Rating
0.0
(0)
Developer

Stas Persiianenko
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
What does YouTube Shorts Scraper do?
YouTube Shorts Scraper extracts Shorts data from any YouTube channel. Provide channel URLs or handles, and get structured data including video titles, exact view counts, likes, comments, publish dates, duration, descriptions, and thumbnails. Uses a fast pure HTTP approach — no browser needed, which means lower cost and higher speed.
Why use YouTube Shorts Scraper?
- 3x cheaper than alternatives — $2.00 per 1,000 Shorts at the Free tier
- Rich data — exact view counts, likes, comments, dates, duration, and descriptions
- Fast — pure HTTP with InnerTube API, no browser overhead
- Simple input — just paste channel URLs or handles (@MrBeast, /channel/UC..., etc.)
- Pagination built in — automatically fetches all Shorts from a channel
- All export formats — JSON, CSV, Excel, XML via Apify integrations
What data can you extract?
| Field | Type | Description |
|---|---|---|
| videoId | string | YouTube video ID |
| title | string | Short title |
| url | string | Direct link to the Short |
| thumbnailUrl | string | Thumbnail image URL |
| viewCount | number | Exact view count |
| viewCountText | string | Abbreviated views (e.g., "1.2M views") |
| date | string | Publish date (ISO 8601) |
| likes | number | Exact like count |
| commentsCount | number | Comment count |
| duration | string | Video duration (MM:SS) |
| description | string | Video description text |
| hashtags | array | Hashtags extracted from description |
| channelId | string | Channel's UC-prefixed ID |
| channelName | string | Channel display name |
| channelUrl | string | Link to the channel |
| channelUsername | string | Channel handle (without @) |
| numberOfSubscribers | number | Channel subscriber count |
| isChannelVerified | boolean | Whether channel is verified |
How much does it cost to scrape YouTube Shorts?
This Actor uses pay-per-event pricing — you pay only for what you scrape. No monthly subscription. All platform costs (compute, proxy, storage) are included.
| Free plan | Starter ($49/mo) | Scale ($499/mo) | |
|---|---|---|---|
| Per Short | $0.002 | $0.0017 | $0.0014 |
| 1,000 Shorts | $2.00 | $1.70 | $1.40 |
| 10,000 Shorts | $20.00 | $17.00 | $14.00 |
Real-world cost examples:
| Input | Shorts scraped | Duration | Cost (Free tier) |
|---|---|---|---|
| 1 channel, 10 Shorts | 10 | ~30s | ~$0.03 |
| 3 channels, 3 each | 9 | ~60s | ~$0.02 |
| 1 channel, 100 Shorts | 100 | ~5 min | ~$0.21 |
How to scrape YouTube Shorts
- Go to the YouTube Shorts Scraper page on Apify
- Enter one or more YouTube channel URLs (e.g.,
https://www.youtube.com/@MrBeast) - Set the maximum number of Shorts per channel (default: 100)
- Click Start and wait for results
- Download your data in JSON, CSV, or Excel
Input parameters
| Parameter | Type | Description |
|---|---|---|
| channelUrls | array | YouTube channel URLs, handles, or channel IDs. Required. |
| maxShortsPerChannel | integer | Max Shorts to scrape per channel. 0 = unlimited. Default: 100. |
| maxRequestRetries | integer | Retry attempts for failed requests. Default: 3. |
Input example:
{"channelUrls": ["https://www.youtube.com/@MrBeast","https://www.youtube.com/@NileRed","UCq-Fj5jknLsUf-MWSy4_brA"],"maxShortsPerChannel": 50}
Output example
{"videoId": "vUeY-SU4i04","title": "Dissolving glass in scary hydrofluoric acid","url": "https://www.youtube.com/shorts/vUeY-SU4i04","thumbnailUrl": "https://i.ytimg.com/vi/vUeY-SU4i04/oardefault.jpg?...","viewCount": 3519541,"viewCountText": "3.5M views","date": "2026-01-18T16:49:28.000Z","likes": 185514,"commentsCount": 5100,"duration": "02:34","description": "For a while now, I've wanted to test the power of hydrofluoric acid...\n\n#shorts","hashtags": ["#shorts"],"channelId": "UCFhXFikryT4aFcLkLw2LBLA","channelName": "NileRed","channelUrl": "https://www.youtube.com/channel/UCFhXFikryT4aFcLkLw2LBLA","channelUsername": "NileRed","numberOfSubscribers": 10500000,"isChannelVerified": false}
Tips for best results
- Use channel URLs with
@handleformat — they're the most reliable - You can mix URL formats:
@MrBeast, full URLs, and raw channel IDs all work - For large channels (1000+ Shorts), set
maxShortsPerChannelto limit costs - Each Short requires 2 additional API calls for enrichment (likes, date, duration, etc.)
- Results are ordered the same way YouTube displays them (newest first)
Integrations
Connect YouTube Shorts Scraper with any tool in your workflow:
- Google Sheets — automatically export Shorts data to spreadsheets
- Slack / Email — get notified when scraping completes
- Zapier / Make — trigger downstream workflows with scraped data
- API — call programmatically from your own apps
- Webhooks — receive results via HTTP callback
Using the Apify API
Node.js:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('automation-lab/youtube-shorts-scraper').call({channelUrls: ['https://www.youtube.com/@MrBeast'],maxShortsPerChannel: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python:
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('automation-lab/youtube-shorts-scraper').call(run_input={'channelUrls': ['https://www.youtube.com/@MrBeast'],'maxShortsPerChannel': 50,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
FAQ
Can I scrape Shorts from multiple channels at once?
Yes. Add as many channel URLs as you need to the channelUrls array. Each channel is processed sequentially.
What URL formats are supported?
You can use @handle URLs (youtube.com/@MrBeast), full channel URLs (youtube.com/channel/UC...), or raw channel IDs (UCX6OQ3DkcsbYNE6H8uQQuVA).
Does this scraper use a browser? No. It uses pure HTTP requests to YouTube's InnerTube API, which is faster and cheaper than browser-based approaches.
How many Shorts can I scrape?
There's no hard limit. Set maxShortsPerChannel to 0 to scrape all Shorts from a channel. Large channels may have 1000+ Shorts.
What's the difference between viewCount and viewCountText?
viewCount is the exact numeric view count (e.g., 177870215). viewCountText is the abbreviated text shown on YouTube (e.g., "177M views").
How accurate are the like and comment counts? Like counts are exact numbers from YouTube's API. Comment counts are approximate (rounded to nearest thousand for large counts).