YouTube Channel Info Scraper - Stats and Links avatar

YouTube Channel Info Scraper - Stats and Links

Pricing

from $1.00 / 1,000 channel profiles

Go to Apify Store
YouTube Channel Info Scraper - Stats and Links

YouTube Channel Info Scraper - Stats and Links

Export public YouTube channel subscribers, lifetime views, country, joined date and external links. Discover creators by keyword and compare recent upload activity with average views. Recent statistics included; business email is a prompt-presence boolean only.

Pricing

from $1.00 / 1,000 channel profiles

Rating

0.0

(0)

Developer

Sumitr Mardy

Sumitr Mardy

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Categories

Share

YouTube Channel Info Scraper

Export public YouTube channel subscribers, lifetime views, country, joined dates and external links. Discover creators by keyword and compare their recent long-form upload activity. Not affiliated with YouTube or Google.

No email addresses. hasBusinessEmail only records whether YouTube presents the sign-in-for-business-email prompt. It does not reveal or verify an address. This Actor never signs in or attempts the email CAPTCHA; email-like addresses in public description text are redacted and mailto/email-containing links are omitted.

Quick start

{
"channels": ["@MrBeast", "@veritasium"],
"includeRecentStats": true
}

Discovery:

{
"searchQueries": ["home workout"],
"maxChannelsPerSearch": 40,
"minSubscribers": 10000,
"includeRecentStats": true
}

For video listings, search, Shorts and video details use YouTube Scraper. For threads and replies use YouTube Comments Scraper. This Actor focuses on channel profiles and activity.

Input

FieldDefaultMeaning
channels[]Public @handles, youtube.com/@handle, /channel/UC…, /c/…, /user/… or video URLs. Unicode handles accepted. Bare video IDs are not accepted.
searchQueries[]Keywords searched with the Channels type filter, up to 20 queries.
maxChannelsPerSearch201–500 new saved channels per query after subscriber filtering and global dedupe.
includeRecentStatstrueRead first Videos-tab page, up to 30 public long-form uploads. No extra event price.
minSubscribers0Filter using the rounded subscriber count from About. Lower channels omitted and not charged.
languageenSearch locale. About/date/count and Videos requests use English for stable parsing.
countryUSClient/search country, not a filter on creator country.

Provide channels or searchQueries; at most 1,000 combined input entries. HTTP and HTTPS YouTube URLs are normalized; credentials, non-YouTube hosts and unsupported URL forms produce free invalid_input rows. Video URLs resolve through public next → video owner data, never /player.

Channel IDs deduplicate globally across handles, URLs, videos and search queries within the running process. Direct inputs run first; subsequent searches do not save or charge those same channels again. Search position counts saved qualifying rows. A search inspects at most max(100, 5×maxChannelsPerSearch), capped at 2,500 candidates; filters or exhausted results can produce fewer than the requested maximum.

Output

One row per unique successfully saved channel. Every success/failure row always has these same 35 keys, never null. Missing text is empty, numeric values 0 and arrays [].

FieldType
inputIndexnumber
inputstring
sourcestring
querystring
channelIdstring
handlestring
urlstring
titlestring
descriptionstring
subscribersnumber
subscribersTextstring
viewsnumber
viewsTextstring
videosnumber
videosTextstring
joinedDatestring
countrystring
linksarray
linkDomainsarray
hasBusinessEmailboolean
keywordsarray
avatarstring
bannerstring
isVerifiedboolean
recentVideosCountnumber
avgViewsRecentnumber
medianViewsRecentnumber
lastUploadTextstring
daysSinceLastUploadnumber
recentStatsIncludedboolean
positionnumber
statusstring
subStatusstring
errorstring
scrapedAtstring

links contains objects with title and url; linkDomains are unique external hostnames. Country is the creator-declared country and may be absent. Empty links or country are normal. Joined date is ISO YYYY-MM-DD when supplied. Subscriber counts are rounded as YouTube displays them; lifetime views come from the full About view-count text and are exact as reported there, not a real-time independent measurement. Raw text remains in subscribersText, viewsText and videosText. Hidden/missing counts become 0; inspect raw text before treating 0 as a confirmed zero.

recentVideosCount is the size of the first public Videos-tab page, at most 30. avgViewsRecent and medianViewsRecent use displayed video counts, which may be rounded. Shorts are excluded. Live-only/Shorts-only channels or an absent Videos tab can have zero recent long-form rows. With includeRecentStats=false, recent fields stay empty/zero and recentStatsIncluded=false. With the option enabled, recentStatsIncluded=true even if the channel has no available Videos tab. If an available recent-stat request fails, the channel becomes a free failure rather than silently selling incomplete enrichment.

lastUploadText preserves wording such as 3 days ago. daysSinceLastUpload is approximate: weeks×7, months×30.4375, years×365.25; hours/minutes become fractional days. A value 0 can mean today or unavailable, so inspect lastUploadText. This is not a full upload-history or engagement-rate analysis. Avatar/banner and verification reflect available public metadata.

Status and pricing

status / subStatusMeaningChannel event
ok / channelUnique profile saved, optional recent stats includedCharged
no_results / no_resultsA search produced no new qualifying channelsFree
failed / invalid_inputUnsupported input or configurationFree
failed / not_found, terminatedChannel unavailableFree
failed / http_NNN, blocked, parse_error, network_errorPublic data could not be fetched/extractedFree
failed / free_work_limit, cost_limit_reachedWork or spending cap stopped remaining workFree

Per saved channel: FREE $0.002, BRONZE $0.0015, SILVER $0.0012, GOLD and higher $0.001. Recent stats are included at the same rate. Default Actor start is $0.00005 per GB, minimum one event. Failed, empty, duplicate and filtered channels have no channel event; the start fee still applies. Platform usage is included, with no separate URL fee or dataset-item event.

Reliability and limits

The measured 256 MB spike completed 115/115 About checks over 110 distinct channel IDs: 50 handles, 5 direct-ID rechecks and 60 keyword discoveries. Country filled 87/115, links 79/115 and joined date 115/115; optional missing fields were retained correctly. Discovery used 4 pages. One expected fake-handle HTTP404; no challenge, proxy or retry. Conservative recent-mode cost bound $0.036943/1,000 by assigning all run costs to just the 65 recent-stat rows; see published launch records for product validation. This sample is not a guaranteed success rate or evidence of superiority over a competitor.

Public YouTube JSON can change. About continuation is taken only from the header engagement-panel endpoint; discovery continuation only from the last continuation item. No cookies, API key, sign-in, business email reveal, CAPTCHA solving, residential proxy or player endpoint. At most 3 channels concurrently; each channel's requests are sequential. Ordinary transient failures have bounded retries and one default datacenter fallback. A real bot/consent challenge stops the host immediately with no IP rotation around it. Independent deadlines and a free-work loss guard bound unsuccessful searches.

Deduplication state is in memory. Restart/migration can reprocess work; use channelId for downstream dedupe and prefer moderate batches when exact restart behavior matters. It is not a transactional exactly-once service. Public description/link redaction can remove email-like strings; no contact-address product is provided.

Public presets

The profile preset disables recent stats for quicker metadata-only exports; the activity/discovery presets enable them. To schedule repeated monitoring, duplicate a task, save your channels/keywords, then create an Apify Console schedule for that saved task and timezone. This Actor does not create schedules automatically.

API examples

curl -X POST "https://api.apify.com/v2/acts/sumitr_mardy~youtube-channel-info/run-sync-get-dataset-items?format=json" \
-H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
-d '{"channels":["@MrBeast","@veritasium"],"includeRecentStats":true}'
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("sumitr_mardy/youtube-channel-info").call(
run_input={"searchQueries": ["home workout"], "maxChannelsPerSearch": 40,
"minSubscribers": 10000, "includeRecentStats": True}
)
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row["title"], row["subscribers"], row["avgViewsRecent"], row["status"])

Use asynchronous runs for large batches/searches and download the dataset after completion.

Use it from AI agents (MCP)

Hosted OAuth:

{"mcpServers":{"channels":{"url":"https://mcp.apify.com/?tools=sumitr_mardy/youtube-channel-info"}}}

Hosted Bearer alternative:

{"mcpServers":{"channels":{"url":"https://mcp.apify.com/?tools=sumitr_mardy/youtube-channel-info","headers":{"Authorization":"Bearer YOUR_APIFY_TOKEN"}}}}

Stdio:

{"mcpServers":{"channels":{"command":"npx","args":["-y","@apify/actors-mcp-server","--tools","sumitr_mardy/youtube-channel-info"],"env":{"APIFY_TOKEN":"YOUR_APIFY_TOKEN"}}}}

Ask for public channels or a niche keyword, a subscriber threshold and whether recent long-form activity matters. Inspect status, raw count text and optional-field absence. Do not request email addresses or interpret the business-email prompt as a revealed contact. Combine with YouTube Scraper and YouTube Comments Scraper for public videos and discussions.