# Youtube Channel Email Scraper (`scraperoka/youtube-channel-email-scraper`) Actor

📧 Email Scraper extracts verified emails from target websites and directories fast. ⚡ Clean data for outreach, lead generation, and B2B prospecting. 🎯 Save time, boost conversions—perfect for marketers, recruiters & sales teams.

- **URL**: https://apify.com/scraperoka/youtube-channel-email-scraper.md
- **Developed by:** [Scraperoka](https://apify.com/scraperoka) (community)
- **Categories:** Lead generation, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### YouTube Channel Email Scraper 🔍

**YouTube Channel Email Scraper** extracts emails and contact-related details from YouTube channel profiles—so you can build cleaner outreach lists faster. Whether you’re searching for a *YouTube channel email scraper*, a *YouTube email finder tool*, or ways to *find email for YouTube channel* leads, this actor helps you collect contact information from publicly available sources for marketer, recruiter, and data research workflows. It’s designed to take YouTube channel URLs, handles, or channel IDs and turn them into structured results you can use at scale—saving you hours of manual work.

***

### Why choose YouTube Channel Email Scraper?

| Feature | Benefit |
|---|---|
| ✅ All-in-one email + contact extraction | Extracts emails and also captures phone numbers and channel contact context in one run |
| ✅ URL, handle, and ID support | Accepts multiple YouTube channel formats so you can scrape your existing lead lists |
| ✅ Reliability-focused fetching | Uses retries and resilience when requests fail or are temporarily unavailable |
| ✅ Optional social link extraction | Can extract additional social media links from the channel about page when enabled |
| ✅ Structured, export-ready dataset | Saves consistent fields per channel so it’s easy to filter, analyze, and export |
| ✅ Scale-friendly batching | Processes each provided channel URL and saves results immediately for long jobs |

***

### Key features

- 📧 **Accurate Email Extraction**: Extracts email addresses from the channel page text and related publicly available content
- 🌐 **Flexible Input Formats**: Supports channel handles, username formats, channel IDs (UCxxxxxx), and full YouTube URLs
- 🛡️ **Resilience with Retries**: Includes retry logic with exponential backoff to improve scrape stability
- 🔄 **Rate-aware Request Timing**: Adds configurable request delays to reduce friction during bulk runs
- 📱 **Phone Number Extraction**: Extracts phone numbers from the channel text and returns them in international E.164 format
- 🔗 **Social Links from About Page (Optional)**: Extracts social platform links (for example: Twitter/X, Instagram, Facebook, and more) when enabled
- 💾 **Real-Time Data Saving**: Each channel’s result is pushed as soon as it’s processed, minimizing data loss on interruptions
- 📊 **Complete Channel Metadata**: Captures channel name, handle, description, joined date, subscriber count, and more where available

***

### Input

Provide input via an `input.json` file. Example structure:

```json
{
  "startUrls": [
    {
      "url": "https://www.youtube.com/@mkbhd"
    },
    {
      "url": "https://www.youtube.com/@veritasium"
    }
  ],
  "extractSocialLinks": true
}
```

#### Input Fields

| Field | Required | Description |
|---|---|---|
| `startUrls` | Yes | A list of YouTube channels to scrape. Provide any format: `@handle`, username, channel ID (UCxxxxxx), or full URLs (such as `/@channel`, `/c/`, `/user/`, `/channel/`). The actor automatically detects and processes all formats. |
| `extractSocialLinks` | No | When set to `true`, the actor also extracts additional social media links from the channel about page (for example, Twitter, Instagram, Facebook, etc.). Default is `true`. |

***

### Output

The actor saves each channel’s scraped result as a single JSON object into the dataset.

Example output for one channel:

```json
{
  "channel_url": "https://www.youtube.com/@mkbhd/about",
  "channel_handle": "mkbhd",
  "channel_name": "MKBHD",
  "emails": ["hello@example.com"],
  "phone_numbers": ["+14155552671"],
  "business_email": "hello@example.com",
  "subscriber_count": "XX subscribers",
  "video_count": "YYY videos",
  "channel_description": "Channel description text...",
  "social_links": {
    "twitter": "https://twitter.com/example",
    "instagram": "https://instagram.com/example"
  },
  "custom_url": "https://www.youtube.com/@mkbhd",
  "country": null,
  "joined_date": "Joined Month Year",
  "banner_url": null,
  "avatar_url": "https://example.com/avatar.jpg",
  "success": true,
  "error_message": null
}
```

#### Output Fields

| Field | Type | Description |
|---|---|---|
| `channel_handle` | text (string or null) | The channel handle (vanity URL handle) when available |
| `channel_name` | text (string or null) | The YouTube channel title when available |
| `emails` | array | All extracted email addresses found from channel page text and related publicly available content |
| `phone_numbers` | array | Extracted phone numbers returned in E.164 format where possible |
| `channel_url` | text (string or null) | The normalized channel URL used for scraping (without the `/about` suffix in the final stored value) |
| `subscriber_count` | text (string or null) | Subscriber count text when found in the channel data |
| `video_count` | number (stored as a text-derived value in code) or null | Video count text/value when found |
| `channel_description` | text (string or null) | Channel description text captured from the channel metadata |
| `social_links` | object | Social platform links extracted from the channel about page (only when `extractSocialLinks` is enabled and links are found) |
| `business_email` | text (string or null) | A single “primary” email chosen as the first item in `emails` (when any emails are found) |
| `custom_url` | text (string or null) | The channel vanity URL (as provided in channel metadata) |
| `country` | text (null) | Present in the dataset schema output, but returned as `null` by the actor logic |
| `joined_date` | text (string or null) | Joined date text when found |
| `banner_url` | text or null | Present in the dataset schema output, but returned as `null` by the actor logic |
| `avatar_url` | text (string or null) | Channel avatar thumbnail URL when available |
| `success` | boolean | `true` if the actor scraped enough data (channel name, emails, or subscriber count); otherwise `false` |
| `error_message` | text (string or null) | Error details when `success` is `false` |

After your run, you can export the dataset as JSON or CSV using Apify’s built-in export tools.

***

### How to use YouTube Channel Email Scraper (via Apify Console)

1. **Open Apify Console**\
   Go to [console.apify.com](https://console.apify.com) and sign in.

2. **Find the actor**\
   Search for **YouTube Channel Email Scraper** and open the actor page.

3. **Enter your `INPUT`**\
   In the **INPUT** tab, add your `startUrls` list.\
   You can paste YouTube channel links like `https://www.youtube.com/@handle`, or provide handles/IDs in the formats described by `startUrls`.

4. **(Optional) Enable social extraction**\
   Set `extractSocialLinks` to `true` if you want the actor to also pull social media links from the channel about page.

5. **Run the actor**\
   Click **Run**. During the run, you’ll see logs about processing progress and whether emails were found.

6. **Review output immediately**\
   Each channel result is saved right after processing, so you can monitor partial progress on longer batches.

7. **Open the dataset**\
   When the run completes, open the dataset named **Scraped Channels** and export the results to JSON or CSV.

No coding required—get accurate outreach-ready results in minutes with **YouTube Channel Email Scraper**.

***

### Advanced features & SEO optimization

- ⚙️ **Designed for bulk lead generation**: **YouTube Channel Email Scraper** is engineered to excel at *YouTube channel lead generation email scraper* workflows where you start with multiple channels and want structured contact info quickly.
- 🔄 **Input normalization included**: It supports handles and multiple YouTube URL types, so you can reuse existing spreadsheets without cleaning everything manually (handy for *extract email from YouTube channel* use cases).
- 📄 **Comprehensive contact coverage**: Beyond email addresses, it also returns phone numbers and a channel’s metadata context, which is useful for *scrape contact info from YouTube channels* projects.
- 🧠 **Uses your email priorities**: It extracts emails from public page text and sets `business_email` as the first email found—great for *YouTube outreach email scraper* pipelines.

***

### Best use cases

- 📈 **Outreach teams building influencer lists**: Gather emails and phone numbers to power personalized *YouTube business email scraper* campaigns.
- 🧑‍💼 **Recruiters sourcing creators and talent**: Use *YouTube creator email extraction* to contact individuals tied to public channel profiles.
- 🎓 **Market researchers profiling creators at scale**: Combine channel metadata (name, description, subscriber count) with *find youtuber email for outreach* results.
- ✉️ **Growth marketers running multi-channel lead gen**: Turn YouTube about-page contact signals into organized datasets with *YouTube channel contact details scraper* output.
- 🧱 **Data analysts enriching CRM tables**: Import structured JSON fields like `emails`, `business_email`, and `social_links` for analysis and segmentation.
- 🛠️ **Automation builders integrating into pipelines**: Use the dataset fields in your own systems for *email scraping software for YouTube* workflows.
- 🌍 **Regional targeting and niche discovery**: Start with channels you care about, then extract contact details for *YouTube influencer email scraper* research.

***

### Technical specifications

- **Supported Input Formats**
  - ✅ `startUrls` accepts channel handles, usernames, channel IDs (UCxxxxxx), and full YouTube URLs in the formats described by the actor input schema
- **Proxy Support**
  - ✅ Built-in proxy support for reliable scraping
  - If proxy setup fails, the actor continues without proxy (lower success rate is possible)
- **Retry Mechanism**
  - ✅ Uses retries and fallback timing for resilience when requests fail or are temporarily unavailable
- **Dataset Structure**
  - ✅ Dataset: **YouTube Channel Contact Data**
  - ✅ Component display: **Scraped Channels** (table view)
- **Rate Limits & Performance**
  - ✅ Includes configurable request delay (`requestDelay`) and max retries (`maxRetries`) at runtime
- **Limitations**
  - ❌ If no publicly available contact data is present on the channel page, the actor may return no emails
  - ❌ Some channels may not be accessible depending on publicly available page responses

***

### FAQ

#### Does YouTube Channel Email Scraper require login to work?

✅ No. The actor extracts information from publicly accessible sources using the provided channel URLs. You do not need to log into YouTube in the actor.

#### What kinds of YouTube channel inputs are accepted?

✅ The `startUrls` field accepts multiple formats: YouTube channel handles (like `@handle`), usernames, channel IDs (UCxxxxxx), and full YouTube URLs such as `/@channel`, `/c/`, `/user/`, or `/channel/`.

#### Can it extract social media links too?

✅ Yes—when `extractSocialLinks` is enabled (default is `true`). It extracts additional social links from the channel about page, and returns them inside the `social_links` object.

#### What email fields will I get in the output?

✅ The actor returns `emails` (an array of all extracted email addresses) and `business_email` (a single primary email chosen as the first item from `emails` when available).

#### Does it also extract phone numbers?

✅ Yes. It returns phone numbers in `phone_numbers` extracted from channel text and formatted using the phone number library.

#### Is there a free-tier limit on results?

✅ Yes. The actor logs that a free user has a result limit of **100 emails maximum**, and the run stops after reaching that threshold.

#### Can I use this output with my CRM or outreach workflows?

✅ Yes. The dataset is saved per channel with consistent JSON fields (including `emails`, `business_email`, `social_links`, and channel metadata), making it straightforward to export to JSON/CSV and load into your CRM pipeline.

***

### Support & feature requests

If you’re using **YouTube Channel Email Scraper** and want improvements, we’d love to hear from you.

- 💡 **Feature Requests**: Want enhancements like additional export formats, extra contact fields, or custom post-processing for leads? Share your ideas.
- 📧 **Contact**: Email us at <dataforleads@gmail.com>.

Your feedback shapes what we build next for **YouTube Channel Email Scraper**.

***

*If you’re looking for the most comprehensive, SEO-optimized way to extract emails from YouTube channels, **YouTube Channel Email Scraper** is built for exactly that.*

### Disclaimer

**This tool only accesses publicly accessible sources.** It does not access private profiles, authenticated data, or password-protected pages. It’s your responsibility to comply with applicable laws (including GDPR/CCPA where relevant), spam regulations, and platform terms of service.

For data removal requests, contact <dataforleads@gmail.com>. Please use this actor responsibly, ethically, and only for legitimate purposes.

# Actor input Schema

## `startUrls` (type: `array`):

List YouTube channels using any format: @handle, username, channel ID (UCxxxxxx), or full URLs (/@channel, /c/, /user/, /channel/). The actor will automatically detect and process all formats.

## `extractSocialLinks` (type: `boolean`):

Extract additional social media links from channel about page (Twitter, Instagram, Facebook, etc.).

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.youtube.com/@mkbhd"
    },
    {
      "url": "https://www.youtube.com/@veritasium"
    }
  ],
  "extractSocialLinks": true
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.youtube.com/@mkbhd"
        },
        {
            "url": "https://www.youtube.com/@veritasium"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraperoka/youtube-channel-email-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": [
        { "url": "https://www.youtube.com/@mkbhd" },
        { "url": "https://www.youtube.com/@veritasium" },
    ] }

# Run the Actor and wait for it to finish
run = client.actor("scraperoka/youtube-channel-email-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.youtube.com/@mkbhd"
    },
    {
      "url": "https://www.youtube.com/@veritasium"
    }
  ]
}' |
apify call scraperoka/youtube-channel-email-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scraperoka/youtube-channel-email-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/pTbCjqR2CHv9mKxfp/builds/7xC4LBxaQVXHQePDz/openapi.json
