YouTube Channel Email Scraper — Emails, Phones & Socials
Pricing
from $50.00 / 1,000 channel results
YouTube Channel Email Scraper — Emails, Phones & Socials
Find emails, phone numbers and social profiles for YouTube channels by niche or channel URL, including Instagram, TikTok and X links. Follows Linktree pages and websites to reach contact details. No login needed; works with Apify MCP and the API.
Pricing
from $50.00 / 1,000 channel results
Rating
3.0
(1)
Developer
Khadin Akbar
Maintained by CommunityActor stats
2
Bookmarked
360
Total users
57
Monthly active users
3 days ago
Last modified
Categories
Share
YouTube Channel Email & Contact Scraper — Emails, Phones, Socials
This Apify Actor helps creators, marketers, agencies, and sales teams collect public contact details from YouTube channels. It accepts either specific channel URLs or niche search queries, then returns one structured record per channel with channel metadata, primary email, all discovered emails, phone number, website, social links, source URLs, and scrape timestamps. That one-record format makes it easy to build outreach lists, enrich CRM leads, or pass the data into an AI workflow through Apify MCP. An optional BYOK cookie path can attempt YouTube’s gated “View email address” unlock when you explicitly enable it (cookies + optional 2Captcha). See docs/PHASE0_BYOK_INQUIRY_UNLOCK.md for live spike status.
Best fit and connected workflows
Use this Actor when your starting point is a YouTube channel list or a topic you want to turn into a channel list.
It fits well when you want to:
- enrich a known list of YouTube creator URLs with contact fields
- discover channels by niche, keyword, or industry, then extract contact details
- build outreach lists for brand deals, sponsorships, podcast bookings, or agency prospecting
- capture public business emails, phones, and social profiles from channel About pages
- follow linked websites and link aggregators such as Linktree, Beacons, Bio.link, Campsite, and Bento to collect additional contact points
For channel discovery first, the verified upstream workflow is YouTube Search Scraper - Videos, Channels & Playlists. That Actor can help you find public YouTube records, and this Actor can then enrich the channel URLs with contact data.
Practical scenario
Maya works at a small creator agency. She starts with a list of 12 YouTube channel URLs from a campaign brief. She runs this Actor with those URLs and keeps website following enabled. The output gives her email, all_emails, phone, website, social_instagram, and subscriber_count for each channel. She uses the primary email to prepare outreach, checks email_sources to see where the address was found, and uses source_url to verify the channel page before sending messages.
Input
You can provide channel URLs, niche search queries, or both. The Actor also supports a maximum channel count, website following, link aggregator following, and proxy configuration.
| Field | Type | Purpose |
|---|---|---|
channelUrls | array of strings | Specific YouTube channel names, handles, URLs, or video URLs. Each URL is treated as one channel to scrape. |
searchQueries | array of strings | Niche or keyword searches used to discover matching channels on YouTube. |
maxResults | integer | Maximum number of channels to extract across all inputs. |
scrapeWebsite | boolean | Follows the linked website from the channel About page to find more public contact details. |
followLinkAggregators | boolean | Follows pages such as Linktree, Beacons.ai, Bio.link, Campsite, and Bento when present in channel About sections. |
proxyConfiguration | object | Proxy settings for the run. The Actor uses Apify Residential proxies by default. |
unlockBusinessInquiryEmail | boolean | Optional. Leave off for most runs. When true, attempts YouTube’s gated “View email address” unlock as a fallback after the public path finds no email. Requires caller cookies. |
youtubeSessionCookies | string (secret) | Optional. Logged-in YouTube/Google session cookies for the unlock path only. Never invent these. |
maxInquiryUnlocksPerRun | integer | Cap on unlock attempts per run (default 10, max 50). Keep small for tests. |
Focused input example
{"channelUrls": ["https://www.youtube.com/@mkbhd","https://www.youtube.com/@aliabdaal"],"maxResults": 2,"scrapeWebsite": true,"followLinkAggregators": true}
Output
The Actor stores channel contact records in the default dataset. Each item is one channel record with public metadata and contact fields.
| Field | Type | Purpose |
|---|---|---|
channel_name | string or null | Display name shown on YouTube. |
channel_handle | string or null | Channel handle such as @CreatorName. |
channel_url | string | Canonical channel URL. |
subscriber_count | string or null | Subscriber count as displayed by YouTube. |
video_count | string or null | Public video count from the About page. |
total_views | string or null | Total public views shown by YouTube. |
country | string or null | Country or region listed on the About page. |
description | string or null | Truncated About-page description text. |
email | string or null | Primary business email found for the channel. |
all_emails | array or null | All discovered email addresses for the channel. |
phone | string or null | Public phone number, if listed. |
website | string or null | Main website listed on the channel About page. |
social_instagram | string or null | Instagram profile URL. |
social_twitter | string or null | Twitter or X profile URL. |
social_tiktok | string or null | TikTok profile URL. |
social_facebook | string or null | Facebook page or profile URL. |
social_linkedin | string or null | LinkedIn profile or company page URL. |
social_telegram | string or null | Telegram URL. |
social_whatsapp | string or null | WhatsApp contact URL. |
email_sources | array | Where the email was found: youtube_about, external_website, link_aggregator, and/or youtube_inquiry_unlock. |
source_url | string | The YouTube About page URL used as the primary source. |
scraped_at | string | ISO 8601 timestamp for the extraction moment. |
Illustrative output record
{"channel_name": "Marques Brownlee","channel_handle": "@mkbhd","channel_url": "https://www.youtube.com/@mkbhd","subscriber_count": "18M subscribers","video_count": "1,400 videos","total_views": "3,000,000,000 views","country": "United States","description": "Technology videos and reviews.","email": "business@example.com","all_emails": ["business@example.com"],"phone": "+1-800-555-0123","website": "https://example.com","social_instagram": "https://instagram.com/example","social_twitter": "https://twitter.com/example","social_tiktok": "https://tiktok.com/@example","social_facebook": null,"social_linkedin": null,"social_telegram": null,"social_whatsapp": null,"email_sources": ["youtube_about","external_website"],"source_url": "https://www.youtube.com/@mkbhd/about","scraped_at": "2026-03-28T14:30:00.000Z"}
How it works
This Actor uses two input paths:
- It can take specific channel URLs, including handle URLs, channel IDs, and video URLs.
- It can take search queries for channel discovery by niche or keyword.
For each channel, it extracts public contact and profile data from the YouTube About page. When enabled, it also follows the linked website on the About page and link aggregator pages to collect additional public emails and social links. The dataset output is structured for contact list use, and the key-value store exposes run outcome and run summary records.
Pricing
Pricing note:
inquiry-email-unlocked($0.12) is scheduled to become effective on 2026-10-10 (Apify public-Actor notice window). Until then, unlock may succeed in the dataset without that named charge.result-found($0.05) is unchanged and live.
This Actor uses Pay per event pricing plus Apify platform usage (usage pass-through). Check the live Pricing tab before a large job.
| Event | When it charges | Price |
|---|---|---|
result-found (Channel Result) | A channel record is persisted with a public-path email (About, mailto, website, or link aggregator) | $0.05 |
inquiry-email-unlocked | Optional BYOK unlock succeeds for a channel that had no public email | $0.12 |
apify-actor-start | Actor start (memory-scaled) | $0.00005 |
Example: ten channels with public emails → ten result-found events ($0.50) plus start and platform usage. Unlock is never charged when it fails or when a public email was already found.
Use with AI agents (MCP)
This Actor is available through Apify MCP and can be called by agentic tools that understand Apify Actors and datasets.
Actor identity: khadinakbar/youtube-channel-email-extractor
Tool description: Discover YouTube channels by URL or niche, then return public contact records containing emails, phones, websites, social profiles, and source provenance. Prefer public-only. Enable unlockBusinessInquiryEmail only when the user explicitly asks for emails behind YouTube’s “View email address” button and provides session cookies. Never invent cookies. Never enable unlock for smoke tests.
Default agent objective: Prefer public-only. Set unlockBusinessInquiryEmail only if the user explicitly asks for emails behind YouTube’s “View email address” button and provides session cookies. Never invent cookies. Never enable unlock for smoke tests.
| User says | Agent sets |
|---|---|
| “Get emails for these channels” | Public path only (unlockBusinessInquiryEmail false) |
| “Cannot find View email address” / “business inquiry email” | Ask for cookies if missing; then unlock=true + cookies + low maxInquiryUnlocksPerRun |
| “Test the actor” / MCP probe | Unlock off; use prefill |
Find 20 YouTube channels about AI startups and extract the primary email, all emails, website, and social profiles for each channel. Use website and link aggregator following when available. Return the dataset items and tell me which source each email came from. Leave inquiry unlock off unless I supply YouTube session cookies.
When an agent uses this Actor, it can interpret the structured dataset fields directly:
emailis the primary contact valueall_emailsshows every discovered emailemail_sourcesidentifies whether contact data came from the YouTube About page or an external websitesource_urlpoints to the channel About page used for extractionscraped_atcaptures when the record was collected
If you are scraping a large list, use maxResults to keep the run scoped to the number of channels you want. If you are combining discovery and enrichment, the agent can pass search queries first and then read the dataset results from the run.
API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const run = await client.actor('khadinakbar/youtube-channel-email-extractor').call({searchQueries: ['fitness influencers', 'tech review channels'],maxResults: 5,scrapeWebsite: true,followLinkAggregators: true,});const datasetItems = await client.dataset(run.defaultDatasetId).listItems();console.log(datasetItems.items);
Best results and outcome guidance
Start with a narrow input. If you already know the creators, use channelUrls. If you are exploring a niche, use searchQueries. Keep scrapeWebsite and followLinkAggregators enabled when you want the broadest collection of public contact fields. For outreach workflows, review email_sources and source_url before exporting the dataset to your CRM or automation stack.
Continue the workflow
- Then use YouTube Channel Scraper - Profiles and Videos to extend YouTube Channel Email & Contact Scraper — Emails, Phones, Socials research with a complementary enrichment contract.
- Then use YouTube Channel Video Scraper — Metrics & Shorts to extend YouTube Channel Email & Contact Scraper — Emails, Phones, Socials research with a complementary enrichment contract.
Design note
I found that the live contract exposes both results and output records in the output schema, while the dataset itself is centered on one structured channel contact record per item. That made it clear the README should describe the dataset as the main record source and the key-value store as execution metadata.
Optional: unlock business inquiry email (BYOK)
Most users leave this off. The default path already collects public emails from the channel About page, mailto links, linked websites, and Linktree-style aggregators.
Turn on unlockBusinessInquiryEmail only when you need the address behind YouTube’s View email address button. That control is login-gated (and often captcha-gated). When enabled, unlock requires:
- Set
unlockBusinessInquiryEmailtotrue - Paste your own logged-in YouTube/Google session into
youtubeSessionCookies(Cookie header string or JSON map) - Accept a separate $0.12
inquiry-email-unlockedcharge only when unlock succeeds for a channel with no public email
How to supply cookies (high level): sign in to YouTube in your browser, copy the request Cookie header for youtube.com from DevTools (or an export extension you trust), and paste it into the secret field. Use a session you own. Do not share passwords. Cookies are not written to the dataset or OUTPUT.
Limits: unlock runs only as a fallback after the public path finds nothing for that channel; maxInquiryUnlocksPerRun caps attempts; captcha, expired cookies, and daily anti-abuse limits can still yield email: null with no unlock charge. Automation with a logged-in session may violate YouTube’s terms — that risk sits with the caller.
Agent / outcome contract: if unlock was attempted and failed, expect warnings such as inquiry_unlock_blocked, cookies_expired, or captcha_failed in OUTPUT / RUN_SUMMARY. Read those records — SUCCEEDED alone is not the business result. Successful unlock rows include youtube_inquiry_unlock in email_sources.
FAQ
When should I use channelUrls instead of searchQueries?
Use channelUrls when you already have creator links, handles, or video URLs. Use searchQueries when you want the Actor to discover channels by niche, topic, or industry first.
Can I combine URLs and niche searches in one run?
Yes. The input contract supports both fields together, which is useful when you want to enrich known creators and also discover related channels in the same workflow.
What does one result record represent?
One result record represents one YouTube channel with its public metadata and contact fields, including the channel page, email sources, and scrape timestamp.
How does this Actor connect to a discovery workflow?
A common workflow is to use YouTube Search Scraper - Videos, Channels & Playlists to find public YouTube channel URLs first, then pass those URLs into this Actor for contact enrichment.
Does this unlock YouTube’s “View email address” button?
Only if you turn on the optional BYOK path (unlockBusinessInquiryEmail + your youtubeSessionCookies). Otherwise no — the default contract is public About/website/aggregator contacts only.
Do I need Google cookies for a normal run?
No. Leave unlock off. Prefill and MCP probes stay public-only on purpose.
Where do the email sources come from?
The dataset may include youtube_about, external_website, link_aggregator, and (when BYOK unlock succeeds) youtube_inquiry_unlock. These help you see how the address was obtained before outreach.
Responsible use
Use public contact data carefully and in line with applicable laws, platform terms, and recipient expectations. Review source provenance before outreach, keep your lists scoped to the contacts you need, and maintain your own compliance process for email, phone, and CRM usage. Caller-supplied YouTube sessions used for optional inquiry unlock are the caller’s responsibility; use unlock only for lawful, authorized outreach.