YouTube Shorts Scraper avatar

YouTube Shorts Scraper

Pricing

from $0.90 / 1,000 results

Go to Apify Store
YouTube Shorts Scraper

YouTube Shorts Scraper

Extract YouTube Shorts data from one or multiple YouTube channels. Get video URL, caption, timestamp, likes, views, comments count, and channel info.

Pricing

from $0.90 / 1,000 results

Rating

0.0

(0)

Developer

Beautiful Scrape

Beautiful Scrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

What is YouTube Shorts Scraper?

YouTube Shorts Scraper lets you extract Shorts data from YouTube channels, individual Short URLs, and hashtags — helping you track trends, analyze engagement, and gather content insights with just a few clicks.

Find current trends: discover what Shorts creators are posting and which topics are getting traction Analyze engagement: extract views, likes, comments counts, and upload dates to compare performance across channels Monitor competitors: track Shorts activity on competitor channels and see how their short-form content performs Scrape by hashtag: collect Shorts tagged with a specific topic via YouTube's hashtag Shorts tab Automate Shorts collection: replace manual browsing with repeatable workflows that keep datasets fresh and consistent

The scraper can open a channel’s Shorts tab, fetch a direct Short URL, or browse a hashtag’s Shorts page — then enrich each Short with detailed metadata beyond what the YouTube Data API makes easy to collect in bulk.

What data does YouTube Shorts Scraper extract?

📝 Title - The Shorts video title / caption

🆔 Video ID - The unique YouTube video ID

🔗 URL - Direct link to the Short (https://www.youtube.com/shorts/...)

👁️ View Count - Number of views on the Short

📅 Date - Upload date of the Short

👍 Likes - Number of likes on the Short

⏱️ Duration - Length of the Short

💬 Comments Count - Total number of comments on the Short

📺 Channel Name - Name of the channel that posted the Short

🌐 Channel URL - Link to the channel page

📈 Subscribers - Number of channel subscribers

🖼️ Thumbnail URL - Thumbnail image for the Short

#️⃣ Hashtags - Hashtags associated with the Short

📄 Text - Full description / caption text

🏷️ Type - Always "shorts" for items from this actor

Features

For maximum usefulness, YouTube Shorts Scraper has the following abilities:

Extract everything: Shorts metadata, engagement metrics, descriptions, hashtags, and channel details

Flexible input: scrape from channels, direct Short URLs, and/or hashtags in one run

Result limit: control how many Shorts to scrape per channel or hashtag with maxResultsShorts

Sorting options: choose newest, most popular, or oldest Shorts on the channel tab

Date filtering: scrape only Shorts published after a specific date with oldestPostDate

Automatic pagination: handles Shorts tab continuation pages automatically

Error resilience: continues processing remaining inputs even if one fails

Structured output: export data in JSON format with consistent schema for easy analysis

⬇️ Input

Provide at least one of: channels, Short URLs, or hashtags. You can also configure the maximum number of Shorts, sorting preferences, and date filters. You can set up the input programmatically or use the fields in the Actor's interface.

Channels

You can provide one or more YouTube channels using the channels array. Each entry can be a username (with or without @) or a full channel URL.

Supported channel formats:

  • Username: nasa
  • Handle: @nasa
  • Channel URL: https://www.youtube.com/@nasa
  • Shorts tab URL: https://www.youtube.com/@nasa/shorts
  • Channel ID URL: https://www.youtube.com/channel/UCxxx
  • Custom URL: https://www.youtube.com/c/Apify

Short URLs

Use shortUrls to scrape one or more Shorts directly by URL.

Supported URL formats:

  • Shorts: https://www.youtube.com/shorts/VIDEO_ID
  • Watch: https://www.youtube.com/watch?v=VIDEO_ID
  • Short link: https://youtu.be/VIDEO_ID

Hashtags

Use hashtags to scrape Shorts from a hashtag’s Shorts tab (https://www.youtube.com/hashtag/{tag}/shorts).

Supported formats:

  • gaming
  • #gaming
  • https://www.youtube.com/hashtag/gaming
  • https://www.youtube.com/hashtag/gaming/shorts

Input Parameters

Provide at least one of:

  • channels (array) - YouTube channel usernames or URLs
  • shortUrls (array) - Direct Short / video URLs
  • hashtags (array) - Hashtags to scrape Shorts from

Optional:

  • maxResultsShorts (integer, default: 10) - Limit Shorts per channel or hashtag (Short URLs always return one item each)
  • sortChannelShortsBy (string, default: "NEWEST") - Channel Shorts tab sorting only:
    • "NEWEST" = Newest Shorts first
    • "POPULAR" = Most popular Shorts first
    • "OLDEST" = Oldest Shorts first
  • oldestPostDate (string) - Only Shorts uploaded after or on this date will be scraped (channels and hashtags). Putting "1 day" gets today's Shorts, "2 days" yesterday's and today's, and so on. When set, channel sorting is auto-reset to newest.

Example Input (channels)

{
"channels": ["nasa", "vsauce"],
"maxResultsShorts": 25,
"sortChannelShortsBy": "NEWEST"
}

Example Input (Short URL)

{
"shortUrls": [
"https://www.youtube.com/shorts/myZ9kn9MIWQ"
]
}

Example Input (hashtag)

{
"hashtags": ["gaming", "#ai"],
"maxResultsShorts": 20
}

Example Input (combined)

{
"channels": ["mrbeast"],
"shortUrls": ["https://www.youtube.com/shorts/myZ9kn9MIWQ"],
"hashtags": ["fashion"],
"maxResultsShorts": 10
}

Example Input with Date Filter

{
"channels": ["nasa"],
"maxResultsShorts": 50,
"oldestPostDate": "2025-06-03",
"sortChannelShortsBy": "NEWEST"
}

⬆️ Output

The results will be wrapped into a dataset which you can find in the Output or Storage tab. Note that the output is organized in tables and tabs for viewing convenience. You can view results as a table, JSON, or other formats.

Once the run is finished, you can also download the dataset in various data formats (JSON, CSV, Excel, XML, HTML). Before exporting, you can pick or omit specific output fields.

Table View

The table view displays all Shorts with their associated metadata. You can sort by title, views, date, likes, channel name, or other fields.

JSON Output

Here's an example of the data structure for a single Short:

{
"title": "2026 Solar Eclipse @ 50,000 Feet",
"type": "shorts",
"id": "myZ9kn9MIWQ",
"url": "https://www.youtube.com/shorts/myZ9kn9MIWQ",
"thumbnailUrl": "https://i.ytimg.com/vi/myZ9kn9MIWQ/maxresdefault.jpg",
"viewCount": 256184,
"date": "2026-08-14T00:00:00.000Z",
"likes": 13760,
"location": null,
"channelName": "NASA",
"channelUrl": "https://www.youtube.com/channel/UCLA_DiR1FfKNvjuUpBHmylQ",
"channelId": "UCLA_DiR1FfKNvjuUpBHmylQ",
"channelUsername": "NASA",
"numberOfSubscribers": 15100000,
"duration": "01:33",
"commentsCount": null,
"text": "These views, including footage from GoPro cameras, were captured by NASA's WB-57 aircraft during the 2026 total solar eclipse.",
"hashtags": [],
"fromYTUrl": "https://www.youtube.com/@nasa/shorts",
"fromChannelListPage": "shorts",
"order": 0,
"input": "nasa"
}

Output Fields

FieldTypeDescription
titlestring | nullThe Shorts video title / caption
typestringAlways "shorts"
idstringThe unique YouTube video ID
urlstringDirect link to the Short
thumbnailUrlstring | nullThumbnail image URL
viewCountnumber | nullNumber of views on the Short
datestring | nullUpload date (ISO format)
likesnumber | nullNumber of likes on the Short
durationstring | nullLength of the Short
commentsCountnumber | nullTotal number of comments
textstring | nullFull description / caption text
hashtagsarrayHashtags found in the Short description
hashtagstring | nullSource hashtag when scraped via hashtags input
channelNamestring | nullName of the channel
channelUrlstring | nullLink to the channel page
channelIdstring | nullYouTube channel ID
channelUsernamestring | nullChannel handle / username
numberOfSubscribersnumber | nullNumber of channel subscribers
fromYTUrlstringThe Shorts / hashtag / Short URL that was scraped
fromChannelListPagestring | null"shorts" when scraped from a channel tab
ordernumber0-based position in the results
inputstringOriginal input value (channel, URL, or hashtag)

Error items

When the scraper cannot retrieve data for a given input — for example a channel does not exist or has no Shorts — it pushes an error item to the dataset instead of silently skipping it. Normal output items are never affected; you can tell them apart by the presence of an error field.

Error item structure

{
"url": "https://www.youtube.com/@somechannel",
"input": "somechannel",
"error": "CHANNEL_HAS_NO_SHORTS",
"note": "The channel has no shorts."
}

Error codes reference

Error codeMeaning
CHANNEL_DOES_NOT_EXISTChannel URL points to a channel that does not exist
CHANNEL_HAS_NO_SHORTSChannel exists but has no Shorts
DATE_FILTER_TOO_STRICTShorts exist but none match the active date filter
NO_VIDEOSNo Shorts found for the hashtag
VIDEO_UNAVAILABLEShort URL is unavailable or deleted
NOT_FOUNDPage was not found
INVALID_INPUTActor failed due to bad configuration