YouTube Channel Scraper Pro avatar

YouTube Channel Scraper Pro

Pricing

Pay per usage

Go to Apify Store
YouTube Channel Scraper Pro

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

seungkyu cho

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

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

FieldMeaning
channelUrlsOne or many. @handle, /channel/UC…, or a bare handle
collectChannelInfoFetch the profile record
includeVideos / videoTypeVideo catalogue, and which tab
maxItemsPerChannelPer-channel budget
fetchLikesExact like counts (an extra pass — slower, richer)
minViews / minLikes / maxDaysOldFilters applied while crawling
collectComments + maxCommentsPerVideoAudience 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

  • maxCommentsPerVideo is 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.
  • fetchLikes costs an extra request per video; leave it off for large catalogues unless you need exact counts.