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

Youtube Channel Scraper Pro

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

10 hours ago

Last modified

Categories

Share

YouTube Channel Scraper Pro πŸš€

A high-performance, reliable Apify Actor for scraping YouTube channel videos β€” including Long-Form and Shorts β€” with advanced filtering and infinite scroll support.

πŸ”— Apify Actor URL: https://apify.com/skcho/youtube-channel-scraper-pro


✨ Key Features

  • πŸ”„ Infinite Scroll (Pagination): Automatically scrolls through the entire channel page using a real browser β€” no 30-video limit.
  • πŸ—‚οΈ Long-Form & Shorts Separation: Precisely scrape and categorize videos by type.
  • πŸ“¦ Rich Data Extraction: Titles, View Counts, Upload Dates, Durations, HQ Thumbnails, and Animated WebP Previews β€” all extracted out of the box.
  • πŸ‘ Optional Like Count Extraction: A lightweight, high-concurrency HTTP-based fetcher grabs like counts at ~430 videos/min without launching extra browsers.
  • 🎯 Precision Filtering: Filter by minimum views, likes, upload date range, and more.
  • 🧠 Hybrid Architecture: PlaywrightCrawler handles real-browser scrolling; HttpCrawler handles likes β€” minimizing memory usage and maximizing speed.

⚑ Performance

ScenarioSpeed
Channel scroll + data extract (100 videos)~15 seconds
Like count fetch (per 100 videos, fetchLikes: true)~15 seconds
Total for 100 videos with likes~30 seconds

Likes are fetched at ~430 requests/min in parallel via lightweight HTTP requests β€” no extra browser needed.


πŸ› οΈ Input Parameters

ParameterTypeDefaultDescription
channelUrlsArray<String>(Required)YouTube channel URLs to scrape (e.g., https://www.youtube.com/@mkbhd). Multiple channels supported.
videoTypeEnum"ALL"Which video type to scrape: "ALL", "LONG_FORM", or "SHORTS".
minUploadDateString""Only include videos uploaded on or after this date. Format: YYYY-MM-DD.
maxUploadDateString""Only include videos uploaded on or before this date. Format: YYYY-MM-DD.
minViewsInteger0Only include videos with at least this many views. (e.g., 1000000 for 1M+).
maxItemsPerChannelInteger100Maximum videos to scrape per channel. Uses infinite scroll to exceed YouTube's default 30-video page limit.
fetchLikesBooleanfalseIf enabled, fetches exact Like counts for every video via fast parallel HTTP requests. Adds ~15s per 100 videos.
minLikesInteger0(Requires fetchLikes: true) Only include videos with at least this many likes.

πŸ“„ Output Data Structure

Each video is pushed as a JSON object to the Apify Dataset:

{
"channelName": "Marques Brownlee",
"channelUrl": "https://www.youtube.com/@mkbhd",
"videoId": "eFeDpUVEy48",
"videoUrl": "https://www.youtube.com/watch?v=eFeDpUVEy48",
"title": "The Biggest Android Update Ever",
"type": "LONG_FORM",
"uploadDateText": "8 days ago",
"viewCount": 4099999,
"durationText": "12:59",
"thumbnailUrl": "https://i.ytimg.com/vi/eFeDpUVEy48/hqdefault.jpg",
"animatedThumbnailUrl": "https://i.ytimg.com/an_webp/eFeDpUVEy48/mqdefault_6s.webp",
"likeCount": 125000
}

Field Reference

FieldTypeDescription
channelNameStringOfficial channel display name
channelUrlStringInput channel URL
videoIdStringYouTube video ID
videoUrlStringFull youtube.com/watch?v=... URL
titleStringVideo title
typeString"LONG_FORM" or "SHORTS"
uploadDateTextStringRelative upload date (e.g., "8 days ago")
viewCountIntegerParsed integer view count
durationTextStringVideo duration string (e.g., "12:59")
thumbnailUrlStringHighest-quality static thumbnail URL
animatedThumbnailUrlString3-second animated WebP preview URL
likeCountIntegerLike count β€” present only when fetchLikes: true

βš™οΈ How It Works (Architecture)

This actor uses a two-phase hybrid architecture to maximize both stability and speed:

Phase 1 β€” Scroll & Extract (PlaywrightCrawler)

A real Chromium browser navigates to the channel's /videos and /shorts tabs. It automatically scrolls down the page, triggering YouTube's infinite scroll to load more videos, until maxItemsPerChannel is reached or the page end is detected. Video metadata is then extracted directly from the rendered DOM.

Browser optimizations:

  • Blocks unnecessary resources (images, fonts, media) to reduce memory usage
  • Disables GPU, extensions, and background services
  • Anti-bot fingerprint masking (navigator.webdriver suppressed)

Phase 2 β€” Like Count Fetch (HttpCrawler, Optional)

If fetchLikes is enabled, up to 20 concurrent lightweight HTTP requests are made to individual youtube.com/watch?v=... pages. Like counts are extracted by parsing the embedded ytInitialData JSON object β€” no browser required. This runs at ~430 requests/min.


🀝 Support & Issues

Found a bug or have a feature request? Please reach out via the Apify Issues tab!