YouTube Channel Scraper Pro
Pricing
Pay per usage
YouTube Channel Scraper Pro
Scrape any YouTube channel end to end: channel profile, long-form and Shorts video lists, full video metadata, and optionally comments and subtitles. Advanced date/view/like filtering with infinite-scroll support.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
seungkyu cho
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
The whole channel in one run: profile, every video, and optionally the comments underneath them.
Start from a handle and end with a dataset you can hand straight to a dashboard — subscriber counts, video catalogue, engagement, and audience voice, all keyed together.
What you get
Three record shapes in one dataset, tagged by recordType so they separate with
a single filter.
channel — the profile
{"recordType": "channel","channelName": "Marques Brownlee","channelId": "UCBJycsmduvYEL83R_U4JriQ","handle": "@mkbhd","subscriberCount": 20100000,"videoCount": 1784,"viewCount": 4692518841,"description": "Quality Tech Videos...","keywords": ["tech", "reviews"],"isVerified": true,"country": "US","joinedDateText": "Mar 21, 2008","externalLinks": [{ "title": "Website", "url": "https://mkbhd.com" }]}
video — one per upload
{"recordType": "video","videoId": "kYfNvmF0Bqw","title": "The Best Smartphone Camera 2025","type": "LONG_FORM","uploadDateText": "3 weeks ago","viewCount": 4821904,"likeCount": 79605,"durationText": "17:23","thumbnailUrl": "https://i.ytimg.com/vi/kYfNvmF0Bqw/hqdefault.jpg"}
comment — when collectComments is on, carrying the channel keys so it
joins back without a lookup table.
Input
| Field | Meaning |
|---|---|
channelUrls | One or many. @handle, /channel/UC…, or a bare handle |
collectChannelInfo | Fetch the profile record |
includeVideos / videoType | Video catalogue, and which tab |
maxItemsPerChannel | Per-channel budget |
fetchLikes | Exact like counts (an extra pass — slower, richer) |
minViews / minLikes / maxDaysOld | Filters applied while crawling |
collectComments + maxCommentsPerVideo | Audience voice per video |
{"channelUrls": ["https://www.youtube.com/@mkbhd", "@veritasium"],"collectChannelInfo": true,"includeVideos": true,"videoType": "ALL","minViews": 100000,"maxItemsPerChannel": 200,"fetchLikes": true}
How it holds up on long channels
Channel tabs are lazily loaded, so a naive scraper stops at the first screen. This one takes a fast HTTP path when the page will give up its data that way, and falls back to a real browser scroll when it won't — including when the fast path returns nothing at all, which is exactly the case that produces silent empty runs elsewhere.
Filters are applied during the crawl, not after: maxDaysOld and
minViews stop the scroll early instead of collecting thousands of rows and
throwing most away.
Good for
- Competitive intelligence across a set of channels
- Content calendars and upload-cadence analysis
- Finding a channel's outliers by views-per-day
- One-shot exports for BI tools, with channel/video/comment already joined
Notes
maxCommentsPerVideois an upper bound — YouTube stops paginating comment threads early, on every tool, not just this one.maxRepliesPerComment(default 10,0= no cap) stops one viral comment from spending the whole per-video budget on its own reply thread. At the default a 120-row request comes back as ~13 different comments with replies attached rather than a single comment and 119 of its replies.fetchLikescosts an extra request per video; leave it off for large catalogues unless you need exact counts.