# Mass Youtube Channel Email Scraper (`solid-scraper/mass-youtube-channel-email-scraper`) Actor

📧 Mass YouTube Channel Email Scraper extracts verified business emails from targeted channels fast. Perfect for outreach, lead gen, and growth teams—save hours, reach the right prospects instantly. 🚀

- **URL**: https://apify.com/solid-scraper/mass-youtube-channel-email-scraper.md
- **Developed by:** [SolidScraper](https://apify.com/solid-scraper) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **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 Leads Generator - B2B & B2C Email Finder 📈

**YouTube Leads Generator - B2B & B2C Email Finder** helps you build outreach-ready lead lists by scraping YouTube channels using your **keywords**, then enriching them with **public contact information (emails)** when available. This YouTube lead generation tool is designed for anyone who needs **YouTube to email leads**, **B2B YouTube lead generator** research, or **B2C YouTube lead generation** prospecting—so you can find relevant contacts at scale and save hours of manual work.

***

### Why choose YouTube Leads Generator - B2B & B2C Email Finder?

| Feature | Benefit |
| --- | --- |
| ✅ **Keyword-based lead generation** | Search by multiple keywords, each processed separately, to produce targeted YouTube sales leads email lists |
| ✅ **Email-only filtering mode** | Optionally collect leads **with emails only**, using email-provider patterns in the scraping mode |
| ✅ **Reliability with retries** | Uses retry logic (max retries set to **3**) to improve success rate when pages fail to load |
| ✅ **Proxy support for resilience** | Built-in proxy support for more reliable scraping and fewer interruptions during runs |
| ✅ **Structured dataset output** | Saves results in a consistent dataset with channel details, social links, and an `emails` array |
| ✅ **Scale-ready processing** | Generates up to **max leads per keyword** (1–500) and saves leads as it goes |

***

### Key features

- 🎯 **YouTube lead generation by keywords:** Provide a list of search keywords and the actor processes each keyword to collect channel leads.
- 📧 **Accurate email finder for YouTube leads:** Extracts email addresses from publicly available channel text content and external links, returning them in `emails`.
- 🛡️ **Scrape resilience with retries:** Includes retries (configured as `max_retries = 3`) and handles failure cases without stopping the whole run.
- 🌍 **Optional country targeting:** Filter results by `country` (leave empty for worldwide results).
- 🔄 **Two operating modes (all channels vs email-only):** Toggle `scrapeLeadsWithEmail` to switch between collecting all matching channels or only those with emails.
- 💾 **Real-time data saving:** Each successful lead is pushed immediately to the dataset so you don’t lose progress mid-run.
- 🔗 **Social link enrichment:** Extracts external links and converts recognized ones into a `social_links` object (e.g., twitter, linkedin, instagram).
- 📊 **Complete channel context:** Each lead includes channel URL, handle, description, subscriber/video counts, joined date, and avatar URL.

***

### Input

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

```json
{
  "keywords": ["fitness", "tech reviewer"],
  "country": "United States",
  "maxLeadsPerKeyword": 20,
  "scrapeLeadsWithEmail": false
}
```

#### Input Fields

| Field | Required | Description |
| --- | --- | --- |
| `keywords` | **Yes** | List of keywords to search for YouTube channels. Each keyword is searched separately (example: `fitness`, `gaming`, `tech reviewer`). |
| `country` | No | Target country to filter results. Leave empty for worldwide results. |
| `maxLeadsPerKeyword` | No | Maximum number of leads to collect for each keyword (**1–500**). Default is **20**. |
| `scrapeLeadsWithEmail` | No | If enabled, will search for channels that have emails in their description (using common email providers like Gmail, Hotmail, Outlook, Yahoo). If disabled, will find all channels matching keywords. Default is **false**. |

***

### Output

After execution, the actor saves each lead’s data in JSON format into the dataset.

#### Output Fields

```json
[
  {
    "keyword": "fitness",
    "channel_name": "Example Channel Name",
    "channel_handle": "examplehandle",
    "emails": [
      "contact@example.com"
    ],
    "channel_url": "https://www.youtube.com/channel/UCxxxxxxxxxxxxxxxxxxxxxx",
    "subscriber_count": "123,456",
    "video_count": "789",
    "joined_date": "Jan 1, 2020",
    "channel_description": "Channel description text...",
    "social_links": {
      "twitter": "https://twitter.com/example",
      "linkedin": "https://www.linkedin.com/company/example"
    },
    "custom_url": "https://www.youtube.com/@examplehandle",
    "avatar_url": "https://example.com/avatar.jpg"
  }
]
```

| Field | Type | Description |
| --- | --- | --- |
| `keyword` | string | The keyword used to find this channel (one lead is associated with the current keyword). |
| `channel_name` | string | Channel display name. |
| `channel_handle` | string | null | Channel handle (vanity URL handle), when available. |
| `emails` | array | All extracted email addresses found in publicly available channel text/external links. |
| `channel_url` | string | Normalized YouTube channel URL (stored as the base channel URL). |
| `subscriber_count` | string | null | Subscriber count text, when found. |
| `video_count` | string | null | Total video count text, when found. |
| `joined_date` | string | null | Joined date text, when found. |
| `channel_description` | string | null | Channel description text used during extraction. |
| `social_links` | object | Recognized social links extracted from channel external links (e.g., `twitter`, `instagram`, `linkedin`, etc.). |
| `custom_url` | string | null | Vanity/custom channel URL, when available. |
| `avatar_url` | string | null | Channel avatar image URL, when available. |

Note: The dataset is titled **Scraped Leads** (“YouTube Leads Dataset”) and is structured to include the fields listed above.

***

### How to use YouTube Leads Generator - B2B & B2C Email Finder (via Apify Console)

1. **Open Apify Console**\
   Log in at https://console.apify.com and go to the **Actors** tab.

2. **Find the actor listing**\
   Search for **YouTube Leads Generator - B2B & B2C Email Finder** and open the actor page.

3. **Enter your INPUT**\
   In the **INPUT** panel, provide the JSON fields from the Input section above.\
   Add one or more `keywords`, and set `maxLeadsPerKeyword` to control how many leads you want per keyword.

4. **Choose your mode (email-only vs all channels)**\
   Set `scrapeLeadsWithEmail` to:
   `true` for **YouTube lead generation** that returns channels with emails only, or\
   `false` to collect all matching channels and enrich what’s available.

5. **Run the actor**\
   Click **Run**. Watch the live logs—progress is tracked per keyword, and leads are enriched and saved as the run proceeds.

6. **Monitor reliability details**\
   The actor includes retries and proxy support to help with scraping reliability.

7. **Open the OUTPUT dataset**\
   After completion, open the **Scraped Leads** dataset (**YouTube Leads Dataset**) and export the results (JSON/CSV) from the dataset UI.

No coding required—get targeted YouTube outreach email lists in minutes. 🚀

***

### Advanced features & SEO optimization

- 🔎 **Engineered for YouTube to email leads:** Extracts emails into an `emails` array while also capturing channel context like `subscriber_count`, `video_count`, and `joined_date`.
- 📌 **Built for B2B and B2C outreach:** Toggle `scrapeLeadsWithEmail` so you can switch between broader prospecting and tighter **email finder for YouTube leads** workflows.
- 🧠 **Input flexibility for targeted search:** Use multiple `keywords` and (optionally) `country` to refine results for **YouTube prospecting tool** use cases.
- 🛡️ **Includes retries and fallbacks for resilience:** Improves odds of successful enrichment when a channel page fails to load or returns errors.
- 💾 **Keyword-aware output:** Each lead includes the originating `keyword`, which makes it easier to build segmented outreach lists (e.g., “YouTube sales leads email” by niche).

***

### Best use cases

- 📈 **Marketing teams building YouTube lead generation**: Generate segmented outreach lists by niche keywords and export a ready-to-import JSON/CSV dataset.
- 💼 **B2B sales prospecting**: Use **B2B email finder** mode (`scrapeLeadsWithEmail: true`) to prioritize channels likely to contain contact emails.
- 🧾 **Recruiters sourcing creators and experts**: Identify YouTube marketing lead capture targets and enrich them with emails and social links for follow-up.
- 🔬 **Data analysts researching creator markets**: Combine `subscriber_count`, `video_count`, `joined_date`, and `emails` to analyze potential influence and contact availability.
- 🛠️ **Agencies managing multi-campaign outreach**: Run multiple keywords and keep `keyword` in output to map leads to campaigns quickly.
- 💻 **CRM and automation workflows**: Ingest YouTube outreach email list leads into your pipeline using the structured dataset fields (channel URL, emails, social links).
- 🎮 **Creators or communities seeking partners (B2C)**: Build a targeted **B2C email finder** style list by niche keyword while still retaining channel metadata for qualification.

***

### Technical specifications

- **Supported Input Formats**
  - ✅ JSON input with `keywords` (array of strings)
  - ✅ Optional `country`, `maxLeadsPerKeyword` (1–500), and `scrapeLeadsWithEmail` (boolean)

- **Proxy Support**
  - ✅ Yes — built-in proxy support is used for both general scraping and YouTube enrichment to improve reliability

- **Retry Mechanism**
  - ✅ Yes — uses retries with `max_retries = 3` and includes backoff behavior

- **Dataset Structure**
  - ✅ Stored in the Apify dataset titled **Scraped Leads**
  - ✅ Includes fields: `keyword`, `channel_name`, `channel_handle`, `emails`, `channel_url`, `subscriber_count`, `video_count`, `joined_date`, `channel_description`, `social_links`, `custom_url`, `avatar_url`

- **Rate Limits & Performance**
  - ✅ Throttling is applied via a small `request_delay` (configured in the actor)
  - ✅ Processing runs until the target `maxLeadsPerKeyword` is reached for each keyword

- **Limitations**
  - ❌ Results depend on publicly available channel pages and the presence of contact emails in channel text/external links.
  - ❌ If `scrapeLeadsWithEmail` is enabled, channels without extracted emails are not saved as leads.

***

### FAQ

#### Does YouTube Leads Generator - B2B & B2C Email Finder return emails for every channel?

❌ Not necessarily. Emails are extracted from public channel text and external links, and only leads with extracted `emails` are saved when `scrapeLeadsWithEmail` is enabled.

#### What does `scrapeLeadsWithEmail` do?

✅ When `scrapeLeadsWithEmail` is `true`, the actor searches for channels that have emails in their description and saves leads only when emails are successfully extracted. When it’s `false`, it collects all matching channels and saves those that are successfully scraped.

#### Can I limit leads per keyword?

✅ Yes. Use `maxLeadsPerKeyword` to control how many leads are collected for each keyword (allowed range is **1–500**, default is **20**).

#### How do I target a specific country?

✅ Provide the `country` field using the supported list of countries. If you leave it empty, the actor proceeds with worldwide results.

#### Is the output exported as JSON or something else?

✅ The actor saves results in JSON format into the dataset (**Scraped Leads**). From the Apify dataset UI, you can export your dataset to common formats like JSON/CSV.

#### Does this actor require any login to work?

✅ No login input is required in the provided schema. It scrapes publicly available data and enriches channel pages to find emails.

#### Can I use the results in outreach and sales workflows?

✅ Yes, the dataset is built for lead enrichment and outreach workflows, including **YouTube sales leads email** and **email finder for YouTube leads** use cases. Always make sure your usage complies with applicable laws and platform rules.

#### What if I want help or a change to the actor?

💡 If you have feedback or want enhancements for **YouTube lead generation** and email finding (for example, better filtering or additional exports), contact us at <dataforleads@gmail.com>.

***

### Support & feature requests

Have a question or want to improve **YouTube Leads Generator - B2B & B2C Email Finder** for your YouTube prospecting tool workflow? 💬

- 💡 **Feature Requests:** Ideas like better export options (CSV/JSON enhancements), additional email extraction tuning, or CRM-friendly output formats are welcome.
- 📧 **Contact:** Reach out at <dataforleads@gmail.com>.

Your feedback directly shapes the roadmap for better YouTube to email leads generation.

***

### Closing CTA / Final thoughts

*If you’re looking for an SEO-optimized way to turn YouTube search keywords into real outreach data, this YouTube Leads Generator - B2B & B2C Email Finder is built to deliver results at scale.*\
*Start a run today and collect targeted email leads faster than manual research.*

***

### Disclaimer

**This tool accesses publicly accessible sources only.** It does not access private profiles, authenticated data, or password-protected content. It’s your responsibility to comply with applicable laws and regulations (including GDPR and CCPA), as well as platform terms and spam/anti-abuse rules.

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

# Actor input Schema

## `keywords` (type: `array`):

List of keywords to search for YouTube channels (e.g., 'tech reviewer', 'fitness', 'gaming'). Each keyword will be searched separately.

## `country` (type: `string`):

Filter results by country. Leave empty for worldwide results.

## `maxLeadsPerKeyword` (type: `integer`):

Maximum number of leads to collect for each keyword (1-500).

## `scrapeLeadsWithEmail` (type: `boolean`):

If enabled, will search for channels that have emails in their description (using common email providers like Gmail, Hotmail, Outlook, Yahoo). If disabled, will find all channels matching keywords.

## Actor input object example

```json
{
  "keywords": [
    "fitness"
  ],
  "country": "United States",
  "maxLeadsPerKeyword": 20,
  "scrapeLeadsWithEmail": false
}
```

# 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 = {
    "keywords": [
        "fitness"
    ],
    "country": "United States",
    "maxLeadsPerKeyword": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("solid-scraper/mass-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 = {
    "keywords": ["fitness"],
    "country": "United States",
    "maxLeadsPerKeyword": 20,
}

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

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

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

```

## CLI example

```bash
echo '{
  "keywords": [
    "fitness"
  ],
  "country": "United States",
  "maxLeadsPerKeyword": 20
}' |
apify call solid-scraper/mass-youtube-channel-email-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,solid-scraper/mass-youtube-channel-email-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/an7Ftxv9KPTjlINJP/builds/xBsvvuSkWM0JK6QmR/openapi.json
