Extract public YouTube Shorts metadata from channel Shorts tabs and direct Shorts URLs.
Use this actor to collect Shorts URLs, video IDs, titles, channel information, view labels, thumbnail links, and source tracking fields for research, reporting, and content monitoring workflows.
At a glance
- Input: Public YouTube channel
/shortsURLs, direct Shorts URLs, result cap, and optional proxy settings. - Output: One dataset row per public Short with video ID, URL, title, channel, thumbnail, publish metadata, and source context when available.
- Best for: Shorts monitoring, creator research, competitor tracking, trend scouting, and short-form video datasets.
- Pricing unit: A start event per run plus one
resultevent for each saved Short. - Login required: No. The Actor reads public YouTube Shorts pages only.
What can it do?
YouTube Shorts Scraper turns public YouTube Shorts pages into structured data.
It accepts public channel Shorts tabs such as https://www.youtube.com/@YouTube/shorts.
It also accepts direct Shorts URLs such as https://www.youtube.com/shorts/VIDEO_ID.
For each Short found, the actor saves a clean dataset row.
The dataset is ready for export to JSON, CSV, Excel, Google Sheets, BI tools, or your own API pipeline.
Who is it for?
๐ฏ Social media managers tracking competitor Shorts.
๐ฏ Creator teams collecting content ideas from public channels.
๐ฏ Agencies preparing monthly YouTube performance reports.
๐ฏ Trend researchers monitoring short-form video themes.
๐ฏ Lead generation teams finding active creators and channels.
๐ฏ Analysts building dashboards around Shorts publishing activity.
Why use this actor?
YouTube's web interface is designed for watching videos, not exporting research datasets.
This actor gives you repeatable structured data from public pages.
You can run the same input daily, weekly, or monthly.
You can combine results from multiple channels in one run.
You can stop at a small limit for quick checks or increase the limit for broader monitoring.
How to scrape YouTube Shorts
Open the actor on Apify.
Paste one or more public YouTube channel Shorts URLs.
Set
maxItemsto the number of Shorts you want.Run the actor.
Open the Dataset tab.
Export the data as JSON, CSV, Excel, or via API.
Input example
{
"startUrls": [
{ "url": "https://www.youtube.com/@YouTube/shorts" }
],
"maxItems": 20,
"proxyConfiguration": {
"useApifyProxy": false
}
}
Output example
{
"shortUrl": "https://www.youtube.com/shorts/ssjBTBCO8cE",
"videoId": "ssjBTBCO8cE",
"title": "Kizzy the Parrot makes a BIG prediction",
"channelName": "YouTube",
"channelUrl": "https://www.youtube.com/@YouTube",
"viewCountText": "6.9K views",
"thumbnailUrl": "https://i.ytimg.com/vi/ssjBTBCO8cE/frame0.jpg",
"publishedTimeText": null,
"durationText": null,
"position": 1,
"sourceUrl": "https://www.youtube.com/@YouTube/shorts",
"scrapedAt": "2026-06-17T00:00:00.000Z"
}
Supported URL types
โ
Public channel Shorts tabs, for example https://www.youtube.com/@YouTube/shorts.
โ
Direct Shorts URLs, for example https://www.youtube.com/shorts/VIDEO_ID.
โ
Handle shorthand in inputs, for example @YouTube.
The actor is built for public data.
It does not access private channels, private videos, member-only videos, or account-only analytics.
Tips for best results
Use channel /shorts tabs for bulk collection.
Use direct Shorts URLs when you only need a specific video row.
Keep the first run small to confirm the channel has public Shorts.
Use multiple start URLs to combine channels in one dataset.
Remove duplicate channel URLs from your input to avoid repeated rows.
Common use cases
๐ Track Shorts posted by competitor channels.
๐ง Build a content ideation spreadsheet.
๐ Monitor titles and topics in a niche.
๐ Feed a dashboard with fresh Shorts links.
๐งพ Create a historical archive of public Shorts listings.
๐ค Find creators publishing short-form videos in your category.
Integrations
Export the dataset to Google Sheets for manual review.
Send the dataset to a data warehouse for trend analysis.
Connect Apify webhooks to trigger Slack alerts when a run finishes.
Use Make, Zapier, or n8n to move new Shorts into your content planning workflow.
Call the actor from your backend when you need fresh channel data.
API usage with Node.js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/youtube-shorts-scraper').call({
startUrls: [{ url: 'https://www.youtube.com/@YouTube/shorts' }],
maxItems: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
API usage with Python
from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('fetch_cat/youtube-shorts-scraper').call(run_input={
'startUrls': [{'url': 'https://www.youtube.com/@YouTube/shorts'}],
'maxItems': 20,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
API usage with cURL
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~youtube-shorts-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"startUrls": [{"url": "https://www.youtube.com/@YouTube/shorts"}],
"maxItems": 20
}'
MCP and AI agents
Use this actor from AI tools through Apify MCP.
MCP URL:
https://mcp.apify.com/?tools=fetch_cat/youtube-shorts-scraper
Claude Code example:
claude mcp add apify-youtube-shorts https://mcp.apify.com/?tools=fetch_cat/youtube-shorts-scraper
Claude Desktop configuration example:
{
"mcpServers": {
"apify-youtube-shorts": {
"url": "https://mcp.apify.com/?tools=fetch_cat/youtube-shorts-scraper"
}
}
}
Example prompts:
"Scrape the latest Shorts from this YouTube channel and summarize the most common topics."
"Collect 50 Shorts from these competitor channels and return a CSV-ready table."
"Find Shorts titles that mention product launches or announcements."
Scheduling
You can schedule this actor in Apify Console.
Daily runs are useful for monitoring active channels.
Weekly runs are useful for reporting and trend snapshots.
Use a stable input list so every scheduled run is comparable.
Data quality notes
YouTube page layouts can vary by channel, region, and time.
Some fields are optional because YouTube may not show them on every surface.
If a field is not visible publicly, the actor leaves it as null rather than guessing.
The sourceUrl and scrapedAt fields help you audit where each row came from.
Limits
The actor only collects public data visible without a YouTube account.
It does not download videos.
It does not provide private analytics.
It does not bypass access controls.
Very large runs can take longer because YouTube loads channel Shorts in pages.
Troubleshooting
Why did I get fewer Shorts than requested?
The channel may have fewer public Shorts than your maxItems value.
The input may point to a channel page instead of the /shorts tab.
Try opening the URL in a browser and confirm that public Shorts are visible.
Why are some fields null?
YouTube does not show every metadata field in every page context.
For example, listing pages usually show title, URL, thumbnail, and view label, while direct video pages may expose different metadata.
The actor returns optional fields only when they are publicly available.
Should I enable proxies?
Most small runs should work with the default direct connection.
If your region is blocked or YouTube returns unusual pages, enable Apify Proxy in the advanced input section.
Legality and ethical use
This actor is intended for public web data.
Make sure your use case complies with YouTube's terms, applicable laws, and privacy requirements.
Do not use scraped data for spam, harassment, or unauthorized profiling.
If you are unsure whether your use case is allowed, consult your legal advisor.