YouTube Channel Scraper - Subscribers, Views, Metadata avatar

YouTube Channel Scraper - Subscribers, Views, Metadata

Pricing

from $1.50 / 1,000 results

Go to Apify Store
YouTube Channel Scraper - Subscribers, Views, Metadata

YouTube Channel Scraper - Subscribers, Views, Metadata

Scrape public YouTube channel profiles, subscriber counts, video counts, view totals, and metadata without a YouTube Data API key.

Pricing

from $1.50 / 1,000 results

Rating

5.0

(1)

Developer

Inus Grobler

Inus Grobler

Maintained by Community

Actor stats

1

Bookmarked

36

Total users

10

Monthly active users

8 hours ago

Last modified

Share

Scrape public YouTube channel profiles, subscriber counts, view totals, video counts, and profile metadata without a YouTube Data API key.

Use this Actor to build influencer lists, monitor competitor channels, enrich lead databases, research sponsorship opportunities, and feed YouTube channel data into dashboards or CRM workflows.

What You Get

For each channel, the Actor can return:

  • Identity: channel_id, handle, name, description
  • Public metrics: subscriber_count, video_count, view_count, joined_date_text
  • Profile data: verified, channel_url, avatar_url, banner_url
  • Discovery metadata: tags, keywords, external_links when enabled and available
  • Run metadata: from_instance, scraped_at

The Actor accepts channel IDs, channel URLs, @handles, and channel names. For highest accuracy, use channel IDs or exact channel URLs.

Common Use Cases

  • Influencer discovery and vetting
  • Sponsorship and partnership prospecting
  • Competitor channel tracking
  • YouTube lead enrichment
  • Subscriber count monitoring
  • SEO and market research
  • BI dashboards and reporting pipelines

Quick Start

  1. Open the Actor on Apify.
  2. Add channel IDs, URLs, handles, or names to channels.
  3. Apify Proxy is enabled by default for reliable runs.
  4. Run the Actor and export results from the Dataset as JSON, CSV, Excel, or via API.

Input

FieldTypeDescription
channelsarrayYouTube channel IDs, channel URLs, @handles, or channel names.
timeoutSecintegerHTTP timeout per request. Default: 18.
maxChannelsintegerSafety limit for accepted channels in one run. Default: 5000, maximum: 10000.
maxConcurrencyintegerNumber of distinct channels scraped in parallel. Default: 8, maximum: 32.
includeTagsbooleanInclude tags, keywords, and external links when available. Default: false.
enrichFromYouTubebooleanFetch additional public metadata from YouTube pages. Default: true.
skipIncompleteResultsbooleanSkip channels when no useful metadata can be fetched. Default: true.
proxyConfigurationobjectApify Proxy or custom proxy settings. Enabled by default; customize it when you need a specific proxy setup.

Example input:

{
"channels": [
"UC_x5XG1OV2P6uZZ5FSM9Ttw"
],
"timeoutSec": 18,
"maxChannels": 1,
"maxConcurrency": 1,
"includeTags": false,
"enrichFromYouTube": false,
"skipIncompleteResults": true,
"proxyConfiguration": {
"useApifyProxy": true
}
}

Output

Results are stored in the default Apify Dataset. The key-value store record OUTPUT contains run metadata, totals, and warnings.

Example dataset item:

{
"record_type": "channel",
"input": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
"channel_id": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
"handle": "",
"name": "Google for Developers",
"description": "Subscribe to join a community of creative developers...",
"subscriber_count": 2500000,
"video_count": 6200,
"view_count": 310000000,
"joined_date_text": "Mar 23, 2007",
"verified": true,
"channel_url": "https://www.youtube.com/channel/UC_x5XG1OV2P6uZZ5FSM9Ttw",
"avatar_url": "https://yt3.googleusercontent.com/...",
"banner_url": "https://yt3.googleusercontent.com/...",
"latest_videos_count": 30,
"related_channels_count": 0,
"from_instance": "https://invidious.materialio.us",
"scraped_at": "2026-06-02T19:24:23Z"
}

Available fields vary by channel visibility and source availability. Some channels hide subscriber counts, country, links, or other public details.

The OUTPUT record includes:

  • totals: requested, scraped, and unique channel counts
  • warnings: human-readable issues encountered during the run
  • failures: structured diagnostics for channels that could not be resolved or scraped
  • meta.source_health: source availability checks used to prioritize sources during the run

API Usage

You can run the Actor from Python with the official Apify API client:

from apify_client import ApifyClient
TOKEN = "YOUR_APIFY_TOKEN"
ACTOR_ID = "thescrapelab/Apify-YouTube-Channel-Scraper-2-0"
client = ApifyClient(TOKEN)
run_input = {
"channels": [
"UC_x5XG1OV2P6uZZ5FSM9Ttw"
],
"timeoutSec": 18,
"maxChannels": 1,
"maxConcurrency": 1,
"includeTags": False,
"enrichFromYouTube": False,
"skipIncompleteResults": True,
"proxyConfiguration": {
"useApifyProxy": True
}
}
run = client.actor(ACTOR_ID).call(run_input=run_input)
if run is None:
raise RuntimeError("Actor run failed")
items = client.dataset(run["defaultDatasetId"]).list_items().items
for item in items:
print(item["channel_id"], item.get("name"), item.get("subscriber_count"))

Performance And Reliability

Apify Proxy is enabled by default. In testing, proxy-backed runs were significantly more reliable than direct no-proxy requests.

Recommended starting settings:

  • Standard runs: 256 MB, timeoutSec: 18, maxConcurrency: 8
  • Very small non-enriched internal tests can run at 128 MB, but enriched runs need more memory
  • Enriched large batches: 256 MB to 512 MB, depending on concurrency and volume

Recent stress test results: proxy-backed non-enriched runs completed cleanly at 128 MB for batches of 1, 5, and 10 channels. Enriched runs peaked above 128 MB, so 256 MB is the safer default for public client runs. A proxy-backed run with 1,000 requested dataset items completed in about 23 seconds at 512 MB with enrichment disabled and repeated known channel IDs. Real-world performance depends on channel uniqueness, proxy availability, source response times, and whether enrichment is enabled.

Pricing And Usage

The Actor writes one dataset item per successfully scraped channel. Channels that cannot be resolved or do not return useful metadata are reported in OUTPUT.failures and are not written as empty dataset rows when skipIncompleteResults is enabled.

Use maxChannels as a cost and safety guard when running large batches or when accepting channel lists from upstream systems.

Accuracy Notes

  • Channel IDs and exact channel URLs give the best matching accuracy.
  • Handles are usually reliable, but channel names can be ambiguous.
  • Public metrics can differ slightly between sources and can change over time.
  • If no metadata source returns useful public data, the Actor skips that channel and records a warning instead of outputting an empty row.

Limitations

  • Only public YouTube channel data is collected.
  • Private creator metrics such as revenue, watch time, retention, and audience demographics are not available.
  • Some channels hide public counts or profile fields.
  • Availability depends on public source uptime, YouTube page accessibility, and proxy/network conditions.

Support

If a run returns fewer results than expected, check the OUTPUT record for warnings and rerun with Apify Proxy enabled. For best results at scale, provide exact channel IDs or channel URLs.

Use responsibly and follow applicable platform terms and local laws.