YouTube Channel Details Scraper
Pricing
from $0.01 / 1,000 results
YouTube Channel Details Scraper
Turn any YouTube channel URL, @handle or UC… id into a clean structured profile — title, handle, description, subscriber and view counts, video count, country, join date, links, keywords, avatar and banner. Uses YouTube’s own InnerTube endpoint — no Data API key, no headless browser.
Pricing
from $0.01 / 1,000 results
Rating
0.0
(0)
Developer
Assia Fadli
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
YouTube Channel Details Scraper turns any YouTube channel link into a clean, structured profile.
Give it a channel URL, an @handle, or a UC... channel id — one at a time or a whole list — and
get back the numbers and metadata you actually need: display name, handle, description, subscriber
count, total views, video count, country, join date, external links, keywords, avatar and banner.
No YouTube Data API key. No headless browser. No login. It talks directly to YouTube's own internal InnerTube API (the same endpoints the YouTube website uses), so it's fast, lightweight and cheap to run.
Built for creators, analysts, agencies and developers who need dependable channel data without maintaining scraping infrastructure.
What you get
One dataset record per channel:
| Field | Description |
|---|---|
channelId | The channel's UC... id |
title | Channel display name |
handle | @handle, e.g. "@NASA" |
description | Full channel description |
subscribers | Subscriber count text, e.g. "15M subscribers" |
subscriberCount | Subscribers as a number (abbreviated values are approximate) |
videoCount | Video count text, e.g. "6,139 videos" |
videoCountInt | Video count as an exact number |
viewCount | Total view count text, e.g. "1,121,215,020 views" |
viewCountInt | Total views as an exact number |
country | Channel country, when the channel makes it public |
joinedDate | Join date text, e.g. "Joined Jun 3, 2008" |
keywords | Channel keywords/tags (space-separated string) |
isFamilySafe | Whether YouTube marks the channel family-safe |
availableCountryCodes | ISO codes where the channel is available |
avatar | Highest-resolution avatar URL |
banner | Highest-resolution banner URL |
links | External links as [{ title, url }] (resolved past YouTube's redirect) |
vanityUrl | The channel's vanity URL |
url | Canonical channel URL |
If a channel can't be read (doesn't exist, an invalid reference, or a temporary block), the actor
still writes a row — { "channel": "...", "error": "..." } — so the rest of the batch always
completes.
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
channels | array of strings | ✅ | ["https://www.youtube.com/@NASA", "MrBeast"] | One or more channel references: URLs (/@handle, /channel/UC..., /c/..., /user/...), bare @handle/name, or UC... ids |
channel | string | — | – | A single channel; merged with channels |
proxyCountryCode | string | — | US | Two-letter residential-proxy country code; leave empty to let Apify choose |
language | string | — | en | Interface language code (hl) for language-dependent text |
Example input
{"channels": ["https://www.youtube.com/@NASA", "MrBeast"],"proxyCountryCode": "US"}
Example output row
{"channelId": "UCLA_DiR1FfKNvjuUpBHmylQ","title": "NASA","handle": "@NASA","description": "NASA's mission is to pioneer the future in space exploration...","subscribers": "15M subscribers","subscriberCount": 15000000,"videoCount": "6,139 videos","videoCountInt": 6139,"viewCount": "1,121,215,020 views","viewCountInt": 1121215020,"country": null,"joinedDate": "Joined Jun 3, 2008","keywords": "nasa space iss shuttle astronauts planets earth rockets hubble","isFamilySafe": true,"availableCountryCodes": ["US", "GB", "DE"],"avatar": "https://yt3.googleusercontent.com/....=s900-c-k-c0x00ffffff-no-rj","banner": "https://yt3.googleusercontent.com/....=w2276-...-no-nd-rj","links": [{ "title": "nasa.gov", "url": "https://www.nasa.gov" },{ "title": "Instagram", "url": "https://www.instagram.com/nasa" }],"vanityUrl": "http://www.youtube.com/@NASA","url": "https://www.youtube.com/channel/UCLA_DiR1FfKNvjuUpBHmylQ"}
How it works
- Resolve the channel. If the input already contains a
UC...id (bare or inside a/channel/URL) it is used directly. Otherwise the actor POSTs toyoutubei/v1/navigation/resolve_urlto turn an@handle//c///user/reference into aUC...browse id. - Browse the channel. It POSTs to
youtubei/v1/browsewith the channel's browse id and readsmetadata.channelMetadataRenderer(title, description, keywords, avatar, vanity URL, available countries) and the page header (handle, subscribers, video count, banner). - Read the About panel. It follows the channel's "About" continuation to fetch exact subscriber / view / video counts, the join date, the country and the external links.
Requests are routed through Apify residential proxies when available, with an automatic fallback to a direct connection so a blocked or absent proxy never crashes the run. Each channel is fetched independently, so one failure never affects the rest of the batch.
Pricing
This actor uses Apify's pay-per-event model. You're charged once per successfully scraped channel
(channel-scraped); error rows are never billed, and the run stops automatically once your budget is
reached.
Notes & limitations
subscribersis returned as YouTube's own abbreviated display text (e.g."15M subscribers");subscriberCountis derived from it and is therefore approximate.viewCount/viewCountIntandvideoCount/videoCountIntare exact.countryandlinksare only present when the channel makes them public.- One row is emitted per input channel; if a channel can't be resolved the row is
{ channel, error }and the run continues. - YouTube can change its internal API at any time; this actor tolerates several response shapes but is not covered by an official API contract.
Use cases
- Enrich a list of creators with subscriber, view and video counts for research or outreach
- Build channel dashboards, catalogues or competitive-analysis datasets
- Monitor channel growth and metadata over time
- Feed clean channel metadata into downstream ML / data pipelines
Tech
Written in TypeScript on the Apify SDK. HTTP-only, so builds are fast and runs are cheap.
License
MIT © Assia Fadli