YouTube Channel Scraper - Subscribers, Views, Metadata
Pricing
from $1.50 / 1,000 results
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
Maintained by CommunityActor stats
1
Bookmarked
36
Total users
10
Monthly active users
8 hours ago
Last modified
Categories
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_linkswhen 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
- Open the Actor on Apify.
- Add channel IDs, URLs, handles, or names to
channels. - Apify Proxy is enabled by default for reliable runs.
- Run the Actor and export results from the Dataset as JSON, CSV, Excel, or via API.
Input
| Field | Type | Description |
|---|---|---|
channels | array | YouTube channel IDs, channel URLs, @handles, or channel names. |
timeoutSec | integer | HTTP timeout per request. Default: 18. |
maxChannels | integer | Safety limit for accepted channels in one run. Default: 5000, maximum: 10000. |
maxConcurrency | integer | Number of distinct channels scraped in parallel. Default: 8, maximum: 32. |
includeTags | boolean | Include tags, keywords, and external links when available. Default: false. |
enrichFromYouTube | boolean | Fetch additional public metadata from YouTube pages. Default: true. |
skipIncompleteResults | boolean | Skip channels when no useful metadata can be fetched. Default: true. |
proxyConfiguration | object | Apify 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 countswarnings: human-readable issues encountered during the runfailures: structured diagnostics for channels that could not be resolved or scrapedmeta.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 ApifyClientTOKEN = "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().itemsfor 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 MBto512 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.