YouTube Video Search Scraper avatar

YouTube Video Search Scraper

Pricing

from $0.22 / 1,000 videos

Go to Apify Store
YouTube Video Search Scraper

YouTube Video Search Scraper

Search YouTube by keyword and export the results: title, channel, exact views, length, upload age, snippet and link, in YouTube's own ranking order. From $0.22 per 1,000 videos. Filter by upload date, length or 4K - YouTube applies them before it answers, so a filtered video is never charged.

Pricing

from $0.22 / 1,000 videos

Rating

0.0

(0)

Developer

Stable

Stable

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Type the phrases you would type into YouTube's own search box and get the answer as a table: title, channel, exact view count, length, upload age, the snippet YouTube shows under the title, and the link — in YouTube's own ranking order, with the rank stored on every row.

No account, no API key, no quota.

What one row looks like

{
"query": "python tutorial",
"rank": 1,
"videoId": "x7X9w_GIm1s",
"videoUrl": "https://www.youtube.com/watch?v=x7X9w_GIm1s",
"title": "Python in 100 Seconds",
"description": "Python is arguably the world's most popular programming language...",
"channelName": "Fireship",
"channelId": "UCsBjURrPoezykLs9EqgamOA",
"channelUrl": "https://www.youtube.com/channel/UCsBjURrPoezykLs9EqgamOA",
"viewCount": 3100447,
"viewCountText": "3,100,447 views",
"publishedText": "4 years ago",
"durationText": "2:24",
"durationSeconds": 144,
"isLive": false,
"badges": ["4K"],
"thumbnailUrl": "https://i.ytimg.com/vi/x7X9w_GIm1s/hq720.jpg",
"estimatedResults": 2238166,
"searchUrl": "https://www.youtube.com/results?search_query=python+tutorial",
"scrapedAt": "2026-09-24T12:03:41+00:00"
}

20 fields. Views in the dataset tab: Results, Channels, Research, All fields.

The limit that matters, stated up front

YouTube never answers "no results". Ask it for something that does not exist and it will still hand back twenty videos — measured on 2026-09-24, the phrase qzxwvfoo nonsense query 12345 returned seventeen videos including Baby Shark. The only thing that tells you the difference is YouTube's own count, and it is on every row:

phraseestimatedResults
python tutorial2,441,088
python tutorial, uploaded today2,480
nonsense160

So: read estimatedResults before you trust the tail of a long answer. This Actor does not pretend a padded answer is a match, and it does not hide the number that gives it away.

Filters, applied by YouTube before it answers

filterwhat it does
Sort byrelevance, upload date, view count, rating
Uploaded withinlast hour, today, this week, month, year
Video lengthunder 4 minutes, 4 to 20, over 20
Must haveHD, 4K, subtitles, Creative Commons, live, 360°, HDR
Minimum viewsapplied here, before the row is stored — a quiet video is never charged
Skip live streamsthey have no length and no final view count
Language / Countryhl and gl; YouTube ranks differently per country

These are YouTube's own filters, sent with the request, not a filter applied to a page we already paid for. And because the filter blob is built rather than copied, the run re-reads its own answer to check the filter actually bit and reports it in the run summary. A filter that silently does nothing would bill you for everything; this one says so instead.

Input

fieldwhat it does
Search phrasesone per line, as you would type them
Maximum videos in totalceiling for the whole run
Maximum per phraseso one broad phrase cannot eat the run

Each phrase is searched separately, and every row says which phrase it came from and where it ranked in that answer.

What it does not do

  • It does not return channels or playlists — videos only, by default. That is what the ranking order is worth reading for.
  • It does not give exact numbers YouTube rounds. viewCount is filled only when YouTube states an exact figure; when it only says 3.1M views, the row keeps the text and leaves the number empty rather than inventing one.
  • It does not log in, so it sees what a signed-out visitor sees.

Free plan

Everything works on the free plan: the same fields, the same filters. Filtered and dropped videos cost nothing there either.