YouTube Shorts [Only $0.45💰] Scraper avatar

YouTube Shorts [Only $0.45💰] Scraper

Pricing

from $0.45 / 1,000 results

Go to Apify Store
YouTube Shorts [Only $0.45💰] Scraper

YouTube Shorts [Only $0.45💰] Scraper

$0.45💰 Unlock YouTube Shorts analytics! Extract views, likes, and engagement data from any channel. Get complete channel stats: 919M+ views tracking, subscriber counts, join dates, locations. Bulk scrape with sorting options. Perfect for content creators, marketers, and researchers analyzing trends

Pricing

from $0.45 / 1,000 results

Rating

5.0

(1)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

91

Total users

17

Monthly active users

a day ago

Last modified

Share

YouTube Shorts Scraper - Extract Shorts, Channel Data & Engagement Metrics

Unlock the power of YouTube Shorts analytics with our comprehensive Shorts Scraper. Extract detailed metadata, engagement metrics, and complete channel information from any YouTube Shorts channel or individual short video.

Overview

This actor allows you to scrape detailed information about YouTube Shorts, including title, view count, likes, duration, thumbnail URLs, and comprehensive channel metadata. Extract all shorts from any channel with complete engagement data and channel statistics. It provides valuable insights for content creators, marketers, and researchers looking to analyze Shorts performance, channel growth, and audience engagement.

Features

  • Complete Shorts Information: Extract comprehensive metadata about each short video including title, views, likes, duration, and upload date.
  • Channel Analytics: Get detailed channel information including total subscribers, total views, total videos, join date, and location.
  • Engagement Metrics: Capture view counts, like counts, and engagement statistics for every short.
  • Channel Branding Assets: Extract channel avatar URLs, banner images, and profile information.
  • Bulk Scraping: Scrape all shorts from a channel or specify a maximum number of items.
  • Sorting Options: Sort shorts by NEWEST, POPULAR, or OLDEST to get exactly the content you need.
  • Hashtag Extraction: Automatically extract all hashtags from short descriptions.
  • Transcripts (TXT / SRT / VTT): Optional includeTranscript adds plain text, timed segments, and ready-to-save SubRip + WebVTT subtitle files for every Short.
  • Real Comment Counts: commentsCount is read from the Shorts page for every video.
  • Music / Sound Credits: Song title, artist, and album for Shorts that use licensed audio (music field).
  • Computed Engagement Metrics: engagementRate (likes/views), viewsPerDay, and daysSincePublished on every row — viral-score analysis without extra math.
  • Region & Language Targeting: Optional regionCode (gl) and contentLanguage (hl) to localize listings and metadata.
  • Error Reporting: Failed sources (missing channel, empty hashtag, blocked page…) push structured error items to the dataset instead of failing silently — integration-friendly (Make, Zapier, n8n).
  • Customizable: Flexible configuration options including max items, sorting, and concurrency settings.
  • Proxy Support: Built-in proxy configuration to enhance scraping reliability and avoid blocks.
  • Scrape 40+ critical data points from any YouTube Short, including:

🎯 Core Metrics

  • View counts per short
  • Like counts (real-time engagement data)
  • Engagement rate, views per day, days since published (computed)
  • Music/sound credits (song, artist, album)
  • Video duration and upload date
  • Short type and format information

📊 Channel Analytics

  • Total subscriber count
  • Total channel views (all-time)
  • Total videos published
  • Channel join date and location
  • Channel verification status

📜 Content Details

  • Complete Short Metadata
    • Title and translated title support
    • Thumbnail URLs (high quality)
    • Hashtag extraction
    • Description and links
  • Channel Information:
    • Channel description
    • Channel username and ID
    • Avatar and banner URLs
    • Age restriction status

🛠 Technical Features

  • Automatic resolution of:
    • Channel URLs (handle, @username, or channel ID)
    • Individual short URLs
    • Bulk channel shorts extraction

How to Use

  1. Set Up: Ensure you have an Apify account and access to the Apify platform.
  2. Configure Input: Set the YouTube channel URL(s) or individual short URL(s) you want to scrape (see Input Configuration section).
  3. Adjust Parameters: (Optional) Configure maxItems, sorting order (NEWEST/POPULAR/OLDEST), concurrency, and proxy settings.
  4. Run the Scraper: Execute the scraper on the Apify platform.
  5. Data Collection: The scraper will output detailed data about each short including views, likes, and complete channel metadata.

Input Configuration

Here's an example of how to set up the input for the YouTube Shorts Scraper:

{
"channels": [
"rainbowicecream9780",
"Marques Brownlee"
],
"startUrls": [
"https://www.youtube.com/@channelname/shorts"
],
"searchQueries": ["web scraping", "apify tutorial"],
"hashtags": ["shorts", "coding"],
"shortUrls": [
"https://www.youtube.com/shorts/HKs9NvVRi5s"
],
"maxItems": 50,
"maxResultsShorts": 100,
"sortChannelShortsBy": "NEWEST",
"oldestPostDate": "2026-01-01",
"regionCode": "US",
"contentLanguage": "en",
"maxConcurrency": 10,
"maxRequestRetries": 15,
"includeTranscript": false,
"language": "default",
"proxy": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}

Input Fields Explanation

You need at least one source: channels, startUrls, searchQueries, hashtags, and/or shortUrls.

Data sources

FieldTypeDescription
channelsstring[]Channel names: a username without the @ ("rainbowicecream9780"), an @handle, a display name with spaces or punctuation ("Marques Brownlee", "AC/DC"), or a full channel link. See Channel name resolution below.
startUrlsstring[]The same channel sources as a URL list: full Shorts tab URLs (https://www.youtube.com/@handle/shorts, m.youtube.com, /channel/UC…/shorts, /c/…/shorts, /user/…/shorts, /Apify/shorts), scheme-less youtube.com/…, or bare handles. Merged with channels, which is processed first; an entry present in both with the same spelling is scraped once, but the same channel reached two different ways (a name and its channel link) is scraped twice.
searchQueriesstring[]Keywords for YouTube Shorts search (each query is run separately; same detail pipeline as channels).
hashtagsstring[]Hashtag hub pages: enter apify or #apify per row → /hashtag/{tag}/shorts.
shortUrlsstring[]Direct Shorts only: youtube.com/shorts/VIDEO_ID, watch?v=, youtu.be/…. Each unique video id is scraped once; counts toward maxItems.
Channel name resolution

A name is first tried as a handle (MrBeast → youtube.com/@MrBeast/shorts), which is what most names are — that costs no extra request. Only when the handle does not exist does the actor look further: the legacy shapes youtube.com/{name}, /c/{name}, /user/{name}, and then YouTube's channel search. A search result is accepted only when its channel title or @handle matches the name you typed (ignoring case, spaces and punctuation), so a typo returns a CHANNEL_NAME_NOT_RESOLVED row rather than Shorts from a look-alike channel. The three URL shapes are exact lookups of the token you typed in YouTube's own namespaces, so no title check is applied to them — a vanity path rarely equals the channel's display title.

Only a real answer from YouTube produces CHANNEL_NAME_NOT_RESOLVED. A bot check or a 401/403/429 from a flagged proxy exit is CHANNEL_PAGE_BLOCKED, and a 5xx or network failure during resolution is CHANNEL_PAGE_FETCH_FAILED — neither is ever reported as a name that matched nothing.

Rows carry the text you typed in input, so an error row is traceable back to the exact entry in your list. An entry that is neither a name nor a YouTube channel URL (https://example.com/x) is skipped with a CHANNEL_INPUT_INVALID row instead of vanishing.

Limits and filtering

FieldTypeDescription
maxItemsnumberGlobal cap: maximum total Shorts to scrape (default 30 if omitted; free users are capped at 30).
maxResultsShortsnumberPer-source cap: max Shorts per channel, per search query, or per hashtag (in addition to maxItems).
sortChannelShortsBystringChannel Shorts tab order: "NEWEST" (default), "POPULAR", or "OLDEST" (uses YouTube sort chips for Popular/Oldest).
oldestPostDatestringOnly keep Shorts published on or after this threshold. Absolute: YYYY-MM-DD or YYYY-MM-DDTHH:MM[:SS]Z (UTC, inclusive). Relative: e.g. 30 minutes, 2 hours, 7 days, 2 weeks, 3 months, 1 year. Empty = disabled.

Localization

FieldTypeDescription
regionCodestringISO 3166-1 alpha-2 country for YouTube gl (e.g. US, DE, JP). Applied to listing pages and InnerTube requests. Empty = proxy IP default.
contentLanguagestringInterface language for YouTube hl (e.g. en, de, pt-BR). Affects localized metadata text. Empty = default.

Crawler and reliability

FieldTypeDefault (input schema)Description
maxConcurrencynumber10Max pages processed in parallel.
maxRequestRetriesnumber15Attempts per failed request before the source is given up on. Lower it to spend less on channels that are blocked or gone; raise it for flaky proxies. 404s are never retried.

Omitting maxRequestRetries gives the same 15 as the schema default, so a minimal JSON body behaves exactly like a Console run.

Proxy

FieldTypeDescription
proxyobjectStandard Apify proxy settings: e.g. useApifyProxy, apifyProxyGroups (e.g. RESIDENTIAL), apifyProxyCountry, or custom proxyUrls. See Apify proxy docs.

Transcripts

FieldTypeDefaultDescription
includeTranscriptbooleanfalseFetch the transcript for each Short and add a subtitles object to the output: plain text, timed segments, plus ready-to-save SRT and WebVTT strings.
languagestring"default"Preferred transcript language code (e.g. en, de, es). Falls back to English / YouTube's default track when unavailable.

Output Structure

The output data includes detailed information about each YouTube Short along with comprehensive channel metadata. Here's a complete sample of the structure:

[
{
"title": "ASRM Satisfying sounds #asmr #music #funny #animation #shortvideo #shorts #satisfying",
"translatedTitle": null,
"type": "shorts",
"id": "HKs9NvVRi5s",
"url": "https://www.youtube.com/shorts/HKs9NvVRi5s",
"thumbnailUrl": "https://i.ytimg.com/vi/HKs9NvVRi5s/hq2.jpg?sqp=-oaymwFACKgBEF5IWvKriqkDMwgBFQAAiEIYANgBAeIBCggYEAIYBjgBQAHwAQH4AbYIgAKAD4oCDAgAEAEYciBDKDkwDw==&rs=AOn4CLBaOHct_7Ob2lwOZzME6tCzLeyl5g",
"viewCount": 173323,
"date": "2025-08-04T03:00:33-07:00",
"likes": 1251,
"location": null,
"channelName": "Coco Creator Rainbow",
"channelUrl": "https://www.youtube.com/channel/UC3N1VbltR6aREupzvJ8y-sw",
"channelUsername": "rainbowicecream9780",
"collaborators": null,
"channelId": "UC3N1VbltR6aREupzvJ8y-sw",
"channelDescription": "Thank you so much! I appreciate you all watching the videos.\n",
"channelJoinedDate": "Aug 9, 2021",
"channelDescriptionLinks": [],
"channelLocation": "United States",
"channelAvatarUrl": "https://yt3.googleusercontent.com/nVSr8lanf5UPU4Mc6oWOmKWqQ8VoFceHcQsM5sW63ZPp4r1S6M6pHr4stNOMGyknf1ig1Wjh3A=s160-c-k-c0x00ffffff-no-rj",
"channelBannerUrl": "https://yt3.googleusercontent.com/Wg27ZtirmK5sH4Bx7atk4CugZubFCTwsXZsKdITtWPT6aTiikJgl26heFNxnM16UJi0-qnlUxQ=w2560-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj",
"channelTotalVideos": 230,
"channelTotalViews": 919280766,
"numberOfSubscribers": 1380000,
"isChannelVerified": false,
"inputChannelUrl": "https://www.youtube.com/@rainbowicecream9780/shorts",
"isAgeRestricted": false,
"aboutChannelInfo": {
"channelName": "Coco Creator Rainbow",
"channelId": "UC3N1VbltR6aREupzvJ8y-sw",
"channelUrl": "https://www.youtube.com/channel/UC3N1VbltR6aREupzvJ8y-sw",
"channelUsername": "rainbowicecream9780",
"numberOfSubscribers": 1380000,
"channelTotalViews": 919280766,
"channelTotalVideos": 230,
"channelAvatarUrl": "https://yt3.googleusercontent.com/nVSr8lanf5UPU4Mc6oWOmKWqQ8VoFceHcQsM5sW63ZPp4r1S6M6pHr4stNOMGyknf1ig1Wjh3A=s160-c-k-c0x00ffffff-no-rj",
"channelBannerUrl": "https://yt3.googleusercontent.com/Wg27ZtirmK5sH4Bx7atk4CugZubFCTwsXZsKdITtWPT6aTiikJgl26heFNxnM16UJi0-qnlUxQ=w2560-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj",
"isChannelVerified": false,
"channelDescription": "Thank you so much! I appreciate you all watching the videos.\n",
"channelJoinedDate": "Aug 9, 2021",
"channelLocation": "United States",
"isAgeRestricted": false,
"inputChannelUrl": "https://www.youtube.com/@rainbowicecream9780/shorts"
},
"duration": "00:00:51",
"commentsCount": 0,
"text": null,
"translatedText": null,
"descriptionLinks": null,
"subtitles": null,
"order": 0,
"commentsTurnedOff": false,
"fromYTUrl": "https://www.youtube.com/@rainbowicecream9780/shorts",
"isMonetized": null,
"hashtags": [],
"formats": [],
"isMembersOnly": false,
"input": "https://www.youtube.com/@rainbowicecream9780/shorts",
"fromChannelListPage": "shorts",
"isPaidContent": false,
"music": {
"song": "Night",
"artist": "Kilo G",
"album": "Mercy",
"thumbnailUrl": "https://yt3.googleusercontent.com/28bcrPUQOxi6GimxKsf…",
"source": "videoAttribute"
},
"engagementRate": 0.007218,
"viewsPerDay": 561.26,
"daysSincePublished": 310
}
]

Output Fields Explanation

Each short in the output contains the following fields:

🎬 Video Information

  • title (string): The title of the YouTube Short as it appears on YouTube
  • translatedTitle (string|null): Translated title if translation is enabled, otherwise null
  • type (string): Content type, always "shorts" for YouTube Shorts
  • id (string): Unique YouTube video ID for the short
  • url (string): Full URL to access the short on YouTube
  • thumbnailUrl (string): High-quality thumbnail image URL for the short
  • duration (string): Video duration in HH:MM:SS format (e.g., "00:00:51")
  • date (string): Upload/publish date in ISO 8601 format
  • order (number): Sequential order number of the short in the result set

📊 Engagement Metrics

  • viewCount (number): Total number of views the short has received
  • likes (number): Total number of likes on the short
  • commentsCount (number): Total number of comments on the short (read from the Shorts page; 0 when none are visible)
  • commentsTurnedOff (boolean): Whether comments are disabled for this short
  • engagementRate (number|null): Likes ÷ views ratio (0–1, 6 decimals); null when views are unknown
  • viewsPerDay (number|null): Views ÷ days since publish — spot virality at a glance
  • daysSincePublished (number|null): Whole days since the publish date

🎵 Music / Sound

  • music (object|null): Sound credits when the Short uses licensed audio, otherwise null (original audio)
    • song (string|null): Track title
    • artist (string|null): Artist name
    • album (string|null): Album name when available
    • thumbnailUrl (string|null): Cover art URL
    • source (string): Which YouTube data shape supplied the credits (musicSection or videoAttribute)

📺 Channel Information

  • channelName (string): Display name of the channel that posted the short
  • channelUrl (string): Full URL to the channel page
  • channelUsername (string): Channel username/handle (without @ symbol)
  • channelId (string): Unique YouTube channel ID
  • channelDescription (string): Channel's about/description text
  • channelJoinedDate (string): Date when the channel was created (e.g., "Aug 9, 2021")
  • channelLocation (string): Geographic location of the channel
  • channelAvatarUrl (string): URL to the channel's profile picture/avatar
  • channelBannerUrl (string): URL to the channel's banner image
  • channelDescriptionLinks (array): Array of links from the channel description

📈 Channel Statistics

  • numberOfSubscribers (number): Total subscriber count for the channel
  • channelTotalViews (number): Total all-time views across all channel videos
  • channelTotalVideos (number): Total number of videos published on the channel
  • isChannelVerified (boolean): Whether the channel has YouTube verification badge

🔍 Additional Metadata

  • location (string|null): Geographic location tag for the video (if set)
  • collaborators (array|null): List of collaborators on the video (if any)
  • isAgeRestricted (boolean): Whether the content is age-restricted
  • isMonetized (boolean|null): Monetization status of the video
  • isMembersOnly (boolean): Whether the content is restricted to channel members
  • isPaidContent (boolean): Whether this is paid promotional content
  • hashtags (array): Array of hashtags extracted from the video title/description
  • text (string|null): Video description text
  • translatedText (string|null): Translated description if translation is enabled
  • descriptionLinks (array|null): Links extracted from video description
  • subtitles (object|null): Transcript data when includeTranscript is enabled and a transcript exists:
    • plainText (string): Full transcript as one string
    • segments (array): Timed segments { text, startMs, endMs, startTimeText }
    • srt (string): Ready-to-save SubRip (.srt) file content
    • vtt (string): Ready-to-save WebVTT (.vtt) file content
    • source (string): Transcript provider used
  • formats (array): Available video format information

🔄 Scraper Context

  • inputChannelUrl (string): The original input URL used to scrape this short
  • fromYTUrl (string): The YouTube URL where this short was found
  • input (string): The exact input parameter provided to the scraper
  • fromChannelListPage (string): Which channel page type was scraped ("shorts", "videos", etc.)

📦 aboutChannelInfo Object

Contains a complete snapshot of channel metadata at the time of scraping:

  • channelName (string): Channel display name
  • channelId (string): Unique channel identifier
  • channelUrl (string): Full channel URL
  • channelUsername (string): Channel username/handle
  • numberOfSubscribers (number): Subscriber count
  • channelTotalViews (number): All-time channel views
  • channelTotalVideos (number): Total videos published
  • channelAvatarUrl (string): Profile picture URL
  • channelBannerUrl (string): Channel banner URL
  • isChannelVerified (boolean): Verification status
  • channelDescription (string): Channel description
  • channelJoinedDate (string): Channel creation date
  • channelLocation (string): Channel location
  • isAgeRestricted (boolean): Age restriction status
  • inputChannelUrl (string): Input URL used for scraping

Error Items

When the scraper cannot retrieve data for a given input — for example a channel does not exist or a hashtag has no Shorts — it pushes an error item to the dataset instead of silently skipping it. Normal output rows never have an error field, so you can tell them apart reliably in integrations (Make, Zapier, n8n, API consumers).

Error item structure

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

Error codes reference

errorMeaning
CHANNEL_INPUT_INVALIDThe entry is neither a channel name nor a YouTube channel URL, so it was skipped before any request.
CHANNEL_DOES_NOT_EXISTThe channel does not exist (YouTube returned 404). Detected instantly — no retry loop.
CHANNEL_NAME_NOT_RESOLVEDA name from channels matched no channel — not as a handle, not as a legacy /c/, /user/ or vanity URL, and not in YouTube channel search. Only a real answer from YouTube produces this code. Pass the channel URL or @handle instead.
CHANNEL_PAGE_FETCH_FAILEDThe channel Shorts page, or the name resolution, could not be completed (5xx / network errors after retries).
CHANNEL_PAGE_BLOCKEDYouTube refused the request — bot check, or 401/403/429 on a flagged proxy exit. Try residential proxies.
CHANNEL_PARSE_FAILEDThe channel Shorts page could not be parsed.
CHANNEL_HAS_NO_SHORTSThe channel exists but has no Shorts.
SEARCH_PAGE_FETCH_FAILEDThe Shorts search results page could not be fetched.
SEARCH_PAGE_BLOCKEDYouTube blocked the search request (bot check).
SEARCH_PARSE_FAILEDThe search results page could not be parsed.
SEARCH_HAS_NO_SHORTSThe search query returned no Shorts.
HASHTAG_PAGE_FETCH_FAILEDThe hashtag Shorts page could not be fetched.
HASHTAG_PAGE_BLOCKEDYouTube blocked the hashtag page request (bot check).
HASHTAG_PARSE_FAILEDThe hashtag Shorts page could not be parsed.
HASHTAG_HAS_NO_SHORTSThe hashtag has no Shorts.
SHORT_DETAIL_FAILEDA Short's detail page could not be scraped after all retries.

Use Cases

This YouTube Shorts scraper is perfect for:

  • Content Creators: Analyze competitor shorts performance and engagement metrics
  • Marketers: Track trending shorts and identify viral content patterns
  • Researchers: Collect data on shorts engagement, channel growth, and content trends
  • Data Analysts: Build datasets for YouTube Shorts analytics and performance studies
  • Social Media Managers: Monitor channel performance and shorts strategy effectiveness
  • SEO Specialists: Analyze hashtag usage and optimize short video discoverability

Notes

  • The scraper automatically handles YouTube's dynamic content loading
  • Desktop YouTube structure is used to ensure likes and views data is available
  • Proxy usage is recommended to avoid rate limiting on large scrapes
  • All engagement metrics are captured in real-time at the moment of scraping
  • Channel metadata is extracted once per channel and applied to all shorts from that channel

Support

Additional Services

🤖 For AI Agents & LLM Apps

Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/youtube-shorts-scraper).

Purpose: Extract YouTube Shorts and channel metadata — per-Short engagement metrics, computed virality stats, music credits, optional transcripts, and full channel statistics — from channels, search queries, hashtag hubs, or direct Short URLs.

Minimal input:

{
"channels": ["rainbowicecream9780"],
"startUrls": [],
"searchQueries": [],
"hashtags": [],
"shortUrls": [],
"maxItems": 25,
"maxResultsShorts": 25,
"sortChannelShortsBy": "NEWEST",
"regionCode": "US",
"contentLanguage": "en",
"oldestPostDate": "",
"includeTranscript": false,
"language": "default",
"maxConcurrency": 10,
"maxRequestRetries": 15,
"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

Instead of channels, you can supply startUrls (channel links), searchQueries, hashtags, or direct shortUrls; at least one source field must be non-empty.

Output: one dataset row per Short. Fields include title, translatedTitle, type, id, url, thumbnailUrl, viewCount, date, likes, duration, commentsCount, commentsTurnedOff, engagementRate, viewsPerDay, daysSincePublished, music {song, artist, album}, channelName, channelUrl, channelUsername, channelId, channelDescription, channelJoinedDate, channelLocation, channelAvatarUrl, channelBannerUrl, numberOfSubscribers, channelTotalViews, channelTotalVideos, isChannelVerified, hashtags, text, subtitles, isAgeRestricted, isMonetized, isMembersOnly, isPaidContent, aboutChannelInfo, order, inputChannelUrl, fromYTUrl, input. Failed sources push an error item carrying error and note instead of a normal row.

Behaviors an agent should know:

  • At least one source is required: channels, startUrls, searchQueries, hashtags, or shortUrls.
  • channels takes plain channel names; a name that is not a live handle is resolved through the legacy URL shapes and then YouTube channel search, and an unmatched name yields a CHANNEL_NAME_NOT_RESOLVED error row instead of a look-alike channel. A block or a network failure during that resolution is reported as CHANNEL_PAGE_BLOCKED / CHANNEL_PAGE_FETCH_FAILED, never as an unmatched name.
  • Every entry of channels / startUrls produces either Shorts or an error row carrying the text you typed in input, so a run with one bad entry is distinguishable from a run that was one entry shorter.
  • maxRequestRetries sets the attempts per failed request (default 15); lower it to cap the traffic spent on dead or blocked sources.
  • Always set maxItems — it is the global cap across all sources (free accounts are capped at 30); maxResultsShorts further caps rows per channel, per search query, or per hashtag.
  • sortChannelShortsBy accepts NEWEST (default), POPULAR, or OLDEST; oldestPostDate filters by publish date using absolute (YYYY-MM-DD) or relative (7 days, 3 months) values.
  • includeTranscript adds a subtitles object (plain text, timed segments, SRT, WebVTT); regionCode (gl) and contentLanguage (hl) localize listings and metadata.
  • Unreachable channels/searches/hashtags push structured error items (rows with an error field) instead of failing the run — safe to filter in integrations.
  • Traffic routes through a built-in residential proxy at no extra cost; the proxy field is only an optional override.
  • Pay-per-event billing — see the Pricing tab on the actor page.

⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Google LLC, YouTube, or any of their subsidiaries. All trademarks mentioned are the property of their respective owners.

The scraper accesses only publicly available YouTube Shorts and channel pages — no authenticated endpoints, private or unlisted content, or data behind the YouTube login wall. Users are responsible for ensuring their use complies with YouTube's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organization.

SEO Keywords

youtube shorts scraper, scrape youtube shorts, youtube shorts API, youtube channel scraper, Apify youtube, short video scraper, youtube analytics scraper, video engagement data, youtube hashtag scraper, youtube search scraper, youtube transcript scraper, content creator analytics, influencer research data, social media intelligence, viral video tracking