YouTube is the second-largest search engine in the world and the dominant platform for long-form video content, with over 800 million videos published and 500 hours of content uploaded every minute. For content strategists, market researchers, competitor analysts, and growth teams, YouTube channel data — video performance, engagement trends, comment sentiment, and publishing cadence — is one of the richest behavioral datasets available from any public platform.
YouTube does offer a Data API v3, but it imposes strict daily quota limits that make bulk data collection impractical for most use cases. The default quota of 10,000 units per day is consumed almost entirely by a single search query returning 50 results. For teams that need full channel histories, comment threads, or data on hundreds of channels simultaneously, the official API is simply not viable.
YouTube’s anti-automation defenses have strengthened significantly since 2023. Google-owned properties share infrastructure, meaning YouTube benefits from the same bot detection layers used across Search and Maps — behavioral fingerprinting, TLS analysis, and IP reputation scoring.
The dynamic rendering problem: YouTube’s frontend is a single-page application built on a proprietary framework called Polymer. Channel pages, video listings, and comment threads are all rendered client-side by JavaScript that makes authenticated requests to internal APIs. The URLs and request signatures for these internal endpoints rotate regularly. A scraper that relies on static reverse-engineering of these endpoints requires continuous maintenance — typically breaking every few weeks when YouTube pushes frontend updates.
Comment extraction is particularly challenging. YouTube loads comments lazily via an internal continuation token system. Fetching a full comment thread on a popular video with 50,000+ comments requires managing continuation tokens across hundreds of sequential requests, each of which needs valid session context. Any deviation from expected browser behavior patterns triggers CAPTCHAs or silent result truncation.
Quota circumvention also carries legal risk when using the official API in ways that violate the terms of service. Using a managed scraping infrastructure keeps these operational and compliance concerns off your team’s plate.
We maintain a YouTube Channel Scraper on Apify that handles session management, continuation token pagination, and data normalization across channel pages, video metadata, and comment threads.
Scrape a channel’s full video history:
{
"channelUrls": [
"https://www.youtube.com/@mkbhd",
"https://www.youtube.com/@LinusTechTips"
],
"maxVideosPerChannel": 500,
"includeComments": false
}
Or extract comments from specific videos:
{
"videoUrls": [
"https://www.youtube.com/watch?v=dQw4w9WgXcQ"
],
"maxComments": 1000,
"sortBy": "top"
}
Each video returns a structured object:
{
"videoId": "abc123XYZ",
"title": "The Best Smartphone of 2026",
"channelName": "Marques Brownlee",
"channelId": "UCBcRF18a7Qf58cCRy5xuWwQ",
"channelSubscribers": 19400000,
"viewCount": 4821053,
"likeCount": 142000,
"commentCount": 8421,
"duration": "PT18M43S",
"publishedAt": "2026-04-15T14:00:00Z",
"description": "After testing 12 phones this year...",
"tags": ["smartphone", "review", "2026", "tech"],
"thumbnailUrl": "https://i.ytimg.com/vi/abc123XYZ/maxresdefault.jpg",
"url": "https://www.youtube.com/watch?v=abc123XYZ",
"engagement": {
"likeToViewRatio": 0.0294,
"commentToViewRatio": 0.00175
}
}
| Field | Type | Description |
|---|---|---|
videoId | string | YouTube video identifier |
title | string | Video title |
channelName | string | Channel display name |
channelSubscribers | integer | Subscriber count at scrape time |
viewCount | integer | Total view count |
likeCount | integer | Like count |
commentCount | integer | Total comment count |
duration | string | ISO 8601 duration format |
publishedAt | string | ISO 8601 publish timestamp |
tags | array | Creator-assigned video tags |
engagement | object | Derived engagement rate metrics |
When comment extraction is enabled, each comment returns:
{
"commentId": "UgxZa8B3kD9mNpQ",
"videoId": "abc123XYZ",
"text": "Best review you've done in years. The comparison at 12:30 was exactly what I needed.",
"authorName": "TechEnthusiast99",
"likeCount": 847,
"replyCount": 23,
"publishedAt": "2026-04-16T09:15:00Z",
"isTopLevelComment": true
}
Output is available as JSON, CSV, or XLSX. Runs can be scheduled to monitor channel publishing cadence, track view velocity on new uploads, or pull fresh comment data on a recurring basis.
The actor uses Pay Per Event pricing at $0.003 per video and $0.001 per comment.
| Volume | Cost |
|---|---|
| 100 videos | $0.30 |
| 500 videos (full channel history) | $1.50 |
| 1,000 comments from a video | $1.00 |
| Monthly channel monitor (10 channels, weekly runs) | ~$1.20/month |
YouTube Channel Scraper on Apify →
Apify has a free tier for testing. Sign up here if you do not have an account. The actor connects to Apify’s scheduling and dataset APIs so you can automate channel monitoring and pipe results directly into analytics dashboards or data warehouses.