YouTube Search Scraper avatar

YouTube Search Scraper

Pricing

from $0.01 / 1,000 results

Go to Apify Store
YouTube Search Scraper

YouTube Search Scraper

Type a keyword, get structured YouTube video results — videoId, title, URL, channel name and ID, view count, published time, duration, description and thumbnail — straight from YouTube's InnerTube API. No API key, no browser, no cookies.

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

Assia Fadli

Assia Fadli

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Turn any keyword into a tidy list of YouTube videos — no API key, no browser, no cookies.

Give this actor one or more search terms and it returns clean, flat rows: the video's ID, title and URL, the channel name and ID, view count, published time, duration, an optional description snippet, and the best available thumbnail. Perfect for topic research, competitor tracking, content ideation, or feeding a downstream pipeline.

How it works

The actor talks directly to YouTube's internal InnerTube API using the ANDROID client — the same endpoint YouTube's own mobile app uses. That client still returns full search data from youtubei/v1/search without a Proof-of-Origin (PoToken) token, consent cookies, or a headless browser, which keeps every run fast and cheap.

  1. A POST to https://www.youtube.com/youtubei/v1/search with the ANDROID client context and your { query } returns the first page of compactVideoRenderer items.
  2. Each subsequent page is fetched with the nextContinuationData.continuation token from the previous response.
  3. Results are de-duplicated by videoId, and paging stops once maxResults is reached, a token repeats, or YouTube stops returning a next token.

Features

  • Search one keyword or many in a single run — each query is scraped independently.
  • Pages through results with continuation tokens up to your maxResults limit.
  • Returns clean, flat rows (one per video) ready for spreadsheets, databases or downstream actors.
  • Routes requests through Apify residential proxies, with an automatic fallback to a direct request if the proxy fails.
  • Resilient: a query that returns nothing or errors is written as a { query, error } row instead of crashing the run.

Pricing — pay per result

This actor uses Apify's pay-per-event model with a single event, result-scraped. You are charged once for each video result that is actually delivered to your dataset. Rows that carry no video (empty-result or error rows) are never charged, and once your run's charge limit is reached the actor stops early so you are never billed beyond your budget.

Input

FieldTypeDescription
queriesarray (required)One or more keywords. Each is searched independently. Aliases: keywords.
querystringOptional single keyword, merged with queries. Alias: search.
maxResultsintegerMax results per query. Default 30. Alias: maxItems.
proxyCountryCodestringTwo-letter country code for the residential proxy exit IP. Default US. Alias: proxyCountry.
languagestringLanguage code (hl) for localized fields such as view counts and publish times. Default en. Alias: hl.

Example input

{
"queries": ["apify web scraping", "playwright tutorial"],
"maxResults": 30,
"proxyCountryCode": "US"
}

Output

One dataset row per video result:

{
"query": "apify web scraping",
"videoId": "5kcaHAuGxmY",
"title": "How to scrape ANY website with Apify's Web Scraper API",
"url": "https://www.youtube.com/watch?v=5kcaHAuGxmY",
"channelName": "Apify",
"channelId": "UCTgwcoeGGKmZ3zzCXN2qo_A",
"views": "39,802 views",
"published": "1 year ago",
"duration": "5:30",
"description": null,
"thumbnail": "https://i.ytimg.com/vi_webp/5kcaHAuGxmY/sddefault.webp"
}

Note: the ANDROID search client does not always include a description snippet, so that field may be absent for some videos.

Running locally

npm install
npm run build
# create storage/key_value_stores/default/INPUT.json with your input, then:
apify run

Disclaimer

This actor scrapes publicly available search results. Use it responsibly and in line with YouTube's Terms of Service and applicable laws.