YouTube Channel Contacts & Social Links Scraper avatar

YouTube Channel Contacts & Social Links Scraper

Pricing

$5.00 / 1,000 channel-results

Go to Apify Store
YouTube Channel Contacts & Social Links Scraper

YouTube Channel Contacts & Social Links Scraper

Find YouTube creators fast: get channel stats plus public contact signals—websites and social links (X, Instagram, LinkedIn, TikTok, etc.). Perfect for influencer outreach, lead lists, partnerships, and market research.

Pricing

$5.00 / 1,000 channel-results

Rating

0.0

(0)

Developer

Delowar Munna

Delowar Munna

Maintained by Community

Actor stats

2

Bookmarked

106

Total users

7

Monthly active users

4 days ago

Last modified

Share

Advanced YouTube channel scraper that extracts contact information and social media links from channel About pages. Get 41 enriched fields including external links (websites, social profiles), email addresses (with optional MX validation), a 0–100 contactability score, CRM qualification tier, discovery lineage, and all standard channel metadata. Uses a hybrid architecture: YouTube Data API v3 for reliable metadata + a browserless TikHub path for fast contact extraction. No residential proxy required.

YouTube Channel Contacts Scraper


Key Features

  • Hybrid API + Scraping: YouTube Data API v3 for reliable standard fields, Puppeteer only for contacts
  • Contact Extraction: Extracts email addresses from channel About pages with confidence scoring
  • Social Links: Captures and categorizes all external links (Instagram, X, LinkedIn, Facebook, TikTok, etc.)
  • Enhanced Discovery: Extracts channels from BOTH channel results AND video results (5-20+ per search)
  • No Proxy Required: Works reliably without residential proxy
  • 41 Enriched Fields: Complete channel profile — 15 standard + 19 contact + 4 status/discovery-lineage + 1 contactability score + 2 CRM qualification
  • Email Validation (optional): MX-record check with disposable & role-address detection
  • Linked-Website Scanning: in full-contacts mode, also scans the channel's linked website(s) for emails — decodes Cloudflare-obfuscated addresses and, when the linked page has none, follows a contact/about page to find the business email
  • Video-Description Scanning: when the About page and linked sites yield no email, scans the channel's recent video descriptions — where many creators put their business contact — recovering emails other scrapers miss
  • Smart Deduplication: Automatically filters duplicate channels by ChannelId
  • Link Categorization: Automatically detects and categorizes social platforms and link aggregators
  • Extract Contacts toggle: full contacts (emails + social links + website scan), or metadata-only for fast, cheap discovery
  • Automatic Fallback: Full Puppeteer scraping activates if API is unavailable

Best for: Influencer outreach, partnership campaigns, creator collaborations, B2B marketing, PR activities, and any use case requiring direct contact with YouTube creators

Public data only — no CAPTCHA bypass. This scraper extracts publicly accessible emails and contact links (from the channel's About page and description). It does not log into Google or solve CAPTCHAs to reveal YouTube's gated "business email" — when a channel has one, we flag BusinessInquiryAvailable: true so you know it exists, but we don't extract it. This keeps the actor ToS-safe and reliable.


At a Glance

FeatureValue
ArchitectureHybrid: YouTube Data API v3 + Puppeteer
Speed~2-4s per channel (with contacts), <1s (API only)
Standard Field Reliability≈99% (API-sourced)
Discovery5-20+ channels per search
Throughput15-30 channels/minute
Fields41 total (15 standard + 19 contact + 4 status/lineage + 1 contactability score + 2 CRM qualification)
Contact Success Rate40-60% have external links, 10-20% have emails
Email DetectionBalanced sensitivity with confidence scoring (tuned internally)
Proxy RequiredNo
Concurrency20 parallel requests (configurable 1-50)
DeduplicationAutomatic by ChannelId

How It Works

Hybrid Architecture

This scraper uses a two-phase approach for each channel:

  1. Phase 1 - YouTube Data API v3: Fetches standard channel metadata (subscribers, views, country, join date, description, keywords, etc.) in a single API call. This is fast (~100ms) and reliable -- no DOM parsing failures.

  2. Phase 2 - Puppeteer (About page only): When contact extraction is enabled, navigates to the channel's About page to extract external links, emails, and the verification badge. These fields are not available through the API.

  3. Fallback: If the API is unavailable (quota exhausted, network error), the full Puppeteer scraping pipeline activates automatically -- no data loss.


Why This Scraper?

FeatureThis Scraper (Hybrid)Traditional Scrapers
Standard field reliability≈99% (API)80-95% (DOM parsing)
Contact informationEmails & social linksNot available
Fields per channel41 enriched fields10-15 basic fields
SubscriberCount/Country/JoinedDateAlways populated (API)Often null
Discovery per search5-20+ channels1-2 channels
Email extraction3 detection modesNone
Link categorizationAuto-categorizedNone
Time per channel~2-4s (with contacts)~5-8s
Outreach readyExport to CRMManual enrichment
Proxy requiredNoOften yes

Input Parameters

Core Discovery

ParameterTypeDefaultDescription
searchQueriesArray[]Keywords or topics — runs a YouTube channel search (relevance-ranked, not an exact lookup)
startUrlsArray[]Channels — one per line: channel handle (@name), channel ID (UC…), channel URL, or video URL. Exact lookup
maxResultsPerQueryInteger10Max channels per search (1-50)
maxTotalChannelsInteger(none)Hard cap on total channels returned across the whole run (cost control). Empty = no cap
onlyWithContactBooleanfalseKeep only channels that have an email or a social/website link
minSubscribersInteger(none)Keep only channels with at least this many subscribers
maxSubscribersInteger(none)Keep only channels with at most this many subscribers
regionCodeString"US"ISO country code (US, GB, CA, AU, etc.)
languageString"en"Language code (en, es, de, fr, etc.)
dateFromString""Filter by channel join date (Joined After, YYYY-MM-DD)
dateToString""Filter by channel join date (Joined Before, YYYY-MM-DD)

Contact Extraction

ParameterTypeDefaultDescription
extractContactsBooleantrueON = full contacts (emails + social links + linked-website scan); OFF = metadata only (fastest, no contacts)
validateEmailsBooleanfalseValidate emails via MX check; flag disposable/role addresses (adds EmailValidationStatus)

Extraction depth, email-detection sensitivity, and concurrency are handled internally — when Extract Contacts is on, the actor always extracts emails + social links, scans linked websites, and (only when no email is found yet) scans recent video descriptions for more emails.

CRM & Integrations

ParameterTypeDefaultDescription
minQualificationScoreInteger (0–100)60A channel is flagged IsQualified = true when its ContactabilityScore ≥ this value. Every channel also gets a QualificationTier. Annotation only — no channels are dropped.
webhookUrlStringnullOptional http/https endpoint. Each delivered channel is POSTed as JSON in real time (one request per channel) — for Zapier, Make, n8n, or a CRM. Best-effort delivery.
webhookAuthHeaderString (secret)nullOptional value sent as the Authorization header on each webhook POST (e.g. Bearer <token>). Used only when a Webhook URL is set.

Performance Tips

  • Turn Extract Contacts off (extractContacts: false) for the fastest, cheapest runs (no contact extraction)

Output Schema

Standard Channel Fields (15 fields, from API)

#FieldTypeDescription
1ChannelIdStringUnique YouTube channel ID
2ChannelNameStringDisplay name of the channel
3ChannelHandleStringThe @handle (e.g., @nateherk)
4ChannelURLStringFull canonical channel link
5ThumbnailURLStringChannel profile image URL
6DescriptionStringChannel description text
7CountryString / nullChannel's listed country (from API)
8JoinedDateString / nullChannel creation date (YYYY-MM-DD, from API)
9SubscriberCountInteger / nullTotal subscribers (exact number from API)
10VideoCountInteger / nullTotal videos uploaded (from API)
11TotalViewsInteger / nullLifetime view count (from API)
12KeywordsArrayChannel keywords from branding settings
13IsVerifiedBooleanVerification badge (from page scraping)
14ChannelTypeString / nullCategory: Music, Entertainment, Gaming, etc. (from API topic data)
15ScrapedAtStringISO 8601 timestamp of extraction

Contact Fields (19 fields, from About page scraping)

#FieldTypeDescription
16ExternalLinksArrayAll external links with labels, URLs, and types
17WebsiteUrlString / nullPrimary website URL
18InstagramUrlString / nullInstagram profile URL
19XUrlString / nullX (Twitter) profile URL
20LinkedInUrlString / nullLinkedIn profile URL
21FacebookUrlString / nullFacebook page URL
22TikTokUrlString / nullTikTok profile URL
23DiscordUrlString / nullDiscord server invite URL
24TelegramUrlString / nullTelegram channel URL
25PrimaryAggregatorUrlString / nullLink aggregator (Linktree, Beacons, etc.)
26OtherLinksArrayAdditional uncategorized links
27EmailsArrayAll extracted email addresses
28PrimaryEmailString / nullHighest confidence email
29EmailConfidenceNumber / nullConfidence score (0-100)
30EmailSourcesArrayWhere emails were found
31HasLinksBooleanWhether channel has external links
32HasEmailBooleanWhether email was found
33BusinessInquiryAvailableBooleanWhether a hidden business email exists (behind CAPTCHA)
34EmailValidationStatusString / nullEmail validation result when validateEmails is on: mx_valid, role_valid, no_mx, disposable, or unknown (null when disabled)

Status & Discovery Fields (4 fields)

#FieldTypeDescription
35StatusStringsuccess, or no_contact when the channel has no email/links
36SourceTypeString / nullHow the channel was discovered: search, video, or channel
37SourceQueryString / nullThe search keyword or input URL the channel came from
38SearchRankInteger / nullPosition within the search results (null for Channels entries)
39ContactabilityScoreInteger (0–100)Outreach-readiness score bundling email presence + confidence, MX/disposable validation, alternative contact routes (website, socials, aggregator), and credibility (business-inquiry, verification). Higher = easier to reach.
40QualificationTierStringCRM tier from the score: Hot (≥80), Warm (≥60), Cold (≥40), Unqualified (<40).
41IsQualifiedBooleantrue when ContactabilityScore ≥ your Qualification Threshold input (default 60).

Note on ContactabilityScore: A single 0–100 signal to sort and qualify leads. A deliverable direct email dominates the score (up to 60 pts), with the rest from contact-route richness (up to 28) and credibility (up to 12). Channels with only social links (no direct email) typically land in the 20–50 range. When validateEmails is off, the email is scored as "unknown" (not penalized as undeliverable).

Note on qualification & webhooks (CRM-ready): Every channel is tiered (QualificationTier) and flagged (IsQualified) against your Qualification Threshold input — no channels are dropped, they're just annotated so you can sort/segment in your CRM. Set an optional Webhook URL to stream each delivered channel to Zapier, Make, n8n, or your own endpoint as a real-time JSON POST (one request per channel); add a Webhook Authorization Header to secure it. Webhook delivery is best-effort — a failed POST is logged and never stops the run.

Note on BusinessInquiryAvailable: Some YouTube channels have a "View email address" button that requires solving a reCAPTCHA. This scraper does not attempt to bypass the CAPTCHA. Instead, it flags BusinessInquiryAvailable = true so you know the channel has a business email available, even though it cannot be extracted automatically.


Output Example

Table View - Results Overview

YouTube Channel Contacts Scraper - Results Table View

Table View - All Fields

YouTube Channel Contacts Scraper - All Fields Table View

JSON View

{
"ChannelId": "UC2ojq-nuP8ceeHqiroeKhBA",
"ChannelName": "Nate Herk | AI Automation",
"ChannelHandle": "@nateherk",
"ChannelURL": "https://www.youtube.com/@nateherk",
"ThumbnailURL": "https://yt3.ggpht.com/rjiskq1h4EjTgsqvP_BOsnpwCdHUHKvSo00RmUraoWqDuHQN6RAUMdo1ircHs0ZcKQrrWNvukEs=s800-c-k-c0x00ffffff-no-rj",
"Description": "Hi 👋 I'm Nate Herk. I'm passionate about helping businesses unlock the power of AI Automations to save time, cut costs, and stay competitive. \n\nI believe that businesses that don't adopt AI will struggle to keep up, and I'm here to make sure you're ahead of the curve. Whether you're new to AI or looking to refine your workflows, I'm here to guide you through it all.\n\nLet's build a more efficient future together! Book a call on my website!\n",
"Country": null,
"JoinedDate": "2013-11-17",
"SubscriberCount": 530000,
"VideoCount": 328,
"TotalViews": 22862386,
"Keywords": [],
"IsVerified": false,
"ChannelType": "Technology",
"ScrapedAt": "2026-02-19T00:39:00.713Z",
"ExternalLinks": [
{
"label": "skool.com/ai-automation-society-plus/about",
"url": "https://www.skool.com/ai-automation-society-plus/about",
"type": "website"
},
{
"label": "https://www.skool.com/ai-automation-s...",
"url": "https://www.skool.com/ai-automation-society/about",
"type": "website"
},
{
"label": "https://uppitai.com/",
"url": "https://uppitai.com/",
"type": "website"
},
{
"label": "https://n8n.partnerlinks.io/22crlu8afq5r",
"url": "https://n8n.partnerlinks.io/22crlu8afq5r",
"type": "website"
},
{
"label": "http://hostinger.com/nateherk",
"url": "http://hostinger.com/nateherk",
"type": "website"
},
{
"label": "nateherk.com",
"url": "https://nateherk.com/",
"type": "website"
}
],
"WebsiteUrl": "https://www.skool.com/ai-automation-society-plus/about",
"InstagramUrl": null,
"XUrl": null,
"LinkedInUrl": null,
"FacebookUrl": null,
"TikTokUrl": null,
"DiscordUrl": null,
"TelegramUrl": null,
"PrimaryAggregatorUrl": null,
"OtherLinks": [],
"Emails": [
"sponsorships@nateherk.com"
],
"PrimaryEmail": "sponsorships@nateherk.com",
"EmailConfidence": 100,
"EmailSources": [
"about-page-button"
],
"HasLinks": true,
"HasEmail": true,
"BusinessInquiryAvailable": true,
"EmailValidationStatus": null,
"Status": "success",
"SourceType": "search",
"SourceQuery": "AI automation tools",
"SearchRank": 3,
"ContactabilityScore": 65,
"QualificationTier": "Warm",
"IsQualified": true
}

Quick Start

Example 1: Keywords Search with Full Contact Extraction

{
"searchQueries": ["AI automation tools"],
"maxResultsPerQuery": 20,
"regionCode": "US",
"language": "en",
"extractContacts": true,
"validateEmails": true
}

Example 2: Specific Channels with Email Validation

Provide channels by handle, ID, channel URL, or video URL — one per line. Each is an exact lookup.

{
"startUrls": [
"@mkbhd",
"UCX6OQ3DkcsbYNE6H8uQQuVA",
"https://www.youtube.com/@LinusTechTips",
"https://www.youtube.com/watch?v=dQw4w9WgXcQ"
],
"extractContacts": true,
"validateEmails": true
}

Example 3: Fast Mode - Metadata Only (No Contact Extraction)

{
"searchQueries": ["tech reviews"],
"maxResultsPerQuery": 50,
"extractContacts": false
}

How to read the source fields: results record where they came from. Channels you request in the Channels field return SourceType: "channel" (or "video" when you pass a video URL) with SearchRank: null. Channels discovered via Search Keywords return SourceType: "search", the keyword in SourceQuery, and a SearchRank (1, 2, 3…) for their position in YouTube's results.


Performance & Reliability

Throughput

ChannelsWith Contacts (hybrid)API Only (no contacts)
10 channels~20-40 seconds~10-15 seconds
50 channels~2-3 minutes~1-2 minutes
100 channels~4-5 minutes~2-3 minutes
500 channels~15-25 minutes~8-12 minutes

Architecture

  • YouTube Data API v3: Fast, reliable metadata (subscribers, views, country, date)
  • Puppeteer: Targeted About page scraping for contacts only
  • Automatic fallback: Full scraping pipeline if API unavailable
  • Enhanced discovery: Channel filter + dual extraction from search results
  • Smart deduplication: ChannelId-based duplicate prevention
  • Error handling: Automatic retries with exponential backoff
  • Anti-detection: Realistic browser fingerprinting and human-like behavior

Use Cases

Influencer Outreach

Find creators in your niche with their contact information. Export to CRM for automated outreach campaigns. Filter by subscriber count and engagement metrics.

PR & Media Relations

Build media lists with journalist YouTube channels. Extract business emails for press releases. Identify channels covering your industry.

B2B Partnerships

Discover business channels with LinkedIn profiles. Find decision makers through channel descriptions. Connect via multiple social platforms.

Competitive Analysis

Map competitor social media presence. Discover partnership networks. Analyze market communication channels.

Content Marketing

Identify collaboration opportunities. Find guest posting channels. Build relationships with content creators.


Best Practices

  1. Start small: Test with maxResultsPerQuery: 10 to verify results
  2. Use keywords effectively: Broad keywords discover more channels through dual extraction
  3. Qualify leads fast: Sort by ContactabilityScore or filter on IsQualified / QualificationTier to prioritize reachable channels
  4. Respect privacy: Only use publicly available contact information ethically
  5. Filter results: Use HasEmail and HasLinks to find contactable channels
  6. Verify contacts: Higher EmailConfidence scores are more reliable
  7. Export strategically: Use CSV for CRM import, JSON for programmatic access
  8. Fast mode: Turn off extractContacts for fastest extraction when you don't need contacts

Changelog

2026-07-20 — Scoring, CRM & fairer billing (v1.0)

A major update driven by a marketplace assessment — adding lead scoring, CRM integration, email validation, and fairer pricing. Output grew to 41 fields (15 standard + 19 contact + 4 status/lineage + 1 contactability score + 2 CRM qualification).

Scoring & CRM (new)

  • Contactability score (0–100) — one outreach-readiness number per channel (ContactabilityScore), bundling email presence + confidence, MX/disposable validation, contact-route richness, and credibility. No competitor offers this.
  • Lead qualification — every channel gets a QualificationTier (Hot / Warm / Cold / Unqualified) and an IsQualified flag against your minQualificationScore threshold (default 60). Annotation only — nothing is dropped.
  • Per-record webhooks — stream each delivered channel as a real-time JSON POST to Zapier, Make, n8n, or your CRM (webhookUrl + optional secret webhookAuthHeader). Best-effort; a failed POST is logged and never stops the run.

Contact enrichment & validation

  • Email validation — optional MX check + disposable/role detection → EmailValidationStatus (mx_valid, role_valid, no_mx, disposable, unknown).
  • Linked-website email scan — fetches the channel's linked site(s) and scans for additional emails beyond the About page. Now also decodes Cloudflare-obfuscated emails (data-cfemail) and, when the linked page has none, follows a same-origin contact/about page (capped) — recovering business emails that a plain scan misses.
  • Video-description email scan — when the About page and linked sites yield no email, scans the channel's recent video descriptions (public data) — the source that lets some competitors surface emails others miss. Runs only when no email is found yet (1 free YouTube API quota unit); results pass the junk-domain blocklist. Precision guards: an email must recur across ≥2 descriptions (drops one-off guest/sponsor/scam addresses), and a brand-matching domain is preferred as the primary contact.
  • Subscriber filtersminSubscribers / maxSubscribers.
  • Status & discovery lineageStatus, SourceType, SourceQuery, SearchRank show where each channel came from.

Discovery, billing & UX

  • Fairer billing — discovery is now free; the search-query charge was removed, so you pay only per channel returned. Filtered-out / not-found / errored channels are never charged.
  • Result controlsonlyWithContact (only keep reachable channels) and maxTotalChannels (hard run cap).
  • Simplified input — universal options internalized (email-detection sensitivity, link depth, concurrency); use-case options kept as toggles/filters.

Positioning

  • Evaluated premium gated-email (CAPTCHA) retrieval and deliberately declined it — we keep "public data, no CAPTCHA bypass" as a ToS-safe stance. BusinessInquiryAvailable still flags when a channel has a gated business email, without revealing it.

v1.0 — Initial release (Feb 2026) + performance tuning (Apr 2026)

  • Hybrid architecture — YouTube Data API v3 for metadata + a browserless/Puppeteer path for contacts, with automatic fallback when the API is unavailable.
  • Contact extraction — public emails with confidence scoring from the About page.
  • Social links — all external links categorized by platform (Instagram, X, LinkedIn, TikTok, Discord, Telegram, …).
  • Link-aggregator detection — Linktree, Beacons, and similar hubs.
  • Business-inquiry flag — detects when a gated business email exists (without bypassing the CAPTCHA).
  • Performance tuning — browserless pipeline with high concurrency (~100+ channels/min) and no residential proxy required.

Pricing

This actor uses pay-per-event pricing. You are charged only per channel returned (channel-result) — no search fee and no setup fee. Keyword searches and channel lookups cost nothing extra; you pay only for the channels you actually get.

  • Fair billing: you are not charged for channels that are filtered out, not found, or fail — only for a channel that is successfully returned to your dataset.
  • Pay only for contactable channels: turn on Only Channels With Contact (onlyWithContact) to drop contactless channels before they're saved or billed.
  • Cost control: use maxTotalChannels to hard-cap the number of channels a run can return.
  • Email validation (optional): when validateEmails is enabled, each validated email adds a small email-validated charge.

The exact per-event prices are shown on this actor's Apify pricing tab (set on the platform, not in the code).


FAQ

Do you extract the hidden "business email" behind YouTube's CAPTCHA? No. We flag BusinessInquiryAvailable: true when one exists, but we never bypass CAPTCHAs or log into Google. We extract emails that are publicly visible in the About page / description.

Do I pay for channels with no email? Only if you ask for them. By default you get (and pay for) every discovered channel, since the full profile has value. Turn on onlyWithContact to pay only for channels that have an email or link.

Do I need a proxy? No. The actor works without any residential proxy.

How is this different from an email-only scraper? You get the whole creator profile — subscribers, country, join date, categorized social links, and email with a confidence score — discoverable from a keyword, channel, video, or playlist URL. It's built for CRM-ready outreach, not just a raw email dump.

How fast is it? The default browserless pipeline processes ~100+ channels/minute. Discovery and enrichment run without launching a browser.


Found this useful? A rating on the Apify Store really helps — and if something's missing, open an issue with your use case and we'll take a look.


Compliance

  • Intended for legitimate channel discovery, influencer research, and business intelligence
  • Collects only public YouTube channel data
  • Uses YouTube Data API v3 within Google's usage policies
  • Does not attempt to bypass CAPTCHAs or access gated content
  • Users responsible for compliance with applicable laws in their jurisdiction

Support

  • Issues: Report via GitHub or Apify support
  • Feature requests: Open an issue with your use case
  • Documentation: See /docs folder for detailed PRD and guides

Built for production-ready channel discovery and outreach