YouTube Search Scraper - Videos, Shorts & Channels avatar

YouTube Search Scraper - Videos, Shorts & Channels

Pricing

from $0.30 / 1,000 result scrapeds

Go to Apify Store
YouTube Search Scraper - Videos, Shorts & Channels

YouTube Search Scraper - Videos, Shorts & Channels

Scrape YouTube search results by keyword, hashtag, channel or search URL: videos, Shorts, channels, playlists and movies with exact views, likes, publish dates, tags and channel stats. Every YouTube filter, exact date ranges and deep search. No login, no API key.

Pricing

from $0.30 / 1,000 result scrapeds

Rating

0.0

(0)

Developer

Eimantas V

Eimantas V

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

2

Monthly active users

10 days ago

Last modified

Categories

Share

YouTube Search Scraper turns YouTube search results into data: videos, Shorts, channels, playlists and movies for any keyword, with exact views, likes, publish dates, tags, chapters and channel subscribers. Enter search terms, or paste YouTube search links, hashtags, playlists or a search inside a channel. No login, no API key, no browser, from $0.30 per 1,000 results.

{
"type": "video",
"id": "YrVRx2c72ig",
"url": "https://www.youtube.com/watch?v=YrVRx2c72ig",
"title": "Python Web Scraping Tutorial: Complete Guide 2026",
"channelName": "Oxylabs",
"channelHandle": "@oxylabs",
"channelSubscriberCount": 14800,
"viewCount": 8247,
"likeCount": 555,
"commentCount": 3,
"publishedAt": "2026-02-20T17:01:02.000Z",
"durationSeconds": 481,
"position": 7,
"input": "web scraping tutorial",
"keywords": ["web scraping in python", "python web scraping", "web scraping python", "oxylabs"],
"category": "Science & Technology",
"hashtags": ["#WebScraping", "#Python", "#BeautifulSoup"],
"chapters": [{ "title": "Intro", "startSeconds": 0 }, { "title": "Environment & tools setup", "startSeconds": 35 }],
"viewsPerDay": 37,
"likesPerThousandViews": 67.3
}

Measured on Apify: 100 videos with full details in 10 seconds; 150 results for three search terms in 24 seconds.

What does YouTube Search Scraper do?

It runs YouTube's own search, the way the search bar and its Filters menu do, and turns every result into a row, in YouTube's order. Then it checks YouTube's work: results that slip through a filter, repeats across pages and anything outside your own filters are dropped before you pay for them.

  • Every YouTube filter. Type (videos, Shorts, channels, playlists, movies), upload date, length, live, 4K, HD, subtitles, Creative Commons, 360°, VR180, 3D, HDR and location, plus YouTube's "last hour" and older length options that still work. Hashtag, channel-search and playlist feeds take no YouTube filters; upload date and length are applied to their rows by the Actor.
  • Filters YouTube does not have. Exact date ranges, view and length ranges, excluded words (YouTube ignores "-word"), excluded channels, minimum subscribers and a cap per channel.
  • Sorts that work. YouTube removed sorting by upload date. This Actor sorts newest first and by exact views itself.
  • More than YouTube shows. YouTube ends every search after roughly 200-500 results. Deep search repeats a search in date windows to go further: 3,000 unique videos for one keyword in our test.
  • Complete rows. Exact views, likes, publish date, tags, category, full description with links, hashtags, chapters and the channel's subscribers, on every video and Short. Optional exact comment counts and channel details (country, total views, joined date, links, business-email flag).
  • More ways in. Hashtag feeds, playlists, a search inside one channel, and single video links, in the same run.
  • Only pay for results. Repeats within a search, filtered-out results and searches with no results are never charged. Turn on Remove duplicates across searches to pay once per result across search terms.
  • Built for automation. Run it on a schedule, call it from the API, or connect it to Make, Zapier, n8n, Google Sheets or an AI agent through Apify's MCP server.

Why it is fast and cheap

The Actor calls the same internal JSON endpoints youtube.com's own pages use. One request returns a page of about 20 results (25-50 KB); the details for a video are two small requests (its player data and its watch-page data). There is no browser and no HTML to render, so a run needs little memory and no proxy, and the savings are in the price.

What data can you extract from YouTube?

FieldExampleWhat it is
typevideovideo, short, channel, playlist (also mixes, courses, albums), movie or post
title, url, idPython Full Course for BeginnersThe result itself, with a clean link
viewCount, likeCount, commentCount49216902, 1293847, 41862Exact views and likes; comments rounded by YouTube unless you ask for exact
publishedAt2019-02-18T15:00:08.000ZExact publish time (see publishedAtPrecision)
durationSeconds22447Length, also for Shorts
channelName, channelHandle, channelIdProgramming with Mosh, @programmingwithmoshWho uploaded it
channelSubscriberCount4200000The channel's subscribers, as YouTube rounds them
keywords, category, hashtags["python", "tutorial"], EducationTags the uploader set, YouTube category, hashtags
description, descriptionLinksLearn Python…, ["https://…"]Full description and every link in it
chapters[{ "title": "Introduction", "startSeconds": 0 }]Chapters and their start times
position3Rank in YouTube's results for your search
viewsPerDay, likesPerThousandViews1203, 26.3Ratios that compare videos of different ages and sizes
badges, isLive, liveViewerCount["4K", "CC"], true, 6924Badges, live streams and their concurrent viewers
videoCount, playlistType124, coursePlaylists and courses: exact number of videos
aiSummaryNick demonstrates…YouTube's own AI summary, when the results page shows one
correctedQuerypython tutorialWhat YouTube searched instead, when it corrected your spelling

The dataset has 67 fields in all; the Overview, Video details, Channels and Playlists views show the useful columns for each kind of result.

How to scrape YouTube search results

  1. Click Try for free and type your search terms into Search terms, one per line (or paste YouTube links into YouTube URLs).
  2. Pick Result types and any filters. All are optional.
  3. Set Max results per search. You pay per result, so this is also your cost cap.
  4. Click Start. A search of 100 videos with full details takes about 10 seconds. Download the results as JSON, CSV, Excel or HTML from the Output tab.

How much does it cost to scrape YouTube?

You pay per result returned, and the price drops on higher Apify plans:

Apify planPer 1,000 results
Free$0.50
Starter$0.40
Scale$0.35
Business and Enterprise$0.30
  • 1,000 videos with views, likes, dates, tags and subscribers: $0.40 on Starter.
  • 50 search terms with 100 videos each (5,000 rows): $2.00 on Starter, $1.50 on Business.
  • Exact comment counts, channel details and deep search are included in the same price per result.
  • A run also costs $0.00005 to start. Searches that find nothing, repeats within a search and filtered-out results cost nothing.
  • The Free plan's $5 monthly credit covers about 10,000 results.

Input

{
"searchQueries": ["web scraping tutorial", "best budget smartphone 2026"],
"resultTypes": ["video", "short"],
"maxResults": 100,
"dateFilter": "month",
"sortBy": "newest",
"minViews": 1000,
"excludeKeywords": ["sponsored"]
}
FieldDefaultNotes
Search terms (searchQueries)What you would type into YouTube's search bar. Quoted phrases work
YouTube URLs (startUrls)Search results pages (keeping their filters), hashtag pages, /@channel/search?query=…, playlists, videos
Hashtags (hashtags)Hashtag feeds: cooking, #travel
Search inside channels (searchInChannels)Handles or channel URLs: each search term is searched inside each channel
Result types (resultTypes)VideosVideos, Shorts, Channels, Playlists, Movies, or Everything as YouTube mixes it
Max results per search (maxResults)100Per search term and result type
Max results in total (maxItems)10,000Stops the whole run
Sort by (sortBy)RelevanceRelevance, Popularity, Newest first, Most viewed
Upload date, Length, FeaturesanyYouTube's own filters (dateFilter, lengthFilter, isLive, is4K, isHD, hasSubtitles, hasCC, is360, isVR180, is3D, isHDR, hasLocation)
Exact search (exactQuery)offStops YouTube from correcting your spelling
Language, Location (language, country)English, United StatesYouTube's interface language and location: they change the ranking
Restricted Mode (restrictedMode)offYouTube's safe search
Uploaded after / beforeExact date range: a date (2024-01-31) or a period (30 days)
Min / Max views, Min / Max length, Min channel subscribersRanges YouTube cannot filter by
Exclude words, Exclude channels, Max results per channelClean up the list
Video details (includeVideoDetails)onExact date, likes, tags, category, description, subscribers
Comment count, Channel detailsoffExact comment count; the channel's About data on every row
Deep search (deepSearch)offBeyond YouTube's ~500 results per search
Shelf results, Remove duplicates across searchesoffYouTube's extra shelves; one row per result across search terms
ProxynoneNot needed. If YouTube refuses the run's address, Apify datacenter proxy is used automatically

Output

Each result is one row in the dataset. A search that finds nothing, or a link this Actor does not read, becomes a row with "recordType": "error" and an errorCode instead of failing the whole run:

errorCodeMeaning
NO_RESULTSYouTube found nothing for this search, hashtag or channel search
NOT_FOUND / CHANNEL_NOT_FOUNDThe playlist, video or channel does not exist or is private
UNSUPPORTED_URLA YouTube page this Actor does not read (for example a channel page)
INVALID_INPUTSomething the input cannot do, e.g. Search inside channels without search terms
BLOCKED / RATE_LIMITED / NETWORK_ERRORYouTube refused or did not answer the request; run again or enable a proxy
PARSE_FAILEDYouTube changed its page layout; please report it

Error rows are never charged. The Run summary record lists every search with YouTube's result estimate, pages read, results filtered out per reason and why each search stopped.

YouTube's search filters in 2026

YouTube changed its Filters menu in 2026, and many scrapers still send the old values:

  • Sorting by upload date and rating is gone. YouTube accepts the old values and silently returns relevance order. This Actor's Newest first collects what YouTube returns and sorts it by date itself (and its Most viewed sorts by exact view count).
  • Length buckets changed to under 3 minutes, 3-20 minutes and over 20 minutes. The old under 4 and 4-20 still work and are offered.
  • "Last hour" left the menu but still works.
  • YouTube's filters leak. Under "Today", videos 5 days and 4 years old came back in our tests. Every result is checked against the filter you chose, and the ones that slip through are not delivered or charged.
  • The minus operator is ignored ("iphone -case" still returns cases). Use Exclude words; "-word" in a search term is applied automatically.

Coming from another YouTube scraper?

Paste your saved input. The field names of the most popular YouTube scraper (searchQueries, maxResults, maxResultsShorts, sortingOrder, dateFilter, videoType, lengthFilter, isHD, oldestPostDate and the rest) and of other search Actors (query, keywords, uploadDate, duration, features, gl, hl and more) are understood, and the run log says how each one was read.

Tips and limits

  • About 200-500 results per search. That is where YouTube stops. Use Deep search, or several related search terms, for more.
  • Results change between runs and by location. YouTube's ranking is not fixed: two identical searches minutes apart share only part of their first page. Location and language change it too.
  • Language. With English, YouTube translates foreign titles on its results page. Video details restore the original title and keep YouTube's version in translatedTitle.
  • Rounded numbers. Channel subscribers are rounded by YouTube everywhere. Comment counts are rounded unless you turn on Comment count. Shorts' views are exact with video details on.
  • Tags and category come from YouTube Music's player data, which YouTube does not give for every video. When it is missing, the row has likes, exact views and the publish day from the watch page instead (publishedAtPrecision is then day).
  • Not available without a login: the Purchased filter, members-only and paid-promotion flags, channel email addresses (only whether a business email exists), and subtitles. For transcripts use YouTube Transcript Scraper.
  • Hit your spending limit? The run stops cleanly at your maximum cost per run and keeps everything it collected. Raise the limit in the run options to get more.

FAQ

This Actor collects only data YouTube shows publicly, without logging in. Results can still contain personal data, which laws such as the GDPR protect. Scrape personal data only for a legitimate purpose, and ask a lawyer if you are unsure. YouTube is a trademark of Google; this Actor is not affiliated with or endorsed by YouTube or Google.

Can I use it through the API or with Make, Zapier and n8n?

Yes. Every run can be started through the Apify API and returns the dataset as JSON, CSV or Excel. Schedules, webhooks and integrations for Make, Zapier, n8n and Google Sheets are on the Integrations tab.

Can AI agents use it?

Yes. Agents connected to Apify's MCP server can find and run this Actor as a tool, with the same per-result pricing. An empty call runs an example search instead of failing.

Why did I get fewer results than I asked for?

YouTube ended the search (it stops after roughly 200-500 results), your filters removed some results, or the run reached your maximum cost or its timeout. The run summary says which, per search, and nothing collected before that is lost.

Can I get more than 500 videos for one keyword?

Yes: turn on Deep search and raise Max results per search. It searches again in date windows, newest first, and removes repeats; it also works inside an Upload date or date range. One test search returned 3,000 unique videos.

Does it need a proxy?

No. YouTube's search answers Apify's servers directly. If YouTube ever refuses a run's address, the Actor switches to Apify's datacenter proxy by itself.

Support

Missing a field, or found a search that does not work? Open an issue on the Issues tab with the input you used, and it will be looked at quickly.