โ–ถ๏ธ YouTube Scraper avatar

โ–ถ๏ธ YouTube Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
โ–ถ๏ธ YouTube Scraper

โ–ถ๏ธ YouTube Scraper

Scrape YouTube videos, Shorts, channels, playlists, comments, and search results, no API key or quota limit. Extract subtitles, transcripts, channel emails, and a computed virality score for creator research and content analysis.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

Data Minds

Data Minds

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

19 hours ago

Last modified

Categories

Share

YouTube Scraper is an Apify Actor that extracts YouTube video, Shorts and live-stream data from links or search terms: views, likes, comments, subtitles, channel details and emails listed in channel descriptions. Paste video, channel, playlist or hashtag links and export JSON, CSV or Excel with an engagement rate and outlier score, no YouTube API key needed. Pay per result, from $2.00 per 1,000 results on the Gold, Platinum and Diamond plans. โ–ถ Try it free

What can YouTube Scraper do?

  • ๐ŸŽฏ One YouTube video scraper for every source - videos, Shorts, streams, channels, playlists, hashtags and search results in a single run.
  • ๐Ÿ“Š Built-in insights - engagement rate on every detailed result and a channel-relative outlier score, useful for YouTube Shorts analytics and YouTube Shorts research.
  • ๐Ÿ“ง YouTube channel email extractor - About-panel details and emails found in the channel description.
  • ๐Ÿ’ฌ Comments and subtitles - optional top comments and subtitle text per video, in the language and format you choose.
  • ๐Ÿ”Ž YouTube search scraper filters - sort order, upload date, content type, length and feature filters such as HD, 4K and Creative Commons.
  • ๐Ÿ” Monitor mode - skip videos that an earlier run of this Actor already collected.
  • โšก Live results - each result is written to the dataset as soon as it is collected.
  • ๐Ÿ”Œ Export and integrations - JSON, CSV, Excel, API, schedules and webhooks through Apify.

What data can I extract from YouTube?

FieldDescription
๐ŸŽฌ id, url, typeVideo ID, watch link and kind of result: video, short or stream.
๐Ÿ“ title, description, category, keywordsVideo title, description text, category and the tags set by the uploader.
โฑ duration, durationTextLength in seconds (full results) or as shown in the list (playlist results).
๐Ÿ“… datePublish date of the video, or the relative time shown in a playlist.
๐Ÿ‘ viewCount, likes, commentsCountViews, likes and comment count. Empty when YouTube does not show them.
๐Ÿšซ commentsTurnedOffWhether comments are disabled for the video.
๐Ÿ–ผ thumbnailUrlLink to the video thumbnail.
๐Ÿ”ด isLiveContent, isUpcomingFlags for live and upcoming streams.
๐Ÿ“บ channelName, channelId, channelUrlThe channel that published the video.
๐Ÿ“Š engagementRate(likes + comments) / views as a percentage, when the Outlier score option is on.
๐Ÿš€ outlierScoreObject with ratio, channelMedianViews and label (viral_outlier, above_average, average or below_average). Channel URLs only.
๐Ÿข channelDescription, channelLocation, channelJoinedDateChannel About text, country and join date (channel URLs only).
๐Ÿ‘ฅ numberOfSubscribers, channelTotalViews, channelTotalVideosChannel totals from the About panel (channel URLs only).
๐Ÿ“ง channelEmails, channelDescriptionLinksEmails found in the channel description and the external links listed on the channel (channel URLs only).
๐Ÿ’ฌ commentsOptional list of top comments: commentId, videoId, text, publishedTimeText, authorName, authorChannelId, authorIsChannelOwner, authorIsVerified, likesCountText, replyCount, replyLevel.
๐Ÿ“„ subtitlesOptional object: available, language, kind, format and content (or a reason when none is available).
๐Ÿ“ƒ fromPlaylist, playlistTitlePlaylist ID and title for results read from a playlist link.
๐Ÿท fromHashtagHashtag the video was found under.
โš  url, input, error, noteError rows for inputs that could not be processed.

Results are limited to what is publicly visible on YouTube. Private videos, hidden counts and disabled comments come back empty.

What can you do with the data from YouTube?

๐ŸŽฏ YouTube competitor analysis

  1. Add rival channel links to urls and set maxResults to 50.
  2. Set sortVideosBy to POPULAR and keep computeOutlierScore on.
  3. Export the dataset and sort by outlierScore to find the videos that beat the channel's usual views.

๐Ÿค YouTube influencer research and channel email finder

  1. Paste creator channel links into urls and keep extractChannelDetails on for YouTube channel statistics export and bulk YouTube video metadata.
  2. Run the Actor and open the Channel & Emails view.
  3. Filter by numberOfSubscribers and use channelEmails for outreach lists.

๐Ÿ”Ž YouTube keyword research and trend research

  1. Add terms to searchQueries and choose sortingOrder such as views.
  2. Narrow with dateFilter (for example month) and lengthFilter.
  3. Review title, keywords and viewCount to see which topics and tags perform.

๐Ÿ” Monitor new YouTube uploads (YouTube upload tracking)

  1. Add channel links and turn on monitorMode.
  2. Schedule the Actor daily or weekly in Apify.
  3. Each run reports only videos not seen in earlier runs.

๐Ÿ’ฌ Comments and subtitles for analysis

  1. Turn on extractComments and set maxComments.
  2. Turn on downloadSubtitles and pick subtitlesLanguage.
  3. Export the text for YouTube engagement analysis, sentiment work or content repurposing.

How do I use YouTube Scraper?

  1. Open YouTube Scraper on Apify and click Try for free.
  2. Paste video, Shorts, channel, playlist, hashtag or search-result links into YouTube URLs, or type terms into Search queries.
  3. Set Max videos per source, and add Max Shorts per source or Max streams per source if you want them.
  4. Pick search filters, comments, subtitles or monitor mode if you need them.
  5. Click Start and wait for the run to finish.
  6. Open the Dataset tab and export as JSON, CSV or Excel, or read the data through the API.

How much does it cost to scrape YouTube?

YouTube Scraper uses pay-per-event pricing: you pay for each result saved to the dataset, and Apify platform usage is billed in addition. The price per result depends on your Apify plan.

PlanPrice per resultPer 1,000 results
๐Ÿ†“ Free$0.003$3.00
๐Ÿฅ‰ Bronze$0.0027$2.70
๐Ÿฅˆ Silver$0.0024$2.40
๐Ÿฅ‡ Gold, Platinum and Diamond$0.002$2.00

Every run also has an Actor start event of $0.00005 per GB of memory, with a minimum of one. The default memory is 4 GB (4,096 MB), so one start is 4 events = $0.0002. Inputs that cannot be processed are saved as error rows and are not charged as results.

Worked example: 500 results on the Free plan cost 500 x $0.003 = $1.50, plus the $0.0002 start event. 10,000 results on the Gold plan cost 10,000 x $0.002 = $20.00, plus the start event.

Is scraping YouTube free?

The Actor is not free of charge: each saved result is billed at your plan's price. A small test is cheap, though. The default of 10 videos per source costs 10 x $0.003 = $0.03 on the Free plan, plus the $0.0002 start event and platform usage.

How much does YouTube Scraper cost per 1,000 results?

1,000 results cost $3.00 on the Free plan, $2.70 on Bronze, $2.40 on Silver and $2.00 on Gold, Platinum and Diamond. The $0.0002 start event and Apify platform usage are added to each run. You can also set a maximum spend per run, and the Actor stops cleanly when it is reached.

Input

Give YouTube Scraper links, search terms or both. Only urls is marked required in the input form, and everything else has a default. You can mix source types in one run.

Scrape by URL

Paste any mix of video, Shorts, channel (/@handle, /channel/ or /c/), playlist, hashtag and search-result links into urls. Channel links read the Videos, Shorts and Live tabs according to your limits. Video, playlist and hashtag links return the videos they point to.

Scrape by search query

Add plain terms to searchQueries to scrape YouTube search results in bulk. Each term is searched separately, as if typed into the YouTube search box, and the search filters apply.

Input fields

FieldTypeRequiredDescriptionDefault / example
urlsarrayYesVideo, Shorts, channel, playlist, hashtag or search-result links.[{"url": "https://www.youtube.com/@YouTube"}]
searchQueriesarrayNoSearch terms, one per line.[]
maxResultsintegerNoRegular videos per search term, channel or playlist (0 to 5,000).10
maxResultsShortsintegerNoShorts per search term or channel. 0 skips Shorts (0 to 5,000).0
maxResultStreamsintegerNoLive or upcoming streams per search term or channel. 0 skips streams (0 to 5,000).0
sortingOrderstringNoSearch sort: relevance, rating, date or views. Blank skips the filter.""
dateFilterstringNoUpload window: hour, today, week, month or year.""
videoTypestringNovideo or movie.""
lengthFilterstringNounder4, between420 or plus20 (minutes).""
isHD, is4K, is360, isHDR, is3D, isVR180booleanNoOnly include videos with that quality or format.false
hasSubtitles, hasCC, hasLocationbooleanNoOnly include videos with subtitles, a Creative Commons license or a location tag.false
isLive, isBoughtbooleanNoOnly include videos that are live now, or purchased content.false
sortVideosBystringNoChannel video order: NEWEST, POPULAR or OLDEST.NEWEST
extractCommentsbooleanNoCollect top comments for every video.false
maxCommentsintegerNoComments per video (0 to 5,000).20
downloadSubtitlesbooleanNoCollect the subtitle track when available.false
subtitlesLanguagestringNoLanguage code such as en, or any.en
subtitlesFormatstringNosrt, vtt, plaintext or json3.srt
preferAutoGeneratedSubtitlesbooleanNoPrefer auto-generated captions over uploaded ones.false
computeOutlierScorebooleanNoAdd engagementRate and, on channel runs, outlierScore.true
extractChannelDetailsbooleanNoFor channel URLs, add About-panel details and emails.true
monitorModebooleanNoSkip videos collected by earlier runs of this Actor on your account.false
proxyConfigurationobjectNoOptional connection settings. Leave the default unless you need your own.{"useApifyProxy": false}
browserFallbackbooleanNoAllow an extra retry step for requests that keep failing.true
maxConcurrencyintegerNoSources processed at the same time (1 to 20).5
maxRequestRetriesintegerNoAttempts per failed request (1 to 10).3
maxScannedintegerNoSearch-result rows examined per query before stopping (100 to 200,000).20000

Example input:

{
"urls": [
{ "url": "https://www.youtube.com/@YouTube" }
],
"searchQueries": ["react tutorial"],
"maxResults": 10,
"maxResultsShorts": 5,
"maxResultStreams": 0,
"sortingOrder": "views",
"dateFilter": "month",
"extractComments": true,
"maxComments": 20,
"downloadSubtitles": true,
"subtitlesLanguage": "en",
"subtitlesFormat": "srt",
"computeOutlierScore": true,
"extractChannelDetails": true,
"monitorMode": false
}

Output

YouTube Scraper writes every result to the default Apify dataset as it is collected. Export it as JSON, CSV, Excel, XML or HTML from the Dataset tab or through the API. The dataset has table views for Overview, Insights, Channel & Emails, Comments, Media, Source and Errors. A run summary is saved to the key-value store under the key run-summary.

Video result

{
"id": "abc123example",
"url": "https://www.example.com/watch?v=abc123example",
"type": "video",
"title": "Example video title",
"description": "Example description text.",
"duration": 612,
"channelName": "Example Channel",
"channelId": "UCexample0000000000000000",
"channelUrl": "https://www.example.com/@examplechannel",
"date": "2026-01-15",
"viewCount": 125000,
"likes": 4800,
"commentsCount": 320,
"commentsTurnedOff": false,
"category": "Education",
"thumbnailUrl": "https://www.example.com/thumbnail.jpg",
"isLiveContent": false,
"isUpcoming": false,
"keywords": ["example", "tutorial"],
"outlierScore": { "ratio": 1.8, "channelMedianViews": 69000, "label": "above_average" },
"engagementRate": 4.096,
"channelDescription": "Example channel description. Contact: contact@example.com",
"channelLocation": "United States",
"channelJoinedDate": "Joined Jan 1, 2015",
"numberOfSubscribers": 250000,
"channelTotalViews": 90000000,
"channelTotalVideos": 410,
"channelDescriptionLinks": [
{ "title": "Website", "displayText": "example.com", "url": "https://www.example.com" }
],
"channelEmails": ["contact@example.com"],
"comments": [
{
"commentId": "example-comment-1",
"videoId": "abc123example",
"text": "Example comment text.",
"publishedTimeText": "2 days ago",
"authorName": "@example-user",
"authorChannelId": "UCexample1111111111111111",
"authorIsChannelOwner": false,
"authorIsVerified": false,
"likesCountText": "12",
"replyCount": 1,
"replyLevel": 0
}
],
"subtitles": {
"available": true,
"language": "en",
"kind": "asr",
"format": "srt",
"content": "1\n00:00:00,000 --> 00:00:03,000\nExample subtitle line."
}
}

Playlist result

Videos read from a playlist link are saved as lighter rows.

{
"id": "abc123example",
"url": "https://www.example.com/watch?v=abc123example",
"type": "video",
"title": "Example playlist video",
"durationText": "10:12",
"date": "1 year ago",
"viewCount": 125000,
"fromPlaylist": "PLexample000000",
"playlistTitle": "Example playlist"
}

Error row

{
"url": "https://www.example.com/watch?v=missing",
"input": "missing",
"error": "VIDEO_UNAVAILABLE",
"note": "Video is not available (deleted, region-blocked, etc.)"
}

Notes and limitations

  • outlierScore and the channel fields (channelDescription, channelEmails and similar) appear only for results found through channel links.
  • engagementRate is calculated from the visible likes and comment count; hidden counts can make it lower or empty.
  • Search results and hashtag pages return what YouTube lists at that moment, so counts can differ from what you see in a browser.
  • Playlist results are lighter rows and have no likes, comments, subtitles or channel fields.
  • The vtt subtitle option currently returns the same timed-text layout as srt.
  • The run summary holds totals and counts such as totalResults, videos, shorts, streams, errors, sources, resultsWithChannelEmails, resultsWithComments, resultsWithSubtitles and durationSeconds.

FAQ

YouTube Scraper collects only publicly visible data. Rules such as GDPR, CCPA and the site's terms can still apply, especially to personal data like names and emails. This is not legal advice, so read the Apify guide to web scraping legality and consult a lawyer if unsure.

Do I need a YouTube account, cookies or an API key?

No. You can scrape YouTube without an API key: the input form has no field for a login, cookies or a YouTube Data API key, only links or search terms. That makes YouTube Scraper a practical YouTube Data API alternative when you want to avoid keys and daily quota units. You still need an Apify account to run it.

How many results can I get per run?

Each limit field accepts up to 5,000 per source: maxResults for videos, maxResultsShorts for Shorts and maxResultStreams for streams. A source is one search term, channel or playlist. To collect more, add more sources to urls or searchQueries. The default is 10 videos per source, which suits a quick test.

Can I scrape YouTube comments and subtitles?

Yes. Turn on extractComments to add top comments for each video, up to maxComments, or downloadSubtitles to download YouTube subtitles in bulk in your chosen language and format. Both are optional and add extra work per video. Videos with disabled comments or no captions return an empty list or an available: false subtitle object.

How is the outlier score calculated?

For channel links, the Actor compares each video's views with the median views of the channel videos it read in that run. The result is a ratio, the channelMedianViews and a label: viral_outlier at 3 or above, above_average at 1.5, average at 0.5 and below_average below that.

Can I export YouTube data to CSV or Excel?

Yes. Every run stores results in an Apify dataset, and you can download it as JSON, CSV, Excel, XML or HTML from the Dataset tab. The table views help you check columns first. You can also pull the data through the API, for example to extract YouTube comments to a spreadsheet or Google Sheets.

Can I schedule runs or monitor new YouTube uploads?

Yes. Apify schedules run YouTube Scraper daily, weekly or on any interval, and webhooks and integrations can pass results on to other tools. Turn on monitorMode and each run skips videos that earlier runs on your account already collected, so a scheduled run reports only new uploads and you pay only for new results.

Can I use YouTube Scraper with the Apify API or an MCP server?

Yes. You can start runs and fetch datasets through the Apify API, call the Actor from an MCP-compatible client, and use Apify's JavaScript and Python clients. The API tab on this page generates ready-to-use code for your input. See the Apify API documentation for authentication and endpoints.

Why am I getting fewer results than expected?

Common causes: the maxResults, maxResultsShorts or maxResultStreams limit is low or 0, search filters are too narrow, monitorMode skipped videos from earlier runs, or YouTube lists fewer videos for that source. Check the Errors view for rows with an error code, widen your filters and run again.

YouTube Scraper not working?

First open the Errors view in the dataset and read the note of each error row, then check that the links are public and typed correctly. If a run still fails or looks wrong, open the Issues tab on this Actor page with your run link and input, and we will look into it.

ActorUse it to
๐Ÿ’ฌ YouTube Comments ScraperExtract YouTube video comments and replies with author, text, likes and publish date.
๐Ÿ“ฑ YouTube Shorts ScraperExtract YouTube Shorts from any channel with views, likes, comments, hashtags and channel details.
โšก Fast YouTube Channel ScraperScrape a channel's Videos, Shorts and Live tabs with exact counts, tags and transcripts.
๐ŸŽฌ YouTube Transcript ScraperExtract YouTube transcripts, subtitles and captions in bulk.

Support and disclaimer

Found a bug or need a feature? Open an issue in the Issues tab. For custom solutions, integrations or questions, email hello.dataminds@gmail.com. YouTube Scraper is independent and not affiliated with or endorsed by YouTube or Google. Trademarks belong to their owners. It collects publicly available data only, and you are responsible for complying with applicable laws and the site's terms.

Last updated: 2026-10-17