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
7
Total users
2
Monthly active users
20 hours 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.
Who is it for?
- ๐ Social media analysts โ tracking YouTube Shorts trends, views, and engagement metrics
- ๐ฌ Content creators โ researching popular Shorts formats and competitor performance
- ๐ Marketing teams โ analyzing short-form video trends for campaign planning
- ๐ข Brand managers โ monitoring brand mentions and competitor activity on Shorts
- ๐ Academic researchers โ studying short-form video consumption patterns and virality
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)
cURL:
curl -X POST "https://api.apify.com/v2/acts/automation-lab~youtube-shorts-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"channelUrls":["https://www.youtube.com/@MrBeast"],"maxShortsPerChannel":50}'
Use with AI agents via MCP
YouTube Shorts Scraper is available as a tool for AI assistants via the Model Context Protocol (MCP).
Setup for Claude Code
$claude mcp add --transport http apify "https://mcp.apify.com"
Setup for Claude Desktop, Cursor, or VS Code
{"mcpServers": {"apify": {"url": "https://mcp.apify.com"}}}
Example prompts
- "Get the latest YouTube Shorts from @mkbhd"
- "Find trending Shorts about cooking"
- "Scrape all Shorts from the NileRed channel and export to CSV"
Learn more in the Apify MCP documentation.
Legality
Scraping publicly available data is generally legal according to the US Court of Appeals ruling (HiQ Labs v. LinkedIn). This actor only accesses publicly available information and does not require authentication. Always review and comply with the target website's Terms of Service before scraping. For personal data, ensure compliance with GDPR, CCPA, and other applicable privacy regulations.
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).
The scraper returns 0 results for a channel. What's wrong?
Make sure the channel actually has Shorts content. Some channels only have regular videos. Also verify the URL is correct โ handles are case-sensitive (@MrBeast, not @mrbeast). If the channel has Shorts but you still get 0 results, try using the full channel URL format (youtube.com/channel/UC...) instead.
The scraper is slower than expected. How can I speed it up?
Each Short requires 2 additional API calls for enrichment data (likes, dates, duration). This is normal and ensures you get complete data. For faster runs at the expense of less data, reduce maxShortsPerChannel. Processing speed is approximately 20 Shorts per minute.
Other YouTube and video scrapers on Apify
- YouTube Scraper -- scrape YouTube videos, channels, and comments at scale
- YouTube Transcript Scraper -- extract transcripts and subtitles from YouTube videos
- YouTube Transcript Enhanced -- transcripts with SRT/VTT export, paragraph chunking, and keyword search
- TikTok Scraper -- scrape TikTok videos, profiles, and hashtags
- Instagram Scraper -- extract Instagram posts, profiles, and hashtags