YouTube Channel Contact Scraper — Emails, Socials & URLs avatar

YouTube Channel Contact Scraper — Emails, Socials & URLs

Pricing

from $1.50 / 1,000 channel results

Go to Apify Store
YouTube Channel Contact Scraper — Emails, Socials & URLs

YouTube Channel Contact Scraper — Emails, Socials & URLs

Extract public YouTube channel emails, social profiles, and website links in batches with source evidence and optional recent video descriptions.

Pricing

from $1.50 / 1,000 channel results

Rating

0.0

(0)

Developer

Arabia Insights

Arabia Insights

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Find publicly published contact information from YouTube channels in bulk. Supply channel URLs, handles, or channel IDs and receive structured records with source attribution and public channel metadata. Optionally inspect recent public video, Shorts, and completed-stream descriptions for creator contacts and business inquiries.

Why use this Actor?

  • Native bulk processing: Process from 1 up to 1,000 channels in a single run. Aliases, handle variations, and duplicate URLs resolving to the same channel are automatically deduplicated while preserving your original input indexes.
  • Accurate source attribution: Every extracted email, social link, and outbound URL includes the originating YouTube surface (About page, channel profile link, or specific video description) and extraction method.
  • No credentials or browser overhead: Operates entirely over anonymous HTTP without requiring Google API keys, YouTube logins, browser automation, or pasted session cookies.
  • Data transparency: Clear distinction between channel-published links and video descriptions (which may include sponsor or affiliate mentions).
  • Export ready: Download data in JSON, CSV, or Excel formats, or integrate directly with CRMs, outreach sequences, and automated pipelines via the Apify API.

Extracted data fields

Field categoryExtracted details
EmailsAddresses published in channel About descriptions or recent video descriptions, including standard obfuscated formats (e.g. user [at] domain [dot] com).
Social linksRecognized social profile links published by the channel (Twitter/X, Instagram, TikTok, LinkedIn, Facebook, Discord, Twitch, Patreon, etc.). Social account ownership and profile authenticity are not independently verified.
Website linksOutbound website destinations, merchandise stores, newsletters, and link aggregation hubs (Linktree, Beacons, etc.).
Source evidenceDetailed provenance array indicating whether each contact originated from the About tab, an external profile link, or a specific video description, with exact YouTube source URLs.
Channel metadataCanonical channel ID, handle, channel title, description, avatar URL, country, and join date.
Public statisticsSubscriber count, view count, and video count, along with display precision indicators (exact, rounded, or unavailable).
Coverage & statusExecution status (success, partial, not_found, blocked, unavailable, failed), stop reason, descriptions requested vs. inspected, and surface breakdown.

3-step quick start

  1. Input channel identifiers: Enter channel handles (e.g. @GoogleDevelopers), channel URLs (e.g. https://www.youtube.com/@TED), or channel IDs.
  2. Configure scan depth: Keep Scan recent video descriptions disabled for rapid About-only discovery, or enable it to inspect recent video descriptions (default 20 descriptions per channel, maximum 100).
  3. Run and download: Start the Actor run and download your dataset as JSON, CSV, or Excel. Use JSON format if you require nested source provenance.

Input configuration

{
"channels": [
"@GoogleDevelopers",
"https://www.youtube.com/@TED"
],
"scanRecentDescriptions": false,
"maxVideosPerChannel": 20,
"allowResidentialFallback": false,
"maxResidentialRequests": 10
}

Input parameters

  • channels (array of strings, required): 1 to 1,000 YouTube channel URLs, @handles, or channel IDs. Aliases and duplicates resolving to the same canonical channel are merged into a single record. Video or playlist URLs are not accepted as channel identifiers. When description scanning is enabled, runs enforce a run-wide limit of 5,000 total planned descriptions (e.g. up to 250 channels at the default depth of 20 [250 × 20 = 5,000], or up to 50 channels at the maximum depth of 100 [50 × 100 = 5,000]). Invalid input combinations exceeding 5,000 planned descriptions are validated and rejected before scraping begins rather than silently clamped; split larger batches across sequential runs.
  • scanRecentDescriptions (boolean, optional, default: false): When enabled, inspects recent public upload descriptions (videos, Shorts, completed streams) in addition to About pages.
  • maxVideosPerChannel (integer, optional, default: 20, min: 1, max: 100): Maximum public upload descriptions inspected per channel when description scanning is enabled.
  • maxRequests (integer, optional, min: 1, max: 250000): Optional run-wide request limit covering direct requests, retries, redirects, and residential fallback. By default derived automatically from the channel batch size and configured description depth.
  • allowResidentialFallback (boolean, optional, default: false): Opt in to paid residential proxy fallback only if standard direct requests encounter rate limiting.
  • maxResidentialRequests (integer, optional, default: 10, min: 0, max: 1000): Maximum allowance for paid residential proxy requests across the run.
  • maxRunSeconds (integer, optional, default: 3600, min: 30, max: 14400): Collection time limit. Completed channel records are preserved if a run reaches its deadline.
  • concurrency (integer, optional, default: 5, min: 1, max: 10): Number of channels processed concurrently.

Output example

The Actor outputs structured JSON records matching the Apify dataset schema. Below is a representative record:

[
{
"schemaVersion": "1.0",
"recordKey": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
"id": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
"scrapedAt": "2026-09-23T10:00:00.000Z",
"inputIndexes": [0],
"inputValues": ["@example_creator"],
"channelHandle": "@example_creator",
"channelUrl": "https://www.youtube.com/channel/UC_x5XG1OV2P6uZZ5FSM9Ttw",
"channelName": "Example Creator Studio",
"description": "Weekly tutorials and technical explainers. Inquiries: contact@example.com",
"avatarUrl": "https://yt3.googleusercontent.com/example/avatar.jpg",
"country": "US",
"joinedAt": "2018-01-15",
"statistics": {
"subscribers": {
"value": 250000,
"display": "250K subscribers",
"precision": "rounded"
},
"views": {
"value": 45000000,
"display": "45,000,000 views",
"precision": "exact"
},
"videos": {
"value": 320,
"display": "320 videos",
"precision": "exact"
}
},
"emails": [
"contact@example.com"
],
"socials": [
"https://x.com/example_creator"
],
"urls": [
"https://example.com/store"
],
"contacts": [
{
"type": "email",
"value": "contact@example.com",
"platform": null,
"sources": [
{
"type": "channel_about",
"url": "https://www.youtube.com/channel/UC_x5XG1OV2P6uZZ5FSM9Ttw/about",
"label": null,
"videoId": null,
"method": "literal"
}
]
},
{
"type": "social",
"value": "https://x.com/example_creator",
"platform": "x",
"sources": [
{
"type": "channel_link",
"url": "https://www.youtube.com/channel/UC_x5XG1OV2P6uZZ5FSM9Ttw/about",
"label": "Twitter",
"videoId": null,
"method": "structured_link"
}
]
},
{
"type": "website",
"value": "https://example.com/store",
"platform": null,
"sources": [
{
"type": "channel_link",
"url": "https://www.youtube.com/channel/UC_x5XG1OV2P6uZZ5FSM9Ttw/about",
"label": "Store",
"videoId": null,
"method": "structured_link"
}
]
}
],
"status": "success",
"stopReason": "ABOUT_COMPLETE",
"warnings": [],
"coverage": {
"about": "complete",
"businessEmail": "not_inspected",
"descriptionsRequested": 0,
"descriptionsInspected": 0,
"descriptionsFailed": 0,
"videosSkipped": 0,
"videosListed": 0,
"order": "youtube_uploads_playlist",
"recentScan": "not_requested",
"historicalComplete": false,
"stopReason": "ABOUT_COMPLETE"
}
}
]

Pricing

The Actor uses Apify's Pay-Per-Event (PPE) model. It charges one dataset event for each delivered canonical channel row, including diagnostic rows such as not_found, unavailable, or failed results. Duplicate aliases for the same resolved channel are combined into one row, and the original input indexes are retained.

Apify planPer delivered rowPer 1,000 rows
Free$0.00225$2.25
Bronze$0.00200$2.00
Silver$0.00175$1.75
Gold$0.00150$1.50

The Actor start event is $0.002 per allocated memory GB, with a minimum of one event each time an execution starts. At the default 1 GB allocation, that is $0.002 per start; resurrecting an interrupted run starts another execution and can incur another start event. Apify platform usage is billed separately and varies with the resources used by the run. Residential proxy fallback is disabled by default; if enabled, residential traffic is optional, bounded, and can add variable platform charges.

A run spending limit can stop a batch before every submitted channel has a result. Review the delivered rows and run status to see what completed. Current event rates are also shown in the Pricing tab above.

Scope and limitations

  • Anonymous public YouTube only: The Actor extracts only publicly published text and links visible without logging in. It does not access private, unlisted, or member-only information.
  • No automated "View email address" reveal: YouTube's protected "View email address" feature may require account sign-in or an interactive challenge; this Actor does not access login-gated details. It extracts emails written directly in public About text or video descriptions.
  • No external site scraping: The Actor records outbound URLs, profile links, and shorteners as published on YouTube; it does not crawl or visit external websites or third-party social platforms.
  • Video descriptions and sponsor mentions: Video descriptions may include brand sponsorships, promotional partner emails, or agency contacts. The Actor extracts these as video mentions and preserves source attribution so you can review their context.
  • Absence of contacts: An empty emails: [] array indicates that no email was found on the inspected public YouTube surfaces; it is not a claim that the creator has no email address.
  • Batch limits and description bounds:
    • About-only mode supports batches up to 1,000 channels per run.
    • Video description scanning is limited to a maximum of 5,000 planned descriptions per run to maintain performance and reliability. With the default setting of 20 descriptions per channel, a description-enabled run supports up to 250 distinct channels (250 × 20 = 5,000). At the maximum depth of 100 descriptions per channel, a run supports up to 50 distinct channels (50 × 100 = 5,000). Split larger lists into multiple runs.
  • No deliverability or ownership guarantees: Contact deliverability, mailbox validity, and channel or external social account ownership are not independently verified.

Frequently asked questions

How are email addresses detected?

The Actor inspects public channel About page text and recent video descriptions using pattern matching that detects standard email formats as well as common obfuscation patterns (such as name [at] domain [dot] com or name(at)domain.com).

Why does a channel have an empty email list?

Many creators do not write their business email directly in public text, instead relying solely on social links, external contact forms, or YouTube's login-gated business inquiry button. If an email is not in the public text surfaces, the emails array will be empty ([]).

How does the Actor handle channel aliases and handle changes?

If you supply multiple URLs or handles that point to the same underlying YouTube channel ID, the Actor identifies the canonical channel, merges the records into one output item, and retains all original input indices in inputIndexes.

Can I scan older videos across a creator's entire history?

No. The Actor inspects recent public uploads from the channel's uploads feed up to the configured limit (maximum 100 descriptions per channel). Historical complete channel archives are not supported.

How do I use this Actor programmatically?

You can trigger runs and retrieve dataset items via the Apify API using Python, JavaScript/TypeScript, or standard HTTP requests. Refer to the API tab on this page for code templates and webhooks setup.

Support and feedback

If you encounter unexpected errors, missing data formats, or have feature requests, please submit an issue via the Issues tab on this Actor's Store page with your run ID and the affected channel identifier.