YouTube Channel Scraper - Subscribers, Videos, Email avatar

YouTube Channel Scraper - Subscribers, Videos, Email

Pricing

Pay per event

Go to Apify Store
YouTube Channel Scraper - Subscribers, Videos, Email

YouTube Channel Scraper - Subscribers, Videos, Email

Scrape YouTube channels by handle, URL or ID: subscribers, total views, video count, country, join date, about links, emails in description and latest videos with views, dates and duration. No API key. JSON, CSV, Excel. $2 per 1,000 channels.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Andres Garcia-Baquero Leon

Andres Garcia-Baquero Leon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Turn a list of YouTube channels into a clean table: available subscribers, total views, video count, country, join date, about-page links (Instagram, X, websites), emails published in the description and an optional sample from the channel's Videos tab, with available titles, view counts, relative publication text and durations. Fields may be missing and displayed counts may be rounded. Paste handles, URLs or channel IDs and export to JSON, CSV, Excel or via API. No user-supplied YouTube API key or login. Source rate limits and blocking still apply.

Price: $2 per 1,000 channels ($0.002 per channel), latest videos included. Channels that do not exist are never charged.

Why use it

YouTube Data APIThis Actor
Needs a Google Cloud project and API keyPaste channels and run
Official API quotaNo user API quota; upstream throttling and operational limits still apply
No about-page links or emailsLinks and emails from the about page
Video list needs extra callsLatest videos with views in the same row

Output example

Illustrative field excerpt, not a current live snapshot or a guarantee of field coverage.

{
"channelName": "Marques Brownlee",
"channelId": "UCBJycsmduvYEL83R_U4JriQ",
"handle": "@mkbhd",
"channelUrl": "https://www.youtube.com/@mkbhd",
"subscribers": 21300000,
"subscribersText": "21.3M subscribers",
"totalViews": 5689453522,
"videoCount": 1852,
"country": "United States",
"joinedDate": "2008-03-21",
"links": [{"title": "Twitter", "url": "https://twitter.com/MKBHD"}],
"emailsInDescription": ["business@MKBHD.com"],
"hasBusinessEmail": true,
"latestVideosCount": 1,
"latestAvgViews": 3800000,
"lastUploadText": "2d ago",
"latestVideos": [
{"videoId": "pOX1l1edBME", "title": "The Apple Watch Has a Problem", "views": 3800000,
"publishedText": "2d ago", "duration": "15:06", "url": "https://www.youtube.com/watch?v=pOX1l1edBME"}
]
}

Fields

FieldTypeDescription
channelName / handle / channelIdstringName, @handle and stable UC... ID
subscribersintegerSubscriber count (YouTube rounds it, e.g. 21.3M)
totalViewsinteger or nullLifetime views parsed from source display text; may be rounded
videoCountinteger or nullSource-displayed video count; may be rounded
subscribersText / totalViewsText / videoCountTextstring or nullOriginal display strings, retained to expose source precision
country / joinedDatestringFrom the about page
description / keywordsstringChannel description and tags
linksarrayExternal links shown on the channel
emailsInDescriptionarrayEmails written in the public description
hasBusinessEmailbooleanChannel has a hidden business email (sign-in required to reveal; not extracted)
latestVideosarrayvideoId, url, title, views, publishedText, duration, isLive
latestAvgViewsinteger or nullAverage over returned videos with a view count; inherits source rounding
lastUploadTextstring or nullPublication text of the first returned video, not an exact date or guaranteed latest upload
videosStatusstringok, partial, none_public, skipped or unavailable (see coverage below)
videosErrorstring or nullDiagnostic for reduced video coverage

How to use

  1. Add channels: @mkbhd, https://www.youtube.com/@NASA or UCBJycsmduvYEL83R_U4JriQ.
  2. Choose how many latest videos you want (0 for channel info only).
  3. Click Start.
  4. Export the Channels table to CSV, JSON, Excel or pull it via API.

Input

FieldDescription
channelsHandles, URLs or IDs. Only an omitted channels key runs a demo; explicit empty/null/invalid targets do not.
maxVideosPerChannel0-500 operational cap, default 30; 0 skips videos. Not a source-coverage guarantee. Included in the price.
maxConcurrencyParallel channels, default 3.
{ "channels": ["@mkbhd", "UCHnyfMqiRRG1u-2MsSQLbXA"], "maxVideosPerChannel": 10 }

Use cases

  • Influencer marketing: shortlist creators by real recent views (not just subscribers) and get their links and public contact emails.
  • Sponsorship sales / lead generation: build lists of channels in a niche with country, size and contact links.
  • Competitor tracking: schedule daily runs to follow subscribers, total views and upload cadence.
  • Research and datasets: channel-level data for media or creator-economy analysis.

Integrations

Zapier, Make, n8n, Google Sheets, Slack, Airbyte, LangChain and webhooks via standard Apify integrations. Use Apify Schedules for daily snapshots.

Pricing

Pay per event: $0.002 per channel returned (latest videos included) plus the tiny standard Apify actor-start fee. Not-found, invalid and failed channels are not charged. Result delivery uses Apify's atomic charged push and honors the result-event budget; the actor-start fee is separate.

FAQ

Do I need a YouTube API key? No.

Are counts exact? Displayed subscribers, total views, video counts and per-video views may be rounded. For example, 1.8K videos is converted to 1800, not an independently verified exact count. Original count strings are retained where available.

Do you extract the hidden business email? No. That email requires a signed-in account and captcha. We return emails that channels publish in their description plus the hasBusinessEmail flag.

Does it include Shorts and live streams? The video list is the channel's Videos tab (long-form). Shorts are not included in this version.

How far back do videos go? 500 is an operational maximum, not a tested guarantee that YouTube will expose 500 videos. Recovery is bounded to 50 pages and stops on exhausted or repeated tokens, blocked requests or missing configuration. Duplicate-only pages are followed if they have a new continuation token.

What happens with a wrong handle? Confirmed missing channels are listed under notFound; malformed inputs under invalidInput; blocked or unparseable channels under failed. Those entries incur no channel event; the actor-start fee may still apply.

Coverage and run diagnostics

ok means the available/requested video sample was recovered, not a complete account history. partial means some requested video data is missing; unavailable means the initial video list could not be recovered. skipped means video recovery was disabled (or private on TikTok). none_public requires a recognized empty list/message, never just absent JSON or an unknown layout; it describes the selected source surface, not proof that the entire account has no public content. Valid profile/channel metadata is still delivered and charged if optional videos fail. Missing metadata is not inferred. Video IDs are deduplicated before counting and averaging.

Aliases are deduplicated by stable userId/channelId under a delivery lock before the atomic result-event charge. Rows without a stable identity are reported as failed rather than charged. OUTPUT contains requested (unique normalized targets), scraped (accepted charged rows), notFound, failed, invalidInput, duplicates (input and identity aliases with duplicateOf), videoIssues, and chargeLimitReached. Invalid-only input writes OUTPUT before raising; mixed input processes valid targets and records invalid entries without substituting demos. The default demo is used only when the target key is absent. Reruns are separate runs and can charge again.

Troubleshooting

ProblemSolution
Channel in failedYouTube temporarily blocked the request; rerun those channels.
Channel in notFoundCheck the handle; the channel may be deleted or renamed.
videosStatus = partialVideo recovery was interrupted after some videos; available channel metadata is retained, not guaranteed complete. See videosError.
Run stopped earlyYour max cost per run was reached; raise it.

Only public data is collected. You are responsible for using it in compliance with YouTube's terms and privacy laws such as GDPR.