Youtube Shorts Scraper pro avatar
Youtube Shorts Scraper pro

Pricing

$18.00/month + usage

Go to Apify Store
Youtube Shorts Scraper pro

Youtube Shorts Scraper pro

Developed by

Alpha Scraper

Alpha Scraper

Maintained by Community

🎬 Extract YouTube Shorts Data! Easily grab data from one or multiple YouTube channels. Get: πŸ”— Video URL Captions / Transcript Timestamp / Upload Date πŸ‘ Likes & πŸ‘Ž Dislikes πŸ‘€ Views & Comments Count Basic Channel Info …and more! πŸš€ This alternative YouTube API has no limits or quotas!

0.0 (0)

Pricing

$18.00/month + usage

0

1

1

Last modified

3 days ago

Youtube Shorts Scraper (CHEAK IT FIRST) 🎯

Extract detailed metadata from YouTube Shorts (single videos, share links, or playlist entries).
This Actor is built with the Apify Python SDK. It reads input via Actor.get_input() and writes results with Actor.push_data() (and saves an aggregated OUTPUT record to the default Key-Value Store). :contentReference[oaicite:1]{index=1}


Highlights βœ…

  • Works with YouTube Shorts URLs and share links (also handles playlist entries).
  • Extracts full metadata returned enriches with:
    • Hashtags (from title & description),
    • A sample of available video formats (formatsSample),
    • Live broadcast details,
    • Recording details,
    • Processing details,
    • A small transcript sample a list of available subtitle languages.
    • like,comments count. *published date. *others.
  • Uses Apify Proxy if configured (recommended: RESIDENTIAL proxies for reliability). :contentReference[oaicite:2]{index=2}

Input πŸ”§

The actor accepts JSON input. startUrls is required.

FieldTypeRequiredDefaultDescription
startUrlsarray of {"url":string} or stringβœ…β€”One or more YouTube video or share URLs. You can also pass playlist URLs β€” the actor will extract entries.
proxyConfigurationobject❌{} / useApifyProxy:false (prefill)Apify proxy settings or your own HTTP proxies. If present, the actor calls Actor.create_proxy_configuration() to obtain a proxy URL. :contentReference[oaicite:5]{index=5}

Example input

{
"startUrls": [
{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" }
],
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
}
}

Output πŸ“€

Each processed video produces a single JSON object pushed to the dataset and saved in an aggregated OUTPUT list inside the default key-value store under the OUTPUT key.

Example output (sample)

{
"title": "Thankyou for loving #shaky guysss❀️😍 #ishamalviya #shaky #trending #grateful",
"type": "shorts",
"id": "1T31NY-RNJ8",
"vedio url": "https://www.youtube.com/watch?v=1T31NY-RNJ8",
"thumbnail Url": "https://i.ytimg.com/vi_webp/1T31NY-RNJ8/maxresdefault.webp",
"view Count": "11.1m",
"upload date": "2025-06-15",
"likes count": "414.9k",
"duration": 40,
"Category": "People & Blogs",
"Privacy Status": "public",
"Region Restriction": "Not restricted",
"Live Broadcast Details": {
"live_status": "not_live",
"is_live": false
},
"Recording Details": {
"location": [],
"release_date": [],
"timestamp": 1750008228
},
"Processing Details": {
"status": "processed",
"playable_in_embed": true
},
"Description": "",
"commentsCount": 1019,
"channelName": "IshaMalviyaVlogs",
"channelUrl": "https://www.youtube.com/channel/UCUg96ekzjuX_VBgTbp0m_mA",
"channelId": "UCUg96ekzjuX_VBgTbp0m_mA",
"channelUsername": [],
"channelAvatarUrl": [],
"inputChannelUrl": "https://www.youtube.com/channel/UCUg96ekzjuX_VBgTbp0m_mA",
"channelDescriptionLinks": [],
"hashtags": [],
"fromYTUrl": "https://www.youtube.com/watch?v=1T31NY-RNJ8",
"tags": [],
"durationAlt": "40s",
"formatsSample": [
{
"format_id": "sb2",
"format_note": "storyboard",
"ext": "mhtml",
"resolution": "25x45",
"fps": 1.025,
"vcodec": "none",
"acodec": "none",
"protocol": "mhtml"
},
{
"format_id": "sb3",
"format_note": "storyboard",
"ext": "mhtml",
"resolution": "48x27",
"fps": 2.5,
"vcodec": "none",
"acodec": "none",
"protocol": "mhtml"
}
],
"transcriptSample": [],
"availableSubtitleLanguages": [
"ab",
"aa",
"ar",
"hy",
"as",
"ay",
"az",
"bn",
"ba",
"eu",
"be",
"bho",
"bs",
"br",
"bg",
"my",
"ca",
"ceb",
"zh-Hans",
"zh-Hant",
"co",
"hr",
"cs",
"da",
"dv",
"nl",
"dz",
"en",
"et",
"ee",
"fo",
"fj",
"fil",
"fi",
"fr",
"gaa",
"gl",
"lg",
"ka",
"de",
"el",
"gn",
"gu",
"ht",
"ha",
"haw",
"iw",
"hi-orig",
"hi",
"hmn",
"hu",
"is",
"ig",
"id",
"iu",
"ga",
"it",
"ja",
"jv",
"kl",
"kn",
"kk",
"kha",
"km",
"rw",
"ko",
"kri",
"ku",
"ky",
"lo",
"la",
"lv",
"ln",
"lt",
"lua",
"luo",
"lb",
"mk",
"mg",
"ms",
"ml",
"mt",
"gv",
"mi",
"mr",
"mn",
"mfe",
"ne",
"new",
"nso",
"no",
"ny",
"oc",
"or",
"om",
"os",
"pam",
"ps",
"fa",
"pl",
"pt",
"pt-PT",
"pa",
"qu",
"ro",
"rn",
"ru",
"sm",
"sg",
"sa",
"gd",
"sr",
"crs",
"sn",
"sd",
"si",
"sk",
"sl",
"so",
"st",
"es",
"su",
"sw",
"ss",
"sv",
"tg",
"ta",
"tt",
"te",
"th",
"bo",
"ti",
"to",
"ts",
"tn",
"tum",
"tr",
"tk",
"uk",
"ur",
"ug",
"uz",
"ve",
"vi",
"war",
"cy",
"fy",
"wo",
"xh",
"yi",
"yo",
"zu"
]
}

Output field reference (detailed)

The actor builds its result metadata plus a few computed/enriched fields.

FieldTypeDescription
titlestringVideo title returned .
typestring"shorts" or "video" β€” inferred from URL or duration.
idstringVideo identifier (YouTube ID).
vedio urlstring(note spelling) Web URL for the video (emitted exactly as vedio url).
thumbnail UrlstringURL to the chosen thumbnail (emitted exactly as thumbnail Url).
view Countstring | nullHuman-shortened view count (e.g., 1.5b).
upload datestring | nullISO date YYYY-MM-DD (derived from upload_date or timestamp).
likes countstring | nullHuman-shortened like count (e.g., 12m).
durationinteger | nullDuration in seconds.
durationAltstring | nullHuman-readable duration (e.g., 3.6 minutes or 45s).
Categorystring | nullFirst category from yt-dlp categories.
Privacy Statusstring | nullMapped privacy value from the availability field.
Licensestring | nullLicense label from metadata (if any).
Region Restrictionstring"Not restricted" or the availability value.
Live Broadcast Detailsobject{live_status, is_live, was_live, concurrent_view_count}.
Recording Detailsobject{location, release_date, timestamp}. release_date normalized.
Processing Detailsobject{status, playable_in_embed} β€” status is "processed" or "processing".
Descriptionstring | nullVideo description.
commentsCountinteger | nullComment count (raw numeric).
channelNamestring | nullChannel display name.
channelUrlstring | nullChannel URL.
channelIdstring | nullChannel ID.
channelUsernamestring | nullUsername (currently None in default output).
channelAvatarUrlstring | nullAvatar image URL (currently None in default output).
inputChannelUrlstring | nullChannel URL captured from input/enrichment.
channelDescriptionLinksarrayList of links found in the channel description (currently empty list in default output).
hashtagsarrayExtracted hashtags from title & description (lowercased).
fromYTUrlstringSame as vedio url (source URL).
tagsarrayyt-dlp tags array.
formatsSamplearraySample of formats with fields (format_id, format_note, ext, resolution, fps, vcodec, acodec, tbr_kbps, filesize, protocol).
transcriptSamplearrayUp to 25 transcript items: {start, duration, text} (requires youtube_transcript_api and available captions).
availableSubtitleLanguagesarrayUnion of subtitle/automatic captions keys + transcript API languages.