YouTube Channel Statistics Scraper avatar

YouTube Channel Statistics Scraper

Pricing

from $3.50 / 1,000 channel statistics

Go to Apify Store
YouTube Channel Statistics Scraper

YouTube Channel Statistics Scraper

Bulk enrich known YouTube channels with public statistics only — subscribers, views, video count, joined date, country. No recent videos. Cookieless, MCP-ready.

Pricing

from $3.50 / 1,000 channel statistics

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Share

What does YouTube Channel Statistics Scraper do?

Bulk-enrich known YouTube channels with lean public statistics only: subscribers, lifetime views, video count, joined date, country, handle, and avatar. Paste channel URLs, @handles, or /channel/UC… IDs and get one predictable dataset row per channel — focused on channel counters rather than video catalogs.

This Actor is for analysts and AI agents that already know which channels matter and need a fast size/reach check before they spend on full profile + video scrapes.

Best fit for this Actor

  • Enrich a CRM or watchlist of known YouTube channels with public counters.
  • Compare subscriber / view / video totals across a short list before outreach.
  • Feed MCP or enrichment pipelines when you need stats, channel-counter catalogs.

For profile plus recent videos/Shorts, use YouTube Channel Scraper. For keyword channel discovery, use YouTube Channel Search Scraper. For video lists only, use YouTube Channel Videos Scraper. For SocialBlade ranks/earnings estimates, use a SocialBlade-oriented Actor instead.

Practical scenario

A media buyer pastes @Apify and https://www.youtube.com/@GoogleDevelopers, keeps includeDescription on, and runs with the default Residential proxy. The Actor returns one stats row each: subscriberCount, viewCount, videoCount, joinedDateText, and country when YouTube exposes them. A fake handle finishes SUCCEEDED with VALID_EMPTY and keeps channel-stats at zero. Channels that clear the size bar can later be sent to the full channel scraper for video listings.

Quick start input

{
"channelUrls": ["@Apify"],
"maxChannels": 2,
"includeDescription": true,
"providerMode": "auto"
}

channelUrls accepts @handles, plain handles, /channel/UC… IDs, /c/ or /user/ paths, and full YouTube channel URLs. Duplicates (URL vs handle for the same channel) are collapsed before any fetch.

Input reference

FieldTypeWhat it controls
channelUrlsarrayKnown channel URLs, handles, or UC IDs. Prefill @Apify. Max 100 unique after dedupe.
maxChannelsintegerHard cap after dedupe. Default 100. Prefill 2 for cheap quality tests.
includeDescriptionbooleanInclude a short about-text preview. Default true.
providerModeenumauto (native then providers), direct, or providerOnly.
country / languagestringYouTube gl / hl locale. Defaults US / en.
proxyConfigurationobjectApify proxy for native fetches. Residential by default.

What data you receive

One dataset item is one public channel statistics row. The contract is stats-only (sibling Actors cover video listings).

{
"input": "@Apify",
"channelId": "UCTgwcoeGGKmZ3zzCXN2qo_A",
"channelUrl": "https://www.youtube.com/channel/UCTgwcoeGGKmZ3zzCXN2qo_A",
"handle": "@Apify",
"title": "Apify",
"description": "Full-stack web scraping and automation platform...",
"subscriberCount": 29200,
"subscriberCountText": "29.2K subscribers",
"viewCount": 13548406,
"viewCountText": "13,548,406 views",
"videoCount": 288,
"videoCountText": "288 videos",
"joinedDateText": "Joined Jan 4, 2017",
"country": "Czechia",
"isVerified": false,
"avatarUrl": "https://yt3.googleusercontent.com/...",
"keywords": ["scraping", "automation"],
"source": "youtube",
"provider": "youtube",
"scrapedAt": "2026-01-15T12:00:00.000Z"
}
FieldMeaning
subscriberCount / viewCount / videoCountParsed public counters
joinedDateText / countryPublic About fields when YouTube shows them
source / providerProvenance: youtube, scrapecreators, or sociavault
scrapedAtISO-8601 collection time

OUTPUT and RUN_SUMMARY in the default key-value store hold outcome, itemsPushed, channelsFound, and chargedEventCounts.

Use through the API

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~youtube-channel-statistics-scraper/runs" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"channelUrls":["@Apify"],"maxChannels":1}'

Download rows as JSON, CSV, Excel, or HTML from the Dataset tab.

Use with AI agents through Apify MCP

Enrich these known YouTube channels with public statistics only: @Apify. Return channelId, handle, subscriberCount, viewCount, videoCount, joinedDateText, country, and source. Keep the job to channel stats (use sibling Actors for video catalogs).

Connect via https://mcp.apify.com. Read OUTPUT.outcome and itemsPushed to interpret empty datasets. Cost signal: about $0.0035 per found channel plus platform usage. Missing channels surface as VALID_EMPTY and keep channel-stats at zero.

Connect the workflow

Pricing

This Actor uses Pay per event plus Apify platform usage. The live Pricing tab is the current source of truth for billing details.

EventPriceWhen it charges
apify-actor-start$0.00005Once per run
channel-stats$0.0035Per persisted valid statistics row

Billing unit: 1 channel-stats event per persisted valid statistics row. Worked example: 1 row (@Apify prefill) ≈ $0.0035 in result events plus a few seconds of Apify platform usage (passed through). 10 rows ≈ $0.035 in channel-stats if all resolve. Invalid inputs and missing channels keep channel-stats at zero.

How it works

  1. Normalize and deduplicate channel URLs, @handles, and UC IDs.
  2. Fetch the public YouTube /about page and parse ytInitialData (stats only).
  3. On native block or empty parse, fall through to owner-managed ScrapeCreators, then SociaVault.
  4. Charge channel-stats for found rows, then write the dataset item.
  5. Always write OUTPUT + RUN_SUMMARY with an honest outcome from this set:
COMPLETE | PARTIAL | VALID_EMPTY | INVALID_INPUT | UPSTREAM_FAILED | CONFIG_ERROR

Best results tips

  • Prefer @handles or /channel/UC… IDs over ambiguous vanity paths.
  • Keep batches small for MCP canaries; raise maxChannels only when you need bulk enrichment.
  • Leave providerMode on auto so Residential native fetches can fall back to providers when YouTube serves a consent or empty page.

Recovery and scope notes

  • Native YouTube HTML can be intermittent; auto recovers via owner-managed providers. Prefer providerMode: "auto" when Residential returns an empty About page.
  • Public About fields such as joinedDateText and country appear only when YouTube shows them on the About surface.
  • This Actor's dataset contract is channel statistics; use sibling Actors when you need recent videos.
  • Recovery: retry with providerMode: "auto", confirm the handle/URL resolves in a browser, and open an Issue and include the Console run URL when providers also return empty.

Builder's note

I built this as a stats-only SKU after learning that most channel enrichment jobs only need public counters. I found that YouTube's About ytInitialData already carries subscribers, views, videos, joined date, and country for many channels, so one HTTP About fetch per target is enough and provider calls stay as recovery. My goal was a predictable mid-pack price that stays distinct from the fuller channel scraper that bills separately for video rows.

This Actor collects publicly visible YouTube channel metadata only. It runs cookieless against public pages and optional owner-managed providers; it does not use a Google OAuth token or the official YouTube Data API. You are responsible for complying with YouTube Terms of Service, applicable privacy laws, and your own data-use policies. Use results for legitimate research, enrichment, and monitoring workflows.

YouTube is a trademark of Google LLC. This independent Actor is not affiliated with, associated with, or endorsed by YouTube or Google.

FAQ

Does this return recent videos? Video listings stay with youtube-channel-scraper and youtube-channel-videos-scraper. This Actor returns channel statistics.

Do I need a YouTube API key? The Actor is cookieless and uses public page data plus optional owner provider fallbacks.

What if a channel is missing? The Actor returns SUCCEEDED with VALID_EMPTY for that input and keeps channel-stats at zero.

Support

Open an Issue on the Actor page with the run ID and input (redact secrets). Custom enrichment workflows are available on request.