September 23, 2026 · 13 min read
YouTube Email Scraper: 533 of 534 Runs Succeeded (2026)
A thousand channel records cost $2.00 per 1,000 results on the free plan, returning 16 output fields including channel metadata, subscriber counts, and deduplicated emails harvested across channel descriptions, Instagram, TikTok, and Linktree bios. The tool extracts visible, obfuscated, and linked email addresses through unauthenticated public requests without browser sessions or cookies. It is built for outbound sales teams, talent agencies, and partnership managers who need direct inboxes from public profiles. It is not for anyone who needs emails hidden behind YouTube's click-to-reveal button, which requires authentication and is omitted from the output.
Try it before you read further. Apify's free plan includes $5.00 of usage every month with no credit card, enough for up to 2,500 results at $0.002 each before platform usage. Open YouTube Email Scraper on Apify and run the prefilled example.
How reliable is YouTube Email Scraper in production?
Across the last 30 days of public runs on the Apify platform, YouTube Email Scraper recorded 534 runs with the following outcomes.
| Outcome | Runs | Share |
|---|---|---|
| Succeeded | 533 | 99.8% |
| Failed | 0 | 0.0% |
| Aborted by the user | 1 | 0.2% |
| Timed out | 0 | 0.0% |
| Total | 534 | 100.0% |
No run failed or timed out in the last 30 days; the one run that did not finish was stopped by its user. Keep standard retries for your own downstream steps rather than building defensive fallbacks around the scrape itself.
What does it cost to run YouTube Email Scraper?
Each result costs $0.002 on Apify's free plan, which is $2.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.
| Apify plan | Per result | Per 1,000 results |
|---|---|---|
| FREE | $0.002 | $2.00 |
| BRONZE | $0.00167 | $1.67 |
| SILVER | $0.00133 | $1.33 |
| GOLD | $0.001 | $1.00 |
| PLATINUM | $0.001 | $1.00 |
| DIAMOND | $0.001 | $1.00 |
Worked example: collecting 10,000 results costs $20.00 in result charges before run-start fees and platform usage. No run failed or timed out in the last 30 days, so the list price is a fair budget; keep a retry in place all the same.
The size of channelUrls is the single control driving your dataset size and resulting invoice. Optional toggles like followExternalProfiles inspect external bios without incrementing dataset item counts, as output remains exactly one record per channel. To evaluate data suitability at minimal expense, run the example input capped at 5 external profiles for 1 channel, which costs at most $0.01 in result charges.
How do you run YouTube Email Scraper from the API?
The schema marks 1 of its 4 controls as required: channelUrls. Nothing in the payload below is illustrative. Those are the schema's prefilled defaults for YouTube Email Scraper, so the request works once your token is in place.
Call the synchronous endpoint to start a run and receive dataset items in one request:
curl -X POST "https://api.apify.com/v2/acts/crawlerbros~youtube-email-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"channelUrls":["https://www.youtube.com/@apify"],"followExternalProfiles":true,"maxExternalPerChannel":5,"autoProxyFallback":true}'
The same run from Python, using the official client:
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"channelUrls": [
"https://www.youtube.com/@apify"
],
"followExternalProfiles": True,
"maxExternalPerChannel": 5,
"autoProxyFallback": True
}
run = client.actor("crawlerbros~youtube-email-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
And from Node.js:
import { ApifyClient } from 'apify-client'
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
const input = {
"channelUrls": [
"https://www.youtube.com/@apify"
],
"followExternalProfiles": true,
"maxExternalPerChannel": 5,
"autoProxyFallback": true
}
const run = await client.actor('crawlerbros~youtube-email-scraper').call(input)
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)
Because the call is synchronous, your client waits for the whole run. Keep it for exploration. For scheduled work, start the run without waiting and collect the dataset afterwards, so network trouble costs you a retry rather than the results.
Which YouTube Email Scraper inputs matter, and which can you skip?
The only mandatory parameter is channelUrls, which takes strings formatted as handles, channel IDs, or standard URLs. Leaving followExternalProfiles enabled allows external bio expansion, while maxExternalPerChannel limits how many profiles are fetched per creator. Keep autoProxyFallback enabled unless you must strictly prevent proxy consumption.
channelUrls(array): List of YouTube channel URLs to scan for contact emails. Supports @handle, /channel/UC..., /c/name, /user/name formats, and plain @handle shortcuts.followExternalProfiles(boolean): When true, the scraper also opens external profile links advertised on the channel (Instagram, TikTok, Linktree) to discover emails hidden in their bios. Default:true.maxExternalPerChannel(integer): Upper bound on how many external profile URLs are fetched per channel (keeps runs cheap and predictable). Default:5.autoProxyFallback(boolean): Transparently retry a fetch via Apify residential proxy when the direct request looks like a block page (empty body or unusually small response). Saves credits by only using the proxy when needed. Default:true.
What does YouTube Email Scraper return?
Output items deliver complete public channel metadata paired with an emails array and a sources list indicating the origin URL and type for every discovered address. The scraper deliberately does not provide private account data, phone numbers, or click-to-reveal emails that require user login. Empty fields are omitted rather than returned as null values.
channelUrl- canonical URL of the scraped About pagechannelId- YouTube's stable channel identifier (UC...)channelHandle- the@handleform of the channelchannelName- human-readable channel titlechannelDescription- full About description textsubscriberCount- resolved subscriber count (matches YouTube's on-screen value)emails- deduplicated list of every email discovered for the channelsources- one entry per email with the exact URL and source typeexternalLinks- advertised links from the About page (not all are crawled)scrapedAt- ISO-8601 timestamp of this runsourceType: Where the email came fromchannel_description: The channel's About description.channel_external_link: An email embedded directly in an advertised link.instagram_bio: Creator's Instagram profile (bio text or metadata).tiktok_bio: Creator's TikTok profile.linktree: A Linktree hub linked from the channel.
These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.
How do you build the workflow end to end?
Open YouTube Email Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.
- Assemble an array of target creators using handles, UC IDs, or URLs, and pass them to channelUrls.
- Set followExternalProfiles to true and maxExternalPerChannel to 3 to discover external bio links without unnecessary network requests.
- Leave autoProxyFallback enabled so residential proxy routing activates only when a direct fetch receives a small or blocked response.
- Execute a test run on a single channel and inspect the returned item to verify the channelId, channelName, and externalLinks fields appear.
- Inspect the emails and sources arrays to confirm addresses are parsed and attributed to valid source types such as channel_description or instagram_bio.
- Filter out any emitted records containing type set to youtube_email_scraper_error before routing data downstream, logging the reason field for review.
- Scale up channelUrls with your full target list once record structure and attribution fields are validated.
How do you apply it? Three worked playbooks
These are YouTube Email Scraper's own documented use cases, each worked through as an operating pattern rather than a description.
Use case 1: Influencer outreach
Outcome: Build a ranked contact list for a shortlist of creators in a niche
Configure: Set channelUrls to the niche shortlist, followExternalProfiles to true, maxExternalPerChannel to 3, and autoProxyFallback to true.
Working method: Start with a single niche handle to verify the bio parsing. Run the complete array of channelUrls, then sort the output by subscriberCount descending while keeping only records that include an emails array.
Deliverable: A spreadsheet or JSON dataset ranked by subscriber count with creator names, channel handles, deduplicated emails, and direct contact sources.
Stop condition: Stop if more than 3 consecutive channels return a fetch_failed error record, indicating potential IP blocks on external profiles.
Use case 2: Brand partnership research
Outcome: Harvest business emails from your competitor's sponsored-creator roster
Configure: Populate channelUrls with the channels identified from competitor sponsorships, set followExternalProfiles to true, and set maxExternalPerChannel to 5.
Working method: Execute the batch across the roster. Inspect sources for entries where sourceType is instagram_bio or linktree to find commercial inquiry inboxes not posted directly on the YouTube channel.
Deliverable: A partnership directory mapping competitor-sponsored channels to specific business management and PR email addresses.
Stop condition: Stop if the output returns zero emails across 20 populated channels, indicating external bio links are failing to resolve.
Use case 3: Agency sourcing
Outcome: Quickly see which creators publish a reachable inbox vs. hide behind management
Configure: Provide your evaluation list in channelUrls, enable followExternalProfiles as true, set maxExternalPerChannel to 3, and keep autoProxyFallback enabled.
Working method: Process the candidate creator list in scheduled batches. Split output records into two buckets: channels returning direct inboxes in the channel_description versus those routing through third-party management domains or lacking emails.
Deliverable: A segmented creator roster separating immediately reachable talent from creators requiring representation agency outreach.
Stop condition: Stop if output records contain malformed channelUrl formats preventing channel identity resolution.
What breaks, and how do you design around it?
- Click-to-reveal emails on YouTube are not supported. YouTube's "View email address" button requires a logged-in session; this actor is login-free by design.
- Instagram login walls occasionally show for certain regions or IP ranges. When this happens the scraper skips that bio and keeps the emails it already found elsewhere.
- TikTok region restrictions can replace a profile with an interstitial page; the scraper still extracts whatever metadata the interstitial exposes.
- Channels without a public About page (some custom-branding and music-artist channels) return a
parse_failederror record. - Subscriber counts reflect YouTube's publicly displayed rounded value (e.g.
12K→12000). Exact counts below YouTube's display threshold are not available.
When creators gate their contact info behind YouTube's native login button, this scraper intentionally skips them; pair this tool with manual outreach or alternative social directories for those specific creators. If Instagram or TikTok display regional login interstitials, inspect externalLinks in the payload to dispatch custom downstream crawls for those missed links. When an invalid handle or closed channel is scanned, handle the resulting error record without aborting your pipeline.
When should you not use YouTube Email Scraper?
Do not use this Actor if your target list consists entirely of channels that publish contact details solely behind YouTube's authenticated "View email address" button. Because the tool runs unauthenticated HTTP requests, it will return zero emails for those creators. If you need to discover relevant creators by keywords or topics first rather than extracting contact information from a known list, run YouTube Search Scraper to build your pipeline. If your objective is cataloging complete video metadata, view counts, and channel statistics rather than sourcing emails, use YouTube Channel Scraper instead.
What should you check before trusting the output?
- Drop or flag records where the emails array is absent or empty, which occurs when a channel publishes no text-advertised contacts.
- Halt execution or trigger an alert if the count of items with type set to youtube_email_scraper_error exceeds 10% of total processed channels.
- Verify that every entry in sources contains a non-empty sourceUrl and a recognized sourceType like channel_description, channel_external_link, instagram_bio, tiktok_bio, or linktree.
- Confirm subscriberCount matches the expected numeric magnitude and is not parsed as null or zero on active creators.
- Check that scrapedAt is a valid ISO-8601 timestamp to ensure downstream freshness guarantees.
None of this proves a record is correct. It gives a scheduled YouTube Email Scraper run defined points where it should stop instead of quietly passing bad data downstream.
Frequently asked questions
Does this scraper extract emails hidden behind YouTube's View email button?
No. Revealing that address requires a logged-in Google account and interactive CAPTCHA verification. This Actor operates entirely without cookies, logins, or browser automation, collecting only emails published in the public About text, external hyperlinks, or linked social media bios.
How much does it cost to process 5,000 YouTube channels?
At $2.00 per 1,000 results on the free plan, 5,000 channel results total $10.00 in result charges. Run-start fees and Apify platform usage apply on top of that figure. Paid Apify tiers pay less per thousand results.
What happens if a channel has no email address listed?
The Actor still writes a record to the dataset containing the channel metadata, handle, description, and subscriber count, but the emails and sources fields are omitted. It does not write null placeholders. Downstream systems can check for the presence of the emails property.
Can I feed bare handles instead of full channel URLs?
Yes. The channelUrls input accepts standard URLs, /channel/UC paths, /c/ custom paths, /user/ URLs, and plain @handle strings. The scraper normalizes all variations automatically before scanning the channel About page.
How reliable has this Actor been over recent production runs?
Over the last 30 days across 534 runs, 533 succeeded (99.8%) and 0 failed (0.0%). The single non-successful run was aborted by the user (0.2%), and 0 timed out, meaning 0.0% of runs failed or timed out.
Where to go next
When you are ready to run it, open YouTube Email Scraper on Apify; the free plan covers up to 2,500 results a month.
Start with the YouTube Email Scraper Actor page for the current input schema, pricing tier, and run history.
It is part of the YouTube Scraping Suite, which puts every related Actor on one page with its price and run history.
If you are comparing approaches rather than committing to one Actor, these category pages list every option we publish:
- Contact and email scrapers covers 73 Actors in this family.
Readers running YouTube Email Scraper commonly pair it with:
- YouTube Search Scraper: Scrape YouTube search results without cookies.
- YouTube Channel Scraper: Scrape YouTube channel info and video listings.
- YouTube Video Downloader: Download YouTube videos, playlists, and entire channels in your preferred quality from 360p all the way up to the best available resolution.
- YouTube Transcript Scraper: Extract transcripts and captions from YouTube videos with language selection support.
- YouTube Comment Scraper: Scrape YouTube video comments with full metadata.
- YouTube Playlist Scraper: Scrape all videos from YouTube playlists.
- YouTube Trending Scraper: Scrape trending and popular YouTube videos by category.
Related guides:
- YouTube Search Scraper: Up to 1,000 Free Results a Month (2026)
- Automating YouTube Research: Complete Four-Actor Pipeline Guide
- Deploying YouTube Channel Scraper for Targeted Creator Intelligence
- YouTube Video Downloader: 126 of 131 Runs Succeeded (2026)
Resources
Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-23.
Actor last updated by its maintainers on 2026-06-22.
Run outcome figures cover the 30 day public window ending 2026-09-23.
● Featured actors
YouTube Email Scraper
Extract emails from YouTube channels without CAPTCHA bypass. Scans channel About descriptions and follows Instagram, TikTok and Linktree profiles linked from the channel. HTTP-only, no cookies, no API keys.
Run on Apify ↗