YouTube Search Scraper - Videos, Shorts & Channels

Eimantas V · @amethyst

Scrape YouTube search results: videos, Shorts, channels and playlists with exact views, likes, dates and tags. Every filter, date ranges, deep search. No login.

About

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.

{
  "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: 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 they reach your dataset.

  • 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.
  • Clean results. Repeats within a search and filtered-out results are dropped, and a search with no results returns an error row instead of failing the run. Turn on Remove duplicates across searches to get each result once across search terms.
  • Built for automation. Run it on a schedule, call it from the API, or connect an AI agent through the Bytewells 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, which keeps its compute cost low.

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, which also caps how long the run takes.
  4. Click Start. A search of 100 videos with full details takes about 10 seconds. The results go to the run's dataset, which you can read as JSON.

How much does it cost to scrape YouTube?

One flat monthly rental, shown on this page, with a free trial. There is no per-result fee: scrape as many results as you need.

Runs use your credits for compute, as every Actor does. YouTube's search answers without a proxy, so compute is the whole cost. Measured on Bytewells: 100 videos for one search term, with exact views, likes, publish dates and categories, in 20 seconds at 512 MB for $0.0004 of credits: well under $0.01 per 1,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, the platform's 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

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.
  • 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.

FAQ

Is it legal to scrape YouTube?

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?

Yes. Every run can be started through the API, and its dataset read as JSON. Runs can also be scheduled, and webhooks are available.

Can AI agents use it?

Yes. Agents connected to the Bytewells MCP server can find and run this Actor as a tool. 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 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 the platform's servers directly. If YouTube ever refuses a run's address, the Actor switches to the platform's datacenter proxy by itself.

Related scrapers

Support

Missing a field, or found a search that does not work? Report it with the input you used, and it will be looked at quickly.

FAQ

What can I search for on YouTube?
Keywords, hashtags, a channel's videos or a pasted YouTube search URL. Results can be videos, Shorts, channels, playlists and movies, with every YouTube filter (upload date, type, duration, features, sort) and exact date ranges.
Do I need a YouTube API key or login?
No. It reads YouTube's public search without logging in, so there is no API key, no quota and no account to ban.
How much does it cost?
One flat monthly rental, shown on this page, with a free trial and no per-result fee. YouTube's search answers without a proxy, so compute is the whole cost. Measured on Bytewells: 100 videos with exact views, likes, publish dates and categories in 20 seconds for $0.0004 of credits.
Can I get more than 500 videos for one keyword?
Yes. YouTube stops a search after roughly 200-500 results; turn on Deep search and raise Max results per search. It searches again in date windows, newest first, and removes repeats. One test search returned 3,000 unique videos.
Are the view and subscriber counts exact?
View counts are exact with video details on, Shorts included. Subscriber counts are rounded by YouTube everywhere, and comment counts are rounded unless you turn on Comment count.
Does it need a proxy?
No. YouTube's search answers the platform's servers directly. If YouTube ever refuses a run's address, the Actor switches to the platform's datacenter proxy by itself.
Can I use it through the API or from AI agents?
Yes. Start runs through the Bytewells API (bytewells.com/docs/api), schedule them and read the dataset as JSON; webhooks work too. The API is Apify-compatible, so apify-client works with the Bytewells base URL. AI agents can run it as a tool through the Bytewells MCP server (bytewells.com/docs/mcp).

More Actors from the same publisher.

View all from @amethyst