YouTube Shorts Scraper — Views, Likes & Viral Score avatar

YouTube Shorts Scraper — Views, Likes & Viral Score

Pricing

from $20.00 / 1,000 short scrapeds

Go to Apify Store
YouTube Shorts Scraper — Views, Likes & Viral Score

YouTube Shorts Scraper — Views, Likes & Viral Score

Scrape YouTube Shorts by keyword, channel, or hashtag. Returns video URL, title, views, likes, comments, hashtags, and a viral score. MCP-ready. $0.02/result.

Pricing

from $20.00 / 1,000 short scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

51

Total users

13

Monthly active users

4 days ago

Last modified

Share

YouTube Shorts Scraper — Titles, Views, Hashtags, Transcripts & Viral Score

YouTube Shorts Scraper is an Apify Actor for public YouTube Shorts pages. It accepts a search keyword, a list of search keywords, channel Shorts tab URLs, hashtag URLs, or direct Short URLs. Each dataset record represents one scraped Short and includes the canonical URL, title, channel details, views, likes, comments, hashtags, audio metadata, engagement rate, viral score, and optional transcript data with timestamps. The outcome is a structured dataset you can review in Apify, export as JSON or CSV, or read through the Apify API. It is also usable through Apify MCP.

Best fit and connected workflows

This Actor fits workflows that begin with a Shorts discovery source and end with structured analysis.

Use it when you want to:

  • collect Shorts around a topic from a search keyword or keyword list,
  • review a creator's Shorts tab as part of creator research,
  • monitor a hashtag page for trend tracking,
  • enrich an existing Shorts URL list with engagement metrics,
  • add transcript fields for Shorts with captions when transcript enrichment is enabled.

A common workflow is to scrape Shorts here first, then pass returned video URLs or channel context into downstream analysis. For comment-level research, connect the output to YouTube Comments Scraper (with Replies) when you want public replies and discussion around a returned YouTube record.

Practical scenario

Maya, a content strategist, starts with a keyword list like "morning routine", "gym motivation", and "study tips". She runs the Actor with searchQueries and maxResults set for a focused batch. The dataset returns titles, channel names, view counts, like counts, comment counts, hashtags, engagement rate, viral score, and source URLs. Maya spots a Short with a high viral score and strong engagement rate, then opens the channel and uses the Short URL in her next briefing to review the format, hook, and caption style.

Input

Choose one or more input modes in the same run.

FieldTypePurpose
searchQuerystringSingle keyword or phrase for a quick start search.
searchQueriesarray of stringsMultiple search keywords, each executed separately.
channelUrlsarray of stringsYouTube channel /shorts tab URLs.
hashtagUrlsarray of stringsYouTube hashtag page URLs.
startUrlsarray of objectsDirect Short URLs to enrich with metadata.
maxResultsintegerMaximum Shorts per keyword, channel, or hashtag source.
maxConcurrencyintegerNumber of browser pages open at once.
proxyConfigurationobjectProxy settings for scraping and transcript fetches.
includeTranscriptsbooleanEnables transcript extraction for Shorts with captions.
transcriptLanguagestringPreferred transcript language code.

Focused example:

{
"searchQueries": [
"morning routine",
"gym motivation"
],
"maxResults": 25,
"maxConcurrency": 3,
"includeTranscripts": true,
"transcriptLanguage": "en",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": [
"RESIDENTIAL"
]
}
}

Output

Each dataset item is one scraped Short.

FieldTypePurpose
video_idstringYouTube Short video ID.
titlestringShort title.
descriptionstring or nullDescription text if present.
urlstringCanonical Short URL.
channel_namestring or nullChannel display name.
channel_idstring or nullCreator channel ID.
channel_urlstring or nullCreator channel URL.
channel_subscribersnumber or nullSubscriber count at scrape time.
view_countnumber or nullView count at scrape time.
like_countnumber or nullLike count at scrape time.
comment_countnumber or nullComment count at scrape time.
duration_secondsnumber or nullShort duration in seconds.
published_atstring or nullUpload timestamp in ISO 8601 UTC.
hashtagsarray of stringsHashtags extracted from title and description.
audio_titlestring or nullMusic or audio track name.
audio_authorstring or nullAudio creator or artist.
thumbnail_urlstring or nullThumbnail URL.
engagement_ratenumber or nullComputed as (likes + comments) / views.
viral_scorenumber or nullComputed as views / subscribers.
transcript_textstring or nullPlain-text transcript when enabled and available.
transcript_segmentsarray or nullTimestamped transcript segments.
transcript_languagestring or nullTranscript language code.
is_auto_generatedboolean or nullWhether the transcript came from ASR.
transcript_word_countnumber or nullTranscript word count.
scraped_atstringScrape timestamp in ISO 8601 UTC.
source_urlstringDiscovery URL that led to the Short.

Illustrative record:

{
"video_id": "dQw4w9WgXcQ",
"title": "5 Morning Habits That Changed My Life #shorts",
"url": "https://www.youtube.com/shorts/dQw4w9WgXcQ",
"channel_name": "HealthyHabitsDaily",
"view_count": 4800000,
"like_count": 182000,
"comment_count": 3241,
"hashtags": [
"#morningroutine",
"#productivity"
],
"audio_title": "Calm Morning Beats",
"audio_author": "LoFi Studio",
"engagement_rate": 0.0384,
"viral_score": 3.87,
"transcript_language": "en",
"is_auto_generated": true,
"transcript_word_count": 87,
"scraped_at": "2026-04-09T12:00:00.000Z",
"source_url": "https://www.youtube.com/results?search_query=morning+routine&sp=EgQKAUgB"
}

How it works

This Actor scrapes public YouTube Shorts from search results, Shorts tab URLs, hashtag pages, or direct Short URLs. The implementation uses browser-based navigation and supports optional transcript enrichment. The live contract also shows a reliability update that wraps the top-level crawler run in try/catch so a fatal crawler issue can end the run with a terminal warning instead of a hard stop. The dataset schema stores one record per Short, and the output schema exposes the dataset in JSON or CSV form through Apify links.

Pricing and Apify platform usage

This Actor uses Pay per event pricing on Apify, plus standard Apify platform usage. The live Pricing tab is the source of truth for current pricing details.

Charged events from the live contract:

  • Actor Start: charged once per run based on actor memory
  • Short Scraped: charged per successfully scraped Short
  • Transcript Extracted: charged only when a Short transcript is successfully fetched and includeTranscripts is enabled

Example: if a run returns twenty Shorts and transcripts are successfully fetched for eight of them, the pricing reflects twenty Short Scraped events, eight Transcript Extracted events, and one Actor Start event. Check the live Pricing tab in the Apify Console before running a job for the current rates.

Use with AI agents (MCP)

This Actor is available through Apify MCP as a tool for collecting structured Shorts data for AI workflows.

Tool description: scrape public YouTube Shorts by keyword, channel Shorts tab, hashtag page, or direct Short URL, and return structured fields for downstream analysis, retrieval, or enrichment.

Exact Actor identity: khadinakbar/youtube-shorts-scraper

Scrape YouTube Shorts for the keyword "morning routine". Return up to 20 results, include transcripts when captions are available, and provide the dataset rows with titles, channels, views, hashtags, viral score, and source URLs.

Output interpretation:

  • viral_score compares a Short's views to the channel's subscriber count.
  • engagement_rate combines likes and comments relative to views.
  • transcript_text and transcript_segments appear only when transcript enrichment is enabled and a transcript is available.
  • source_url shows which search, channel, or hashtag page led to the item.

Provenance:

  • Each record comes from the dataset produced by this Actor.
  • scraped_at records when the item was collected.
  • url points to the canonical YouTube Shorts URL.

Scope, pagination, and cost guidance:

  • searchQueries, channelUrls, and hashtagUrls respect maxResults per input source.
  • Direct Short URLs are fetched individually and returned as fully scraped records.
  • The primary event is charged per Short scraped.
  • Transcript extraction adds a separate event only for successful transcript fetches.

Apify API example

JavaScript example with APIFY_TOKEN and dataset readback:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const run = await client.actor('khadinakbar/youtube-shorts-scraper').call({
searchQueries: ['morning routine'],
maxResults: 10,
includeTranscripts: false,
});
const datasetId = run.defaultDatasetId;
const { items } = await client.dataset(datasetId).listItems();
console.log(items);

Best results and outcome guidance

Start with a narrow keyword, a single channel Shorts tab, or a specific hashtag when you want a tighter dataset. Use searchQueries for batch research, and use startUrls when you already have specific Shorts to enrich. Keep maxResults aligned with the size of the source you want to review, and use lower maxConcurrency values for steadier browser usage. When transcripts matter, enable includeTranscripts and set transcriptLanguage to the preferred ISO 639-1 code. For transcript-heavy workflows, residential proxies are part of the live input contract guidance.

Design note

I found that the dataset contract includes both engagement_rate and viral_score as computed output fields, which makes the Actor useful for ranking Shorts without extra post-processing.

FAQ

When should I use a search keyword versus a channel URL?

Use a search keyword or keyword list when you want topic discovery across many creators. Use a channel /shorts URL when you want the Shorts catalog for one creator.

When should I use a hashtag URL?

Use a hashtag URL when the workflow starts from a trend, niche label, or campaign tag and you want Shorts that are grouped around that tag.

When should I use direct Short URLs?

Use direct Short URLs when you already have a list of Shorts and want to enrich them with views, likes, comments, hashtags, audio data, or transcripts.

Which output fields are useful for ranking?

view_count, engagement_rate, and viral_score are the main ranking fields. hashtags, audio_title, and audio_author help with trend analysis.

How are transcripts handled?

When includeTranscripts is enabled, the Actor returns transcript fields for Shorts where captions are available. The dataset includes both plain text and timestamped segments.

How does this connect to other YouTube workflows?

A common next step is to pass the returned Short URLs or creator context into YouTube Comments Scraper (with Replies) for comment analysis.

Responsible use

Use this Actor for publicly accessible YouTube Shorts and for lawful data collection that fits your compliance requirements and the YouTube terms that apply to your use case. Review access, retention, and downstream processing practices before combining the dataset with other personal or behavioral data.