YouTube Channel & Video Scraper
Pricing
from $0.30 / 1,000 video scrapes
YouTube Channel & Video Scraper
Scrape YouTube channels and videos without a browser or API key: subscriber counts, full upload lists, exact view counts, durations, publish dates, keywords, and optional likes and comments. No quota limits. From $0.30 per 1,000 videos.
Pricing
from $0.30 / 1,000 video scrapes
Rating
0.0
(0)
Developer
Eimantas V
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
Channel stats and full video lists with exact view counts — no browser, no API key, no quota.
@mkbhd Marques Brownlee 21.1M subscribers · 1.8K videos6 recent uploads · median 3,642,713 views · uploading every 7 daysGoogle Pixel 11/Pro/Fold Impressions 1,562,071 views 11:14 14 hours agoGalaxy Z Fold 8 Review: Honeymoon's Over 4,097,984 views 11:35 12 days agoFramework 13 Pro: The Modular Laptop 3,187,441 views 12:48 2 weeks ago
One channel with 6 videos: 8 requests, 0.4 MB, 0.8 seconds.
Why it is fast and cheap
Most YouTube scrapers load the page in a headless browser. This one calls the same internal API youtube.com calls from your browser, and the difference is not small: a watch page is 1.25 MB of HTML wrapped around 16 KB of data. Reading the data directly makes runs roughly eighty times lighter, which is why the price below is what it is.
What you get
Per channel — channelId, handle, title, description, keywords, subscriberCount, videoCount, avatarUrl, rssUrl, plus rollups over the videos returned: medianViewsScraped and uploadIntervalDays, the mean gap between uploads.
Per video
| Group | Fields |
|---|---|
| Reach | viewCount, viewCountIsExact, viewsPerDay, viewCountText |
| Engagement | likeCount (exact), commentCount, likesPerThousandViews — opt-in |
| Timing | publishedAt, publishedText, daysSincePublished |
| Content | title, descriptionSnippet, keywords, category, durationSeconds |
| Format | isShort, isLive, thumbnailUrl |
viewsPerDay is the one that matters for comparison. A three-year-old video with 4M views and a three-week-old video with 4M views are not the same result, and raw view counts cannot tell you which is winning.
Who this is for
- Influencer marketing — vet creators before you pay them. Subscriber count is vanity;
medianViewsScrapedagainstsubscriberCountshows how many people actually watch, anduploadIntervalDaysshows whether the channel is still active. - Content strategy — pull a competitor's last 200 uploads, sort by
viewsPerDay, and read what worked. - Trend research —
keywordsandcategoryacross a set of channels, refreshed daily. - Media monitoring — watch specific channels for new uploads with
publishedWithinDays: 1.
Pairs with the TikTok Creator Scraper: same buyer, the other half of the picture.
Input
{"channels": ["@mkbhd", "@MrBeast"],"maxVideosPerChannel": 100,"publishedWithinDays": 90}
Accepts handles, channel URLs, UC… ids, legacy /c/ and /user/ paths, and — for videos — watch, youtu.be, /shorts/ and /live/ links.
| Option | Default | Notes |
|---|---|---|
maxVideosPerChannel | 50 | Your main billing guard. 0 = channel stats only |
includeShorts | false | Separate tab. Shorts carry no duration or date of their own — those need exactVideoStats |
publishedWithinDays | — | Applied after fetching; YouTube's tab has no date filter |
exactVideoStats | true | Exact views and timestamps; one small request per video |
includeEngagement | false | Likes and comments — ~25× the data |
includeDescription | false | Off keeps the dataset far smaller |
language / country | en / US | Affects display text and region-restricted videos |
Four things worth knowing
Each was measured against live channels.
Subscriber counts are rounded, and that is YouTube's doing. The site itself publishes "21.1M subscribers" — the exact number has not been public since 2019. subscriberCount is that text parsed to 21100000, and subscriberCountText keeps the original so you can see it is rounded. Any tool quoting an exact subscriber figure is inventing precision.
View counts are exact, but only if you ask — and only if YouTube agrees. A channel listing gives "1.5M views"; resolving the video gives 1584034. exactVideoStats is on by default and costs one 16 KB request per video.
YouTube sometimes answers that request without describing the video, which datacenter addresses see routinely. When it does the Actor tries a second client, and if that is also refused it keeps the rounded listing figure rather than inventing one.
Two fields tell you exactly what you got, and they are deliberately separate:
viewCountIsExact— whetherviewCountis the real number. It can be true even when the video lookup failed, because turning on engagement recovers the exact count from that payload.publishedText— when it is set,publishedAtwas estimated from wording like "2 weeks ago". Videos the lookup did describe have an exact timestamp and nopublishedText.
keywords and category come only from the video lookup, so they are empty when it is refused. The run log reports both gaps separately.
Likes cost 25× more than everything else. The like total is not in the cheap endpoint — fetching it means a second request that is roughly 400 KB against 16 KB. That is why includeEngagement is off by default. Comment counts are rounded by YouTube itself: "2.4M" is as precise as the site is.
Publish dates are exact where possible, approximate otherwise. With exactVideoStats you get a real timestamp. Without it, "2 weeks ago" is anchored to the coarsest unit YouTube gave, and publishedText always carries the original wording so you can tell which you are looking at.
Output
{"recordType": "video","videoId": "Z6z_feacXW8","channelTitle": "Marques Brownlee","title": "Galaxy Z Fold 8 Review: Honeymoon's Over","viewCount": 4097984, "viewCountText": "4M views","durationSeconds": 695, "durationText": "11:35","publishedAt": "2026-08-01T…", "publishedText": "12 days ago","daysSincePublished": 12, "viewsPerDay": 341499,"category": "Science & Technology", "isShort": false}
Three ready-made views: Videos, Channels and Engagement. Set flattenOutput: true for CSV.
Honest limits
- No transcripts. YouTube stopped serving caption tracks to anonymous clients; the endpoint returns zero bytes. Anything offering bulk transcripts is running a browser fleet or an authenticated session.
- No comment text. Only the count, and only when engagement is enabled.
- Subscriber counts are rounded. See above.
- Region-restricted videos will not resolve outside their country. Set
countryto reach them. videosScrapeddescribes this run, not the channel. A cap of 10 gives cadence and median over the last 10 uploads, not the channel's lifetime.- A private, deleted or age-restricted video returns
VIDEO_NOT_FOUNDand is not charged. Failed rows carry no figures at all — a row that says it could not read the video will never also report a like count. viewCountIsExact: falsemeansviewCountcame from YouTube's rounded display text. See above.- Empty
keywordsand a nullcategorymean the per-video lookup was refused for that row;publishedAtis estimated in that case too.
Pricing
| Event | Price | When |
|---|---|---|
| Actor start | $0.005 | Once per run |
| Channel scraped | $0.004 | Per channel profiled |
| Video scraped | $0.0003 | Per video returned, after filters |
$0.30 per 1,000 videos. Tracking 50 creators with their 20 most recent uploads costs about $0.51. Channels and videos that cannot be resolved are never charged.
Tips
- Rank by
viewsPerDay, notviewCount. It is the only fair comparison across videos of different ages. medianViewsScraped ÷ subscriberCountis the number influencer marketers actually want: what share of an audience shows up.uploadIntervalDaysclimbing run over run means a channel is slowing down — usually before its view counts show it.publishedWithinDays: 1with a daily schedule is a cheap new-upload feed across a whole competitive set.- Leave
includeEngagementoff unless you specifically need likes. It is the single biggest cost lever in this Actor.