Youtube Channel Statistics Scraper avatar

Youtube Channel Statistics Scraper

Pricing

Pay per event

Go to Apify Store
Youtube Channel Statistics Scraper

Youtube Channel Statistics Scraper

Extract public YouTube channel profiles, subscriber counts, total views, video counts, joined dates, links, and observation timestamps.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

Share

Collect public YouTube channel statistics from channel URLs, handles, or IDs. The Actor returns one typed profile per channel with subscriber count, total views, video count, joined date when displayed, profile links, and an observedAt timestamp.

Use it for one-time creator research or schedule repeated Apify runs to build a channel-monitoring history in your own spreadsheet, warehouse, or automation. No YouTube API key, login, or browser is required.

What does YouTube Channel Statistics Scraper do?

The Actor resolves these public channel identifiers:

  • handles such as @YouTube;
  • canonical channel URLs;
  • channel IDs such as UC_x5XG1OV2P6uZZ5FSM9Ttw;
  • legacy /user/... and /c/... channel URLs;
  • Apify request-list URL objects in startUrls.

It normalizes each input to the channel's public About page, reads structured channel data, deduplicates repeated inputs, and saves one record per channel. It does not scrape individual videos, comments, or private YouTube Studio data.

Who is this YouTube channel statistics tool for?

  • Creator partnership teams comparing public channel reach.
  • Influencer researchers enriching a known list of YouTube channels.
  • Marketing analysts exporting channel snapshots for reporting.
  • Developers adding public channel metadata to an application or data flow.
  • Operations teams scheduling repeated snapshots to observe changes.

The Actor is intentionally channel-focused. It avoids the larger and more expensive video-level output produced by all-in-one YouTube scrapers.

Why use this Actor?

  • Accept several common channel identifier formats.
  • Get normalized numbers and the exact source text together.
  • Keep the original input for traceability.
  • Receive a timestamp suitable for scheduled comparisons.
  • Export through the Apify dataset API as JSON, CSV, Excel, XML, or RSS.
  • Run without managing a YouTube Data API key or quota.
  • Fail clearly on malformed or unavailable channels instead of saving fake rows.

What data can you extract?

FieldMeaning
channelIdStable YouTube channel identifier.
channelNamePublic channel name.
handlePublic @handle, when available.
channelUrlCanonical public channel URL.
inputOriginal handle, ID, or URL supplied by the user.
descriptionPublic channel description, when displayed.
countryPublic channel country, when displayed.
subscriberCountNormalized subscriber count; abbreviated values are estimates.
subscriberCountTextExact subscriber text shown by YouTube.
totalViewCountNormalized total public view count.
totalViewCountTextExact total-view text shown by YouTube.
videoCountNormalized public video count.
videoCountTextExact video-count text shown by YouTube.
joinedDateISO date when YouTube displays a joined date.
joinedDateTextExact joined-date source text.
linksPublic channel links with titles and resolved destinations.
avatarUrlPublic channel avatar URL.
observedAtUTC time when the snapshot was collected.

Nullable fields are returned as null, not guessed. Subscriber values such as 46M subscribers normalize to 46000000, while the original text remains available for auditability.

How to run the Actor

  1. Open the Actor in Apify Console.
  2. Enter one or more channel URLs, @handles, or channel IDs in Channels.
  3. Optionally add URL objects under Channel URLs.
  4. Set Maximum channels to cap output.
  5. Click Start.
  6. Open the default dataset to preview or export the records.

A useful first input is:

{
"channels": [
"@YouTube",
"UC_x5XG1OV2P6uZZ5FSM9Ttw"
],
"maxItems": 2
}

Input parameters

channels

An array of strings. Every string may be a YouTube channel URL, a handle that starts with @, or a canonical channel ID that starts with UC.

startUrls

Optional request-list sources for integrations that already produce URL objects. Only public youtube.com channel URL shapes are accepted.

maxItems

Maximum unique channel records to save. The accepted range is 1–1,000 and the default is 100. Duplicate strings are removed before this limit is applied.

Output example

This abbreviated example reflects a real @YouTube local run. Counts naturally change over time.

{
"channelId": "UCBR8-60-B28hp2BmDPdntcQ",
"channelName": "YouTube",
"handle": "@YouTube",
"channelUrl": "https://www.youtube.com/@YouTube",
"input": "@YouTube",
"description": "YouTube's official YouTube channel",
"country": "United States",
"subscriberCount": 46000000,
"subscriberCountText": "46M subscribers",
"totalViewCount": 1205926465,
"totalViewCountText": "1,205,926,465 views",
"videoCount": 1534,
"videoCountText": "1,534 videos",
"joinedDate": null,
"joinedDateText": null,
"links": [
{
"title": "Instagram",
"url": "https://instagram.com/youtube"
}
],
"avatarUrl": "https://yt3.googleusercontent.com/...",
"observedAt": "2026-08-04T02:54:06.532Z"
}

How much does it cost to extract YouTube channel statistics?

This is a pay-per-event Actor. Each run has one start event and each saved channel profile has one item event. Failed, rejected, duplicate, or empty inputs do not produce an item charge.

The source-controlled price is a $0.014 start event plus tiered item pricing. At the BRONZE tier, an item is $0.002256. For example:

  • 1 channel: $0.016256;
  • 10 channels: $0.03656;
  • 100 channels: $0.2396.

Apify platform usage is included in PPE billing up to the applicable limits. The Console pricing panel is the final source of truth for your subscription tier and current prices.

Schedule channel monitoring

A run is a point-in-time observation, not a hosted historical database. To monitor channels:

  1. Save a task with the stable channel list.
  2. Schedule it daily, weekly, or monthly in Apify Console.
  3. Send each dataset to Google Sheets, a webhook, or your warehouse.
  4. Compare rows by channelId and sort snapshots by observedAt.
  5. Calculate subscriber, view, or video-count deltas downstream.

This preserves transparent source observations without claiming to provide YouTube's private historical analytics.

Export to a spreadsheet or data pipeline

Use the dataset export menu for CSV or Excel, or connect a task run to an Apify integration. Common workflows include:

  • append snapshots to Google Sheets;
  • trigger a webhook when a scheduled run finishes;
  • load JSON into BigQuery, Snowflake, or PostgreSQL;
  • enrich an existing creator CRM by stable channelId;
  • compare a campaign shortlist before and after activation.

Use the Apify API with cURL

Start a synchronous run and return dataset items:

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~youtube-channel-stats-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"channels":["@YouTube"],"maxItems":1}'

Keep tokens in environment variables or a secret manager. Do not commit them to source control.

Use the Apify API with JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/youtube-channel-stats-scraper').call({
channels: ['@YouTube', 'UC_x5XG1OV2P6uZZ5FSM9Ttw'],
maxItems: 2,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Use the Apify API with Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/youtube-channel-stats-scraper').call(
run_input={'channels': ['@YouTube'], 'maxItems': 1}
)
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

Use with MCP and AI agents

Add the Actor tool to Claude Code:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/youtube-channel-stats-scraper"

Claude Desktop setup

Add this server configuration to Claude Desktop:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/youtube-channel-stats-scraper"
}
}
}

Cursor setup

Open Cursor MCP settings and add the same apify server URL shown above.

VS Code setup

Add the same HTTP MCP server URL to your VS Code MCP configuration, then select the YouTube Channel Statistics Scraper tool in agent mode.

Example prompts:

  • “Get current public statistics for @YouTube.”
  • “Collect snapshots for these channel IDs and return a comparison table.”
  • “Export these creator channel profiles with subscribers and total views.”

Reliability and retry behavior

The Actor uses the public channel About surface and structured page data. It retries only transient network, HTTP 429, and temporary server failures with a bounded delay. It does not repeatedly retry invalid URLs or missing channels.

A run fails if a requested channel cannot be resolved. This prevents a partial success from silently hiding a malformed monitoring list. Split uncertain inputs into separate tasks if independent failure handling is important.

Limits and known caveats

  • Only public channel-level data is supported.
  • YouTube may abbreviate subscriber counts; normalized values are then estimates.
  • Hidden country, joined date, description, links, or counts remain null.
  • The Actor does not return private analytics, revenue, audience demographics, individual videos, comments, email addresses, or historical snapshots.
  • YouTube can change its public page structure; recognizable missing data causes an explicit error rather than an empty record.
  • A maximum of 1,000 unique channels is accepted per run.

Responsible use and legality

This Actor collects information displayed publicly on YouTube channel pages. You are responsible for your use case, local law, contractual obligations, privacy rules, and YouTube's applicable terms. Do not use the output for spam, harassment, discrimination, or attempts to infer private information.

Collect only what you need, secure exported datasets, set appropriate retention periods, and honor valid deletion or access requests where applicable.

Troubleshooting

Why did my channel input fail?

Confirm the input is a public youtube.com channel URL, an @handle, or a canonical UC... channel ID. Video, playlist, Shorts, and search-result URLs are intentionally rejected.

Why is joinedDate or subscriberCount null?

YouTube does not display every field for every channel. Check the paired source text field. The Actor does not invent hidden values.

Why are two inputs producing one row?

Exact repeated input strings are deduplicated before collection. Use the stable channelId in downstream systems to merge equivalent handle and URL forms.

Can it search for channels by keyword?

No. This Actor enriches channels you already know. Use YouTube Channel Search Scraper for keyword-based channel discovery, then pass its channel URLs here.

FAQ

Does it require a YouTube API key?

No. It reads publicly displayed channel information.

Can I run it on a schedule?

Yes. Save an Apify Task, attach a schedule, and store or export each timestamped snapshot for downstream comparison.

Does it download videos or images?

No. It returns metadata and the public avatar URL; it does not download media.

Can I process private or members-only analytics?

No. The Actor has no login input and does not access YouTube Studio.

What counts as one item?

One accepted, successfully parsed channel profile saved to the default dataset. Duplicates and invalid inputs do not become dataset items.

Support

If a public channel that matches the documented input formats fails, open an issue from the Actor page with the input shape, run ID, and non-sensitive error message. Do not include API tokens or private customer data.