YouTube Channel Email Scraper avatar

YouTube Channel Email Scraper

Pricing

from $0.63 / 1,000 channel results

Go to Apify Store
YouTube Channel Email Scraper

YouTube Channel Email Scraper

Find public contact emails displayed by YouTube channels and export source-attributed emails, links, social profiles, and channel metadata.

Pricing

from $0.63 / 1,000 channel results

Rating

0.0

(0)

Developer

Fetch Cat

Fetch Cat

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

0

Monthly active users

11 days ago

Last modified

Security

Limited permissions

Share

Find contact details explicitly displayed on public surfaces for YouTube channels you already know. Export source-attributed emails and optional phones beside channel metadata, outbound links and clear contact or error statuses. The Actor does not log in, reveal CAPTCHA-protected addresses, infer addresses or verify mailbox deliverability.

Quick start

Begin with a few known channels, keep linked-website inspection and phone collection off, and retain no-contact rows while checking coverage. The existing example is:

{
"channelUrls": [
"https://www.youtube.com/@rebeccazamolo",
"@imjennim",
"UCTgwcoeGGKmZ3zzCXN2qo_A"
],
"maxChannels": 3,
"onlyWithEmail": false,
"includePublicLinkedWebsites": false,
"includePhones": false
}

Prefer a video guide? This short Apify walkthrough shows you how to set up and run an Actor. It uses a different Actor, but the setup steps are the same.

What you get

A retained channel row with available public identity, metadata, social and website links, contact status and diagnostics. Each discovered email or optional phone carries its displayed value, source URL, source type and confidence label. Confidence describes the extraction evidence rather than proving mailbox delivery, identity or permission to contact someone.

Who is it for?

  • Creator partnership and sponsorship teams building source-auditable outreach lists.
  • Agencies researching public contact routes for known channels.
  • Sales and market-research teams enriching channel lists with public metadata.
  • Developers and AI-agent builders who need structured JSON through API or MCP.

How you can use the data

  • Review source-attributed public contact routes. Use the existing @imjennim target and keep emails with sourceUrl and sourceType. Open the public source before deciding whether the route is appropriate, without treating a displayed address as permission for unsolicited outreach.
  • Audit missing contact coverage honestly. Keep onlyWithEmail off when processing a short known-channel list. Separate NO_PUBLIC_CONTACT from CHANNEL_ERROR and SKIPPED_DEADLINE rather than interpreting every missing email as proof that no contact exists.
  • Inspect linked websites selectively. Enable public linked-website checks with a small per-channel page cap only when needed. Retain pagesChecked, pagesSkipped and contact evidence, and keep protected or unavailable pages as gaps rather than attempting login or CAPTCHA access.
  • Join metadata to your own channel list. Store channelId, handle, source URL and scrapedAt alongside your records. Compare public links or descriptions downstream, keeping rounded count text and optional nulls without claiming private analytics or verified account ownership.

Input settings

FieldTypeDescription
channelUrlsstring[]YouTube channel URLs, About URLs, @handles, bare handles, or UC... channel IDs.
maxChannelsintegerMaximum unique channels to process (1–500).
onlyWithEmailbooleanSave only rows containing at least one public email.
includePublicLinkedWebsitesbooleanAlso inspect a bounded number of publicly linked website pages for displayed contacts.
maxExternalPagesPerChannelintegerMaximum linked website pages checked per channel (0–10).
contactPageKeywordsstring[]Optional paths such as contact, about, or press considered during website inspection.
includePhonesbooleanAlso collect explicitly displayed public phone numbers.
proxyConfigurationobjectApify Automatic shared datacenter proxy is the default. It is available to Free-plan users for Actor runs on Apify.

Duplicate inputs are normalized and processed once. Valid rows are saved progressively, so one unavailable channel does not discard successful siblings.

For a contact list, turn on onlyWithEmail. For a metadata audit, leave it off so readable channels without an email are retained. Enable linked-website inspection only when you need additional public contact evidence.

Output data

The existing illustrative row contains a historical public contact and count snapshot rather than fresh contact verification:

{
"input": "@imjennim",
"channelUrl": "https://www.youtube.com/@imjennim/about",
"channelId": "UCgWfS_47YPVbKx5EK4FLm4A",
"handle": "@imjennim",
"title": "Jenn Im",
"description": "Business Inquiries: jenn@rare.global ...",
"subscriberCountText": "3.23M subscribers",
"subscriberCount": 3230000,
"videoCountText": "794 videos",
"videoCount": 794,
"viewCountText": "1,555,888 views",
"viewCount": 1555888,
"country": "United States",
"joinedDateText": "Joined Feb 28, 2010",
"verified": false,
"externalLinks": [],
"socialLinks": [],
"websiteLinks": [],
"emails": [{
"value": "jenn@rare.global",
"sourceUrl": "https://www.youtube.com/@imjennim/about",
"sourceType": "channel_about",
"confidence": "high"
}],
"phones": [],
"contactStatus": "FOUND_PUBLIC_CONTACT",
"hiddenEmailUnsupported": false,
"pagesChecked": 0,
"pagesSkipped": 0,
"errorCode": null,
"errorMessage": null,
"scrapedAt": "2026-08-13T12:11:26.764Z"
}
FieldDescription
inputOriginal submitted value.
channelUrlNormalized public About URL.
channelId, handlePublic channel identifiers when available.
title, descriptionPublic channel title and description.
subscriberCountText, subscriberCountDisplay value and normalized count.
videoCountText, videoCountDisplay value and normalized count.
viewCountText, viewCountDisplay value and normalized count.
country, joinedDateText, verifiedPublic About metadata when supplied by YouTube.
externalLinksPublic outbound links found on the channel surface.
socialLinksRecognized public social links with platform labels.
websiteLinksNon-social public outbound links.
emailsDeduplicated contacts with value, sourceUrl, sourceType, and confidence.
phonesOptional public phones with the same source evidence shape.
contactStatusFOUND_PUBLIC_CONTACT, NO_PUBLIC_CONTACT, CHANNEL_ERROR, or SKIPPED_DEADLINE.
hiddenEmailUnsupportedIndicates that the page referenced a protected email flow that this Actor will not access.
pagesChecked, pagesSkippedExternal-page processing counters.
errorCode, errorMessagePer-channel diagnostics. Successful sibling rows remain available.
scrapedAtISO timestamp for collection.

A RUN-SUMMARY record in the default key-value store reports processed channels, saved and filtered rows, unavailable targets, budget or deadline cutoffs, and per-channel outcome reasons. Missing channel pages produce no dataset row. Readable channels without public contacts can still produce useful metadata rows.

Download your results

Open your run's dataset, choose Export and select JSON, CSV or Excel. JSON keeps nested fields together. CSV and Excel are useful when you want to review the records in a spreadsheet.

See Apify's download and export guide for the available formats and field options.

Pricing

The run charges one start event when processing begins. This can apply even when no results are found.

An item event is charged after each retained channel row is saved. With email-only filtering off, saved no-contact and channel-error rows also count as retained results. With filtering on, rows without an email are omitted and do not create item events, including phone-only rows. Processing stops when the budget cannot cover another result. Already saved output remains available if billing fails.

See the live Pricing tab for current rates and discounts. Platform usage can also apply, and enabling linked-website inspection can increase work without guaranteeing an email.

Tips for best results

  • Start from known channels. This Actor enriches supplied targets rather than searching YouTube by keyword.
  • Keep no-contact and failure statuses distinct. Retain diagnostic rows during an initial coverage check before enabling email-only filtering.
  • Bound external-page checks. Enable them deliberately and keep the page cap low for a small sample.
  • Keep contact provenance. Review the displayed source and your purpose before using personal data, and retain only what your workflow needs.
  • Treat missing values as unknown. Public metadata can be absent or change, and a confidence label is not mailbox verification.

Limits and caveats

  • Start with a few known channels, then expand the batch.

  • Channel pages change over time. Absent metadata is returned as null, not guessed.

  • Some business emails are protected behind login or CAPTCHA. Those are intentionally not revealed.

  • External website checks are opt-in, bounded, and can be slower or unavailable.

  • Use public contact details responsibly and comply with applicable privacy, anti-spam, platform, and marketing laws.

  • The Actor discovers contacts from supplied channels. It does not search YouTube by keyword.

  • Processing is limited to a few minutes. Larger lists may need several smaller runs.

  • Unavailable channel pages are skipped with a summary reason. Blocking, unrecognized responses and incomplete requested website extraction remain errors, not proof that no public contact exists.

  • A run with extraction errors can fail after saving useful sibling rows. Inspect those results and the run summary before retrying.

  • A displayed address is not proof of ownership, permission to contact someone or mailbox deliverability.

Automation and integrations

Save your settings for next time

Once you have an input that works for you, save it as an Apify task. This keeps your settings together so you can use them again without filling in the form from scratch.

Run on a schedule

Need fresh results regularly? You can schedule the Actor or a saved task to run at a time that suits you.

Each scheduled run collects the data again. If you want to compare results or highlight changes, add that step in your own workflow.

Send results to your other tools

Use n8n, Make or Zapier to connect this scraper to the rest of your workflow. For example, you could pass its results to an AI assistant or add records to a spreadsheet. Follow the Apify integration guides for your chosen tool.

For a custom connection, an Apify webhook can notify your app when a run finishes or fails. Your app can then fetch the results or handle the failure.

API usage

Want to collect this data from your own app or automation? The examples below send input to the scraper and show how to collect its results.

The Node.js and Python examples wait for the run to finish before reading its results. The cURL example starts the run and returns its details. Wait for that run to finish, then use its defaultDatasetId to fetch the results.

For setup instructions, see Apify's JavaScript client guide, Python client guide and Actor runs API reference.

cURL

curl -X POST "https://api.apify.com/v2/acts/fetch_cat~youtube-channel-email-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"channelUrls":["@imjennim"],"maxChannels":1}'

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/youtube-channel-email-scraper').call({ channelUrls: ['@imjennim'], maxChannels: 1 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/youtube-channel-email-scraper').call(run_input={'channelUrls': ['@imjennim'], 'maxChannels': 1})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

MCP and AI agents

You can ask your AI assistant to collect data with YouTube Channel Email Scraper and help you work with the results. The scraper returns the data, and your assistant can then summarize it, compare records or prepare notes.

Connect your assistant through the Apify MCP server. MCP gives your assistant a way to find this scraper, run it and read the results. Follow the official setup and sign-in guide for your app.

Easier setup with an Apify plugin

If you use a supported coding assistant, the official Apify plugin can set up the connection for you. It connects your assistant to Apify and includes instructions for common tasks. Follow the guide for your particular app.

Use Apify AI in Console

Prefer to keep everything in Apify? Open Apify AI in Console and ask it to find Fetch Cat's YouTube Channel Email Scraper. You can describe the data you want and ask questions about the results.

Apify AI is currently in beta. It asks for confirmation before starting an Actor, and normal run charges apply.

Choose your assistant

Connect just this scraper

To keep your setup focused on this scraper, add this server configuration to a compatible MCP client:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=fetch_cat/youtube-channel-email-scraper"
}
}
}

Sign in to Apify when your client asks. If your client uses a Bearer token instead, follow its setup guide and keep the token in its secure configuration. Configuration formats vary by app, so use the linked guide if your client needs a different format.

Use Apify's general server

Already connected to the general Apify MCP server at https://mcp.apify.com? You can use it to find this scraper without adding another server. Ask your assistant to use YouTube Channel Email Scraper by Fetch Cat, or give it the identifier fetch_cat/youtube-channel-email-scraper.

Your assistant can check the available settings and retrieve the results from the returned run. If the run is still working, it should follow that run rather than start it again. Both connection options use Apify's hosted service.

Example requests

  • “Use Fetch Cat’s YouTube Channel Email Scraper to collect public contact evidence for @imjennim with a maximum of 1 channel, email-only filtering off, linked websites off and phones off. Keep source URLs and no-contact or error statuses without verifying mailbox delivery.”
  • “Retrieve public metadata and contact statuses for @rebeccazamolo and @imjennim with a maximum of 2 channels, retaining rows without email and leaving linked websites and phones off. Separate unavailable channels from readable profiles without public contacts.”
  • “Collect public contact evidence for @imjennim with a maximum of 1 channel and linked-website inspection enabled, checking at most 1 external page and leaving phones off. Keep evidence URLs and skipped-page counts without accessing protected email flows.”

Normal Apify charges apply. Check the live Pricing tab before asking your assistant to run a larger batch.

Pay with x402

If your AI agent has a funded wallet, it can pay for Apify usage through x402. This experimental option lets an agent use Apify without a conventional account.

Apify AGI provides a prepaid API token with a spending cap after payment. Your agent can use that token to run this scraper through the Apify API or an authenticated MCP connection.

Some MCP setups also support paying for each request directly. That is a different payment option, so check the official guide for its availability.

Follow the official guide for wallet setup, supported payment options and current terms. Apify handles the payments. Keep wallet keys and payment tokens in your agent's secure configuration.

Other ways for agents to pay

Apify also supports MPP for prepaid access through AGI and Skyfire for eligible Actors. If your agent already uses one of these, see the agentic payment guide to choose the right setup.

FAQ

Does it reveal YouTube's protected “View email address” value?

No. It exports only contact details already displayed on anonymous public surfaces. It does not log in, solve CAPTCHA, bypass controls, or infer addresses.

Why does a successful row have no email?

Many channels do not publish one. Keep onlyWithEmail off to receive NO_PUBLIC_CONTACT rows and useful channel metadata.

Can I use it through the API or MCP?

Yes. Use the Actor API from any Apify client or add the actor-specific MCP URL above to an MCP-compatible agent.

Does it validate mailbox deliverability?

No. It preserves publicly displayed values and their source evidence. Mailbox verification is a separate workflow.

What happens if one channel fails?

An extraction failure produces CHANNEL_ERROR and diagnostics while other channels continue. The run then fails rather than presenting incomplete extraction as complete. Saved results remain available. Missing channel pages are instead skipped with an unavailable-target summary reason.

Support and feedback

For custom additions or integrations, email hello@fetchcat.dev.

Found an error or have a feature request? Open an issue with the run URL, a non-sensitive input example and what you expected.

Need help sharing it? See Apify’s guide to sharing a run when reporting an issue. Sharing a run can give the developer access to its input, logs and results, so use a run that contains no sensitive data. Please leave out API tokens, passwords, cookies, private documents and personal data. Use a public sample URL or a redacted example instead.

Tried this scraper? We'd love to hear how it worked for you. Leave a review to help others choose the right tool and help us improve it. Your feedback means a lot to us.

Made with care for curious people, AI agents and the possibilities in data. ♥