YouTube Search API – Scraper, Rank Tracker & Video Data avatar

YouTube Search API – Scraper, Rank Tracker & Video Data

Pricing

from $1.00 / 1,000 videos

Go to Apify Store
YouTube Search API – Scraper, Rank Tracker & Video Data

YouTube Search API – Scraper, Rank Tracker & Video Data

Get the videos YouTube shows for any keyword and country: position, title, views, upload date, length, Shorts flag and channel, plus where your channels rank. A YouTube search scraper and YouTube rank tracker, no API quota or key needed.

Pricing

from $1.00 / 1,000 videos

Rating

0.0

(0)

Developer

Rowfeed

Rowfeed

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Security

Limited permissions

Share

Get the videos YouTube shows for any keyword, as a viewer in any country: position, title, views, upload date, length, Shorts flag, badges and channel for every video. Add your own channels (or competitors') and get where they rank for each keyword. Built for YouTube SEO and content research, agencies tracking client channels, brands watching who owns their keywords on YouTube, and AI agents that need YouTube search results as clean JSON. No YouTube API key, no daily quota, no browser.

What you get

  • One row per video in YouTube's order: position, title, url, video_id, views, published_at (and YouTube's own "3 weeks ago" text), duration_seconds, is_shorts, is_live, badges (e.g. "4K", "5 products"), description snippet and thumbnail_url.
  • The channel behind each video: channel_name, channel_url and channel_id, so you can group, filter and track.
  • Channel rank tracking (free): list channels in trackChannels and get one extra row per keyword and channel with its best position, all positions and how many of its videos are in the results.
  • Shorts can be left out with one switch.

Example output

{
"row_type": "video",
"keyword": "best running shoes",
"position": 1,
"title": "The Most Durable and Long Lasting Running Shoes in 2026!",
"video_id": "kmZCzZBXAHA",
"url": "https://www.youtube.com/watch?v=kmZCzZBXAHA",
"channel_name": "Ben Parkes",
"channel_url": "https://www.youtube.com/@BenParkes",
"channel_id": "UCZPqG0yh_xPm2AyLjffbDvw",
"views": 297259,
"published_at": "2026-10-11 15:41:51 +00:00",
"published_text": "3 weeks ago",
"duration_seconds": 1162,
"is_shorts": false,
"is_live": false,
"badges": ["5 products", "4K"],
"location": "United States",
"checked_at": "2026-11-01T15:41:45+00:00"
}

Channel rank row for the same search:

{
"row_type": "channel_rank",
"keyword": "best running shoes",
"channel": "@RunnersWorld",
"best_position": 10,
"positions": [10],
"videos_in_results": 1,
"results_checked": 20
}

Input

FieldWhat it does
keywordsWhat to search on YouTube, one per line. Up to 1,000 per run.
maxResultsVideos per keyword, in YouTube's order. 1 to 200, default 20.
location / languageSearch as a viewer in this country and language, e.g. United States / English, Germany / German.
includeShortsKeep Shorts (default) or regular videos only.
trackChannelsOptional: @handle, channel URL or channel ID (UC...). Gives a free rank row per keyword and channel.

Pricing

Pay per event, no subscription:

  • $1 per 1,000 videos ($0.001 per video row).
  • $0.003 per keyword for every 20 videos requested (so $0.003 at the default 20, $0.03 at 200), also when YouTube shows fewer videos. Failed searches are free.
  • $0.001 per run start. Channel rank rows are free.

Examples: 1 keyword with 20 videos costs $0.024. 100 keywords with 20 videos each cost $2.30. Cap the cost of a run with the maximum charge setting; the Actor never starts a search the budget cannot pay for. Try it for $0.001: the pre-filled example is answered from a saved snapshot of a real search (rows carry from_snapshot: true). Change anything and the search runs live. Live searches need a paid Apify plan (any plan); the pre-filled example works on the free plan.

Good to know

  • Results come through a licensed data provider (DataForSEO) that searches YouTube from the chosen country, so they show the general results, not one person's personalised feed.
  • published_at is worked out from YouTube's "3 weeks ago" text, so it is exact to the day for recent videos and approximate for old ones.
  • YouTube mixes playlists and channels into some result pages; only videos are returned and counted, so a keyword can give a few videos fewer than maxResults.
  • Channel logos are left out on purpose.

More tools from Rowfeed

Not affiliated with YouTube or Google.