YouTube Search Scraper avatar

YouTube Search Scraper

Pricing

$0.20 / 1,000 videos

Go to Apify Store
YouTube Search Scraper

YouTube Search Scraper

Scrape YouTube search results by keyword: video titles, channels, views, publish time, duration. Fast pure-fetch engine, no proxy needed.

Pricing

$0.20 / 1,000 videos

Rating

0.0

(0)

Developer

Z Michael

Z Michael

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

Scrape YouTube search results for any keyword and get a clean dataset of videos — title, channel, views, publish date, duration, thumbnail and URL.

Use it for keyword research, trend monitoring, content gap analysis, competitor tracking, or building video datasets for AI and RAG pipelines.

What you get

  • Real search results, not estimates — reads the same result list a person sees on youtube.com
  • Automatic pagination — keeps loading more until it hits your limit or YouTube runs out of results
  • One row per video — 10 fields, ready for Sheets, Airtable, Postgres or pandas
  • No API key, no proxy setup, no quota — nothing to configure except your keywords

Example output

{
"query": "ai coding tools",
"videoId": "QucgvbO5gsM",
"title": "Free AI Tools So Good They're Making Paid Versions Obsolete",
"channel": "Vaibhav Sisinty",
"channelId": "UClXAalunTPaX1YV185DWUeg",
"views": "538,716 views",
"publishedTime": "3 months ago",
"duration": "18:34",
"thumbnail": "https://i.ytimg.com/vi/QucgvbO5gsM/hqdefault.jpg",
"url": "https://www.youtube.com/watch?v=QucgvbO5gsM"
}

Use cases

  • Keyword research — see what actually ranks for a term, with view counts as a proxy for demand
  • Content gap analysis — compare your niche against what already performs
  • Trend monitoring — run the same queries on a schedule and diff the results
  • Competitor tracking — follow a rival's new uploads by searching their topic space
  • Dataset building — collect video metadata at scale for models, dashboards or research

Input

FieldTypeDescription
Search queriesarrayOne or more keywords. Each produces its own set of results.
Max videos per queryinteger1–1,000. Default 50.
Content languagestringInterface language, e.g. en, es, ja. Default en.

Output fields

FieldExample
queryai coding tools
videoIdQucgvbO5gsM
titleFree AI Tools So Good They're Making Paid Versions Obsolete
channelVaibhav Sisinty
channelIdUClXAalunTPaX1YV185DWUeg
views538,716 views
publishedTime3 months ago
duration18:34
thumbnailhttps://i.ytimg.com/...
urlhttps://www.youtube.com/watch?v=...

Pricing

Pay per video found: $0.0002 per video.

  • 100 videos ≈ $0.02
  • 1,000 videos ≈ $0.20

You are only charged for videos actually delivered. If a query returns nothing, you pay nothing.

FAQ

Do I need a YouTube Data API key? No. There is nothing to register and no quota to request. Provide keywords and run.

How many videos can I get per query? You can set a limit up to 1,000. The Actor paginates automatically and stops when it reaches your limit or YouTube stops returning results. For most keywords, that is 100–300 videos.

Can I search multiple keywords in one run? Yes. Pass an array of queries; results are tagged with the query field so you can split them later.

Does it include Shorts? Shorts appear in search results when YouTube returns them, and are included with their normal video fields.

Can I filter by upload date or view count? The Actor returns YouTube's default relevance ordering with publishedTime and views as text fields. Filter or sort after the run using those fields; date-range filtering inside the request is not supported.

Why do views and dates look like "538,716 views" and "3 months ago"? That is exactly how YouTube renders them. Parse to numbers if you need arithmetic.

Does it work for non-English keywords? Yes. Set the content language field to match, e.g. de, pt, ko.

Monitor Mode (daily incremental runs)

Set Only new items = true to turn this scraper into a monitor. It remembers what was already delivered for each query/video/channel and returns only new items since the last run.

How it works:

  1. First run = baseline, returns everything
  2. Every run after = returns only the delta (new comments / newly listed videos)
  3. No new data = empty dataset, you are not charged (pay-per-result billing only fires on delivered items)
  4. Combine with Apify Schedules to run it daily or hourly

Optional Webhook URL: whenever new items are found, the actor POSTs a JSON payload — {event, source, newCount, scannedCount, sample, at} — to your endpoint (Slack webhook, n8n, Make, your own API). Nothing is sent when there is no new data; failed deliveries never fail the run.

Typical use cases: track brand mentions in new YouTube comments, alert on newly published videos matching a keyword, watch a competitor channel for fresh uploads — without re-paying for data you already have.