YouTube Video Scraper — Search & Channels ($1/1k)
Pricing
from $1.00 / 1,000 video scrapeds
YouTube Video Scraper — Search & Channels ($1/1k)
Scrape YouTube by search query, channel or direct video URL: title, channel, views, likes, duration, description, thumbnail, publish date. No browser, plain HTTP against YouTube's own InnerTube API. $1 per 1,000 videos.
Pricing
from $1.00 / 1,000 video scrapeds
Rating
0.0
(0)
Developer
Mohammed Samaan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Share
YouTube Video Scraper
Scrape YouTube by search query, channel or direct video URL — title, channel, views, likes, duration, description, thumbnail, publish date. No browser: it talks straight to YouTube's own InnerTube web API (the same JSON the youtube.com website itself loads), so it's fast and cheap to run.
Price: $1 per 1,000 videos. Rows are de-duplicated by video ID across every search query, channel and direct URL in one run — you never pay twice for the same video.
Who it's for
- Creator and competitor research — pull every upload from a channel with view counts
- Trend and niche research — scrape search results for a keyword, sorted by date or views
- Influencer discovery — search a niche term, get channels and view counts back
- Content calendars — track what a set of channels has published recently
Inputs
At least one of the three lists below is required.
| Field | What it does |
|---|---|
searchQueries | Search terms, one per line, e.g. ["dubai restaurant", "muscat cafe review"] |
channelUrls | @handle, youtube.com/@handle, /channel/UC…, or /c/name URLs |
videoUrls | Direct video URLs — watch?v=, youtu.be/…, or /shorts/… |
maxResultsPerQuery | Cap per search query or per channel (default 50, max 5000) |
sortBy | relevance / date / views — search queries only |
uploadDate | any / hour / today / week / month / year — search queries only |
locale | Two-letter language code (default en) |
Note: sortBy and uploadDate are both applied through single YouTube filter
params. If you set both on the same run, uploadDate wins and sortBy is skipped for
search — YouTube encodes the two together as a format we don't attempt to build. Run
them as separate queries if you need both at once.
Example input
{"searchQueries": ["dubai restaurant"],"channelUrls": ["https://www.youtube.com/@GoogleDevelopers"],"videoUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],"maxResultsPerQuery": 100,"sortBy": "date"}
Output
One row per video:
{"videoId": "9bZkp7q19f0","url": "https://www.youtube.com/watch?v=9bZkp7q19f0","title": "PSY - GANGNAM STYLE(강남스타일) M/V","channelName": "officialpsy","channelId": "UCrDkAvwZum-UTjHmzDI2iIw","channelUrl": "https://www.youtube.com/channel/UCrDkAvwZum-UTjHmzDI2iIw","publishedText": "2012-07-15T00:46:32-07:00","publishedAt": "2012-07-15T07:46:32.000Z","durationSeconds": 252,"viewCount": 6061897295,"likeCount": 32000000,"description": "PSY - 'I LUV IT' M/V ...","thumbnailUrl": "https://i.ytimg.com/vi_webp/9bZkp7q19f0/maxresdefault.webp","isLive": false,"isShort": false,"keywords": ["PSY", "싸이", "KPOP"],"searchQuery": null,"sourceChannel": null,"scrapedAt": "2026-09-14T18:43:07.475Z"}
Detail depth depends on the source. A videoUrls row gets an exact view count,
ISO publish date, full description and (approximate) like count — it comes from
YouTube's own player + video-details endpoints. A row from searchQueries or
channelUrls gets an approximate view count, a relative published date ("3 months
ago" — YouTube's search/channel listings don't expose the exact date, so
publishedAt is null there), and a description snippet rather than the full text.
likeCount is only fetched for videoUrls rows and is read off YouTube's abbreviated
display count (e.g. "19M"), so it's an approximation, not an exact figure.
How it works
YouTube's own web client calls https://www.youtube.com/youtubei/v1/{search,browse,next,player}
with a plain JSON POST body — no API key, no login, no browser. This is the exact
same server-rendered payload the youtube.com website itself parses to draw the page.
Channel URLs are resolved by fetching the channel's /videos page HTML and reading
ytInitialData, then paginated further pages come through the same InnerTube
/browse continuation endpoint. Confirmed working 14 Sep 2026.
How it compares
No browser means no Chromium to boot, no memory overhead, no proxy tax — just a handful of HTTP requests per query. That's faster and materially cheaper to run than a browser-based YouTube scraper for the same result set.
FAQ
Does it need my own API key? No — it uses YouTube's public web endpoints, the same ones your browser calls when you use youtube.com.
Can I get Shorts specifically? isShort is set true when duration ≤ 60s (for
videoUrls) or estimated from duration for search/channel rows — it isn't a
guaranteed YouTube-side flag, so treat it as a strong signal, not a certainty.
Why is publishedAt sometimes null? Only videoUrls rows carry YouTube's exact
ISO publish date. Search and channel listings only expose a relative string like
"3 months ago" — we pass that through as publishedText rather than guess a date.
Does it use proxies? No — plain outbound HTTP requests, no browser, no proxy configuration needed or offered.
Our other actors
- Google Maps Verified Email Scraper
- Bulk Email Verifier
- Airbnb Listings Scraper
- Website Contact Extractor
- Shopify Competitor Price & Restock Monitor
- App Store Review Monitor
- Local Review Booster
Using this actor? A quick review helps other buyers find it: youtube-video-scraper