Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
YouTube Channel Email Scraper icon

YouTube Channel Email Scraper

Find the business emails creators publish in their YouTube channel description, plus their linked site's contact pages. $1.50 per 1,000 channels.

104 runs on Apify $0.0015 per resolved YouTube channel ($1.5 / 1,000)
Run this in the cloudRun on Apify →

YouTube & Creator Tools

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust channelUrls, maxChannels, crawlLinkedWebsites (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.0015 per resolved YouTube channel = $1.5 per 1,000

You are charged forWhenPrice
Resolved YouTube channelOne resolved YouTube channel with public contact attribution.$0.0015
Linked website auditBounded audit of up to two linked public websites for contact pages.$0.0025

Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-07-27, and they are what you are actually charged.

Inputs

FieldWhat it doesType
channelUrlsChannel URLs, @handles, or UC channel IDs. Only public descriptions and linked public websites are inspected.array
maxChannelsMaximum number of unique channels to process in this run.integer
crawlLinkedWebsitesOptionally audit up to two linked public websites for contact pages. This add-on is billed separately from channel resolution.boolean
maxWebsitePagesMaximum public HTML pages to check per linked website, including the home page. The bound protects predictable cost.integer

What you get

A structured dataset — each result includes fields like:

channelNamechannelUrlprimaryEmailexternalWebsiteContactswebsiteUrlsprivacyNote

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

Related tools in YouTube & Creator Tools

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

YouTube Scraper iconYouTube & Creator Tools

YouTube Scraper

Search YouTube or scrape a channel: title, channel, views, publish date, length and thumbnail. No API key or quota. $0.135 per 1,000 videos.

18 use cases

YouTube Channel Monitor — New Upload Tracker iconYouTube & Creator Tools

YouTube Channel Monitor — New Upload Tracker

Watch YouTube channels and get only their new uploads: title, URL, publish date, views, thumbnail. $0.01 per new video.

17 use cases

YouTube Video & Audio Downloader iconYouTube & Creator Tools

YouTube Video & Audio Downloader

Download YouTube videos as MP4 up to 8K, audio as MP3 or subtitles as .srt. No login or API key. You pay per megabyte delivered.

17 use cases

YouTube Video Uploader iconYouTube & Creator Tools

YouTube Video Uploader

Upload videos to your YouTube channel from a URL with OAuth. Set title, tags, category, thumbnail, privacy and publish time. $0.05 per upload.

2 use cases

AI Viral Clip Cutter — Long Video to Shorts iconYouTube & Creator Tools

AI Viral Clip Cutter — Long Video to Shorts

Turn a long podcast or interview into ranked vertical clips. AI scores each moment and captions follow every word. $0.20 per clip row, samples included.

3 use cases

AI Text-to-Speech Voiceover iconYouTube & Creator Tools

AI Text-to-Speech Voiceover

Turn any script into an AI voiceover file: MP3, WAV, Opus or AAC. Pick the voice, speed and format. $40.00 per 1,000 voiceovers ($0.04 each).

3 use cases

See all YouTube & Creator Tools →

YouTube Channel Email Scraper: the business address a creator published on their own channel

Give it channel links, @handles or UC... ids and you get one row per channel holding the e-mail addresses that creator wrote into their own description, each one tagged with the page it was read from. Linked websites are an optional second pass.

The awkward part first. Plenty of creators publish no address at all. Those channels still come back as a successful row with an empty emails list, and they still count, because resolving the channel is the work either way. Price a list of five hundred on that basis, not on the ones that hit.

InputChannel links, @handles or UC... channel ids
OutputOne row per channel
Ceiling500 channels per run
Account neededNone from you
Price$1.50 per 1,000 channels, flat on every plan

🔍 What YouTube Channel Email Scraper does

It reads the public About view of every channel on your list and pulls out the addresses written into the description. https://www.youtube.com/@mkbhd, @mkbhd and a bare UC... id all mean the same channel, so you can paste whatever forms your list already has.

Each address arrives with a source. emailSources carries one entry per address with its sourceType and the exact sourceUrl, so you can open that page and see it yourself before anyone gets a message.

primaryEmail is only ever an address from the channel description. Anything picked up on a linked website stays in externalWebsiteContacts and is never promoted, because a shop's support inbox is not the creator's business contact, and treating it as one is how an outreach list goes bad.

📥 What you give it

{
  "channelUrls": ["https://www.youtube.com/@mkbhd", "@Apify"],
  "maxChannels": 50,
  "crawlLinkedWebsites": false
}
FieldDefaultWhat it is
channelUrlsnoneOne entry per channel: a youtube.com link, an @handle or a UC... id. Anything off youtube.com comes back as a BAD_INPUT row.
maxChannels50Stop after this many entries, counting from the top of your list. Up to 500.
crawlLinkedWebsitesfalseAlso look at the sites the channel links to. Costs extra, see below.
maxWebsitePages2Pages read per linked site, home page included. The ceiling really is 2.
proxyConfigurationoffLeave it alone unless you have your own network you want the traffic to leave through.

Run it with the input empty and you get one labelled sample row, free, so you can look at the shape before spending anything.

📤 What you get back

A real row from a real run. The fixed privacy note at the bottom is cut short so the block stays readable:

{
  "ok": true,
  "channelName": "Marques Brownlee",
  "channelUrl": "https://www.youtube.com/@mkbhd/about",
  "emails": ["[email protected]"],
  "primaryEmail": "[email protected]",
  "emailSources": [
    {
      "email": "[email protected]",
      "sourceType": "channel_description",
      "sourceUrl": "https://www.youtube.com/@mkbhd/about"
    }
  ],
  "externalWebsiteContacts": [],
  "websiteUrls": ["http://shop.mkbhd.com/", "http://reddit.com/"],
  "websitesChecked": [],
  "privacyNote": "Only emails openly published in the channel description or linked public website pages are returned. ..."
}
FieldWhat it is
channelUrlWhere the row was actually read from, after redirects. Handy when a handle has been renamed.
primaryEmailThe first address in the channel description, or null. Never an address off a website.
emailsAll the addresses on the row, description and linked sites together.
emailSourcesOne entry per address: channel_description or linked_public_website, plus the page it came from.
externalWebsiteContactsAddresses found on a linked site, kept apart from the creator's own. Empty unless you turn the site pass on.
websiteUrlsThe sites the channel links to, reduced to their root. YouTube and Google links, social sites, shorteners and file hosts are dropped first.
websitesCheckedWhat the site pass actually opened and what each page answered. Empty when the pass is off.

🧾 Reading the output

Three kinds of row land in your dataset.

RowHow to spot itBilled
A real channelok: true with a channelUrlyes
The sample row_sample: trueno
A diagnosticok: false and an errorCodeno
CodeWhat it means
BAD_INPUTThat entry was not a youtube.com link, a handle or a channel id.
BLOCKEDYouTube answered 403 for that channel on this run.
HTTP_404, HTTP_429 and other HTTP_ codesYouTube answered with that status instead of the page.
TIMEOUTThe page did not answer inside the request limit.
RESPONSE_TOO_LARGEThe page came back bigger than the actor accepts.
NETWORKThe connection itself failed.
NO_RESULTSNothing in the whole list resolved to a channel.
INTERNAL_ERRORThe run hit something unexpected. Send us the run id.

A diagnostic row never fails the run and is never billed.

▶️ How to run it

1. Open YouTube Channel Email Scraper and click Try for free. 2. Paste your channels into YouTube channels, one per line. 3. Set Maximum channels low while you are testing, since you pay per channel. 4. Leave Check linked public websites off for the first run. Turn it on once you know the channel pass gives you what you need. 5. Click Start, then download the dataset as JSON, CSV or Excel, or pull it from the Apify API.

💰 How much does it cost?

$1.50 per 1,000 channels. Flat on every Apify plan, no volume tiers.

The linked-site pass is the one extra. Tick Check linked public websites and a channel where a site was attempted costs $2.50 per 1,000 on top. Leave the box alone and you pay the channel price only.

A channel that publishes no address still counts as a channel. The sample row and every diagnostic row are free, and if nothing resolves, no rows are charged.

💡 What people use it for

  • Building a sponsorship short list. Pull a few hundred channels in a niche, keep the ones with a

real business address, and open YouTube only for those.

  • Checking a list you already bought or built, against what the creator actually publishes today.
  • Finding the right inbox. A creator often lists one address for business and links a site with a

different one for support, and the row keeps them apart.

  • Research on a niche: what share of channels publish any contact route at all.

🚧 What it does not do

  • No hidden addresses. YouTube keeps some behind a click-to-reveal check. This never touches

that button, so if the creator did not write the address in plain text, it is not in the output.

  • No guessing. It never invents firstname@domain and never falls back to a bought contacts

database.

  • A written-out address is converted, and that conversion is literal. name at domain dot com

is read as an address, which also means ordinary prose like "available at Amazon.com" can produce one. Check emailSources and open the page before you mail anyone.

  • Addresses with non-ASCII characters are dropped rather than returned half-right.
  • The About view only. No videos, no comments, no subscriber history.
  • Two linked sites per channel, two pages each, same host. The bound is deliberate and it is

not raisable.

  • maxChannels counts your raw list, before duplicates are collapsed, so the same channel

written as a handle and as a UC... id takes two slots and is read twice.

  • Channels are read one at a time and the run stops after five minutes. A list in the hundreds

may not reach the end. Split it across runs.

  • It does not send anything. No mail, no messages, no contact form.

🧭 Which YouTube actor do you need?

If you wantUse
The business address a channel publishesThis one
Videos from a channel or a keyword searchYouTube Scraper
Shorts from a channel or a keywordYouTube Shorts Scraper
Only the new uploads from a watch listYouTube Upload Monitor
The video file itselfYouTube Downloader Pro

❓ Questions people ask

Do I need a YouTube account or an API key? Neither. Channels are read the way a logged-out visitor sees them.

What happens on a channel with no address? A successful row with an empty emails list, and it counts as a channel. That is the main thing to budget for.

Can it get an address YouTube hides? No. The reveal button is behind a check meant to be passed by a person, and this leaves it alone.

Is this legal? It reads public channel pages and public website pages only. The output is personal contact data, which GDPR, CAN-SPAM and similar laws cover, so you need a lawful reason to collect it and to write to anyone. Apify's write-up on the legality of web scraping is a reasonable starting point, and we are not lawyers.

Can I run it on a schedule? Yes. Nothing is held between runs, so the same list is safe to repeat. Diff on channelUrl and primaryEmail to see what changed.

🆘 If something breaks

Open the Issues tab on the actor page. Include the channels you used and the run id, and the log is usually enough for us to see what happened.