YouTube Search Scraper - Videos, Views, $0.50/1K
Pricing
from $0.28 / 1,000 videos
YouTube Search Scraper - Videos, Views, $0.50/1K
YouTube search scraper API: up to 1,000 videos per keyword with exact views, duration, channel, handle, verified badge, 4K/CC/live badges and date, plus Shorts and live streams. Filters: upload date, length, HD, 4K, subtitles. No API key. $0.50 per 1,000 videos.
Pricing
from $0.28 / 1,000 videos
Rating
0.0
(0)
Developer
Khandji Omar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Features
Share
YouTube Search Scraper — Videos, Views, $0.50/1K
YouTube search scraper API: up to 1,000 videos per keyword with exact views, duration, channel, handle, verified badge, 4K/CC/live badges and date, plus Shorts and live streams. Filters: upload date, length, HD, 4K, subtitles. No API key.
Price: $0.50 per 1,000 videos ($0.0005 per video). The first 10 results of every run are free.
In short: what you give, what you get, what it costs
| You give | Keywords, with optional filters (upload date, length, HD, 4K, subtitles) |
| We do | Search YouTube |
| You get | One row per video: exact views, length, channel, handle, verified badge, 4K / CC / live badges, date and rank, plus Shorts and live streams |
| It costs | $0.50 per 1,000 videos, no start fee. From 16 November 2026: +$0.001 per run. The first 10 results of every run are free. No supplier fee |
| It does not | Need a YouTube API key. YouTube stops one search after a few hundred results: split the search for more |
A real result row is shown further down this page.
Free tier — 10 results free on every run
The first 10 results of every run are free, on every run you ever make — not a one-off trial. One guard: the free allowance never covers more than half of a run, so the offer stays sustainable.
Measured, not promised
Test of 18 October 2026 on Apify: "pixel art" and "home workout", 100 videos each, with video details on.
| YouTube Search Scraper (om_kh) | apidojo/youtube-scraper (same price) | |
|---|---|---|
| Videos returned | 200 of 200 in 156 s | not tested |
| Exact views, likes, comments, channel subscribers | 200, 197, 193, 200 | not tested |
| Runs that fail, last 30 days (Store figure) | 0 | 30,803 of 191,137 (16%) |
| Rating (Store) | new | 3.3 stars (21 reviews) |
| Price per 1,000 videos | $0.50 | $0.50 |
What you get
A real row from this Actor's latest run on Apify (2026-10-24; long texts are cut and people's names hidden here, your dataset has them in full):
{"record_id": "https://www.youtube.com/watch?v=ix9cRaBkVe0","query_id": "python tutorial","title": "Python Full Course for free 🐍","url": "https://www.youtube.com/watch?v=ix9cRaBkVe0","text": "python #tutorial #beginners Python tutorial for beginners' full course 2024 *Learn Python in 1 HOUR* ...","author": "(hidden here)","published_at": "2024-10-24T07:00:48+00:00","videoId": "ix9cRaBkVe0","channelId": "UC4SVo0Ue36XCfOyb5Lh1viQ","channelUrl": "https://www.youtube.com/channel/UC4SVo0Ue36XCfOyb5Lh1viQ","viewCount": 13095866,"duration": "12:00:00","durationSeconds": 43200,"publishedTimeText": "2 years ago","thumbnailUrl": "https://i.ytimg.com/vi/ix9cRaBkVe0/hq720.jpg?sqp=-oaymwEXCNAFEJQDSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLA3zOqGqeejlG_66zpDnm9pzuH_2Q","channelHandle": "(hidden here)","channelIsVerified": true,"channelAvatarUrl": "(hidden here)","badges": ["Fundraiser"],"isLive": false,"hasCaptions": false,"is4K": false,"type": "video","searchRank": 1,"searchQuery": "python tutorial","scrapedAt": "2026-10-24T19:00:50Z","extra_channelIsVerified": true,"extra_badges": ["Fundraiser"],"extra_isLive": false,"extra_hasCaptions": false,"extra_is4K": false}
Each video contains: title, url, videoId, type (video, short or live), searchRank, author (channel name), channelId and channelUrl, viewCount (exact), duration and durationSeconds, published_at (ISO date) and publishedTimeText, text (description snippet), thumbnailUrl, searchQuery, scrapedAt and query_id (your search). With includeVideoDetails: likeCount, commentCount, channelSubscribers, channelHandle, channelThumbnail and the exact publication date. Up to 1,000 videos, 500 Shorts and 500 live streams per search term.
Every field
| Field | What it holds |
|---|---|
record_id | stable ID of the row (used for new-only delivery) |
query_id | the search, profile or category this row belongs to |
title | title |
url | URL |
text | text |
author | author |
published_at | published at |
videoId | video ID |
channelId | channel ID |
channelUrl | channel URL |
viewCount | view count |
duration | duration |
durationSeconds | duration seconds |
publishedTimeText | published time text |
thumbnailUrl | thumbnail URL |
channelHandle | channel handle |
channelIsVerified | channel is verified |
channelAvatarUrl | channel avatar URL |
badges | badges |
isLive | is live |
hasCaptions | has captions |
is4K | is4 k |
type | type |
searchRank | search rank |
searchQuery | search query |
scrapedAt | scraped at |
extra_channelIsVerified | extra channel is verified |
extra_badges | extra badges |
extra_isLive | extra is live |
extra_hasCaptions | extra has captions |
extra_is4K | extra is4 k |
How much does it cost?
$0.0005 per video — $0.50 per 1,000. You pay only for results actually delivered.
| Videos | Cost |
|---|---|
| 1,000 | $0.50 |
| 10,000 | $5.00 |
| 100,000 | $50.00 |
- No per-run fee and no check fee.
- Failed inputs are never charged, and
maxTotalChargeUsdcan cap any run. - The first 10 results of every run are free (never more than half of a run).
- Larger Apify plans pay less per result automatically.
Example input
{"searchTerms": ["ai agents tutorial"],"uploadDate": "week","videoDuration": "long"}
| Field | What it does |
|---|---|
searchTerms | One or more YouTube searches. |
startUrls | YouTube search links (youtube.com/results?...): the words and filters of each link are used as they are. |
maxResults | Videos per search, 0 to 1,000. Default 50. |
maxShorts / maxLiveStreams | Also return Shorts, or streams live now, for the same words (0 to 500 each). |
sortBy | relevance (default), views (YouTube's own order) or newest (the results read, newest first). |
uploadDate | hour, today, week, month or year — YouTube's own upload-date filter. Empty = any time. |
videoDuration | short (< 4 min), medium (4-20 min) or long (> 20 min). Empty = any length. |
videoType | video (default) or movie. |
features | hd, 4k, hdr, subtitles, creative_commons, live, 360, vr180, 3d, location, purchased. |
publishedAfter | Keep videos published on or after a date (YYYY-MM-DD). |
includeVideoDetails | Likes, comment count, exact date, channel subscribers and handle. Same price. |
Turn on monitorEnabled and schedule the Actor to receive only results that are new since the last run.
Compared with delicious_zebu/youtube-video-scraper-by-keyword
Read on the Store on 2026-10-23 (YouTube Search Scraper - Videos & Shorts by Keyword). Where it does better, this section says so.
- Built on the site's own data, not a resold scraper: no second Actor between you and the source.
- Free results on every run and a hard cost cap (
maxTotalChargeUsd). - Price: $0.5 per 1,000 here, $1.2 there.
Use cases
- Content research — what is being published on a topic right now.
- SEO and keyword ideas — titles and channels ranking for a query.
- Creator discovery — channels active in your niche.
- Trend watching — schedule it and see new uploads every day.
Why this one
- First-party data. It reads YouTube's own public endpoints directly, with no resold scraper in between: fast, fresh and cheap.
- Clean, normalized rows plus a
RUN_SUMMARY.jsonwith counts and signals. - YouTube's own filters: upload date (last hour to last year) and video length, applied by YouTube itself.
- Hard cost cap with
maxTotalChargeUsd.
Related tools
- Already know the channel? Watch it directly instead of searching. → YouTube Channel Videos Scraper - Exact Views, $0.50/1K
How to use it in 3 steps
- Click Try for free and fill in YouTube search terms (
searchTerms). - Optional: adjust the other fields; every one has a description and a sensible default.
- Click Start and download the results as JSON, CSV or Excel, or read them from the API.
Use it from code (API)
Every Apify Actor is an API. Start a run and read the results with one call.
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("om_kh/vigia-youtube-search-monitor").call(run_input={"searchTerms": ["your brand", "competitor name"]})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('om_kh/vigia-youtube-search-monitor').call({"searchTerms": ["your brand","competitor name"]});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
One HTTP call (cURL) — runs the Actor and returns the dataset in the same response:
curl -X POST "https://api.apify.com/v2/acts/om_kh~vigia-youtube-search-monitor/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"searchTerms": ["your brand", "competitor name"]}'
Integrations: n8n, Make, Zapier, Google Sheets
- n8n — the official Apify node, operation Run Actor and get dataset, Actor
om_kh/vigia-youtube-search-monitor. - Make — Apify › Run an Actor, then Apify › Get Dataset Items.
- Zapier — Apify › Run Actor; map the dataset items into your next step.
- Google Sheets, webhooks, Slack — add an integration from the Integrations tab of this Actor.
- Schedules — run it every hour or day from Schedules in Apify Console.
Use it from an AI agent (MCP and x402)
Connect Claude Desktop, Cursor, VS Code or any MCP client to Apify's MCP server
at https://mcp.apify.com and add this Actor, om_kh/vigia-youtube-search-monitor, as a tool — the
agent passes the same JSON as the run input and gets the dataset back.
AI agents that pay with x402 can run it too, without an Apify account: the Actor charges only per result delivered, so an agent pays exactly for what it gets.
Limits to know
- YouTube stops a single search after a few hundred results: in our test, "python tutorial" gave 300 videos in 66 seconds. For more, split the search (by upload date, length or wording).
- YouTube no longer sorts a search by upload date or by rating.
viewsis YouTube's own order;newestreorders what the run read. - Search dates are labels like "3 weeks ago". Turn on
includeVideoDetailsfor the exact date. In our test it filled likes for 14 of 16 videos; a video YouTube serves without its counters keeps empty fields. - Shorts combined with a short upload-date filter can return nothing: YouTube applies both filters together.
FAQ
Can I get only recent videos, or only long ones?
Yes. uploadDate: "today" (or hour, week, month, year) and videoDuration: "long" (or short, medium) use YouTube's own search filters, so results match exactly what the YouTube filter menu shows.
Is it legal to scrape YouTube? This Actor collects only publicly available YouTube data and never logs in. You are responsible for how you use it; check YouTube's terms and your local law (GDPR, CCPA) if you store personal data, and ask a lawyer if unsure.
Do I need an account, cookies or an API key? No. You only need an Apify account to run it.
What data do I get? Videos with title, channel, views and publish date. Download it as JSON, CSV, Excel, HTML or XML, or read it from the API.
Am I charged when something fails? No. An input that fails is listed with its reason in the run summary and is never charged.
Can I run it on a schedule? Yes. Create a schedule in Apify Console (hourly, daily, weekly) and connect webhooks, Google Sheets, Slack, n8n, Make or Zapier.
Can I use it from Python, JavaScript or an AI agent?
Yes: see the code samples above, or connect AI agents through MCP with the youtube_search_new_videos tool.
All input fields
The main fields are described above; these are the others the form accepts:
currentItems(Bring your own items (optional)) — Optional: pass records you already have instead of fetching them from YouTube.sources(Declared upstream sources and estimated costs) — Declare every upstream source before this run. Each item needs name, authorization, and estimated_cost_usd.
Your feedback
Did this Actor save you time? A short review on the Reviews tab helps other people find it, and every review is read. Something missing or broken? Open an issue on the Issues tab: it is answered and fixed fast.