# Youtube Email scrapper Pro (`lagic/youtubeemailscrapperpro`) Actor

emails from YouTube at scale with social links. Enter a keyword, scan thousands of channels in minutes. Get verified emails, subscriber counts, Instagram, Twitter, TikTok, Facebook, LinkedIn and website links. Perfect for influencer outreach and lead gen. 60+ emails/min.

- **URL**: https://apify.com/lagic/youtubeemailscrapperpro.md
- **Developed by:** [LAGIC](https://apify.com/lagic) (community)
- **Categories:** Lead generation, Agents, Automation
- **Stats:** 446 total users, 19 monthly users, 98.8% runs succeeded, 2 bookmarks
- **User rating**: 1.00 out of 5 stars

## Pricing

from $8.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#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 Email Scraper Pro

**Extract emails from YouTube creators at scale with social media links included.**

***

### What is Youtube Email Scraper Pro and how does it work?

Youtube Email Scraper Pro is a high performance web scraping tool that extracts business email addresses and social media contact details from YouTube channel descriptions. Enter any keyword and it automatically discovers thousands of YouTube channels, reads their public descriptions, and extracts every email and social link it finds.

Here's how you can find creator emails:

🔎 **By keyword.** Enter a keyword like `sales`, `fitness coaching`, or `real estate agent`. The spider automatically expands your keyword into hundreds of related search queries using YouTube's autocomplete engine, then discovers channels across all those niches.

🎯 **With filters.** Narrow down results using YouTube search filters. Sort by upload date, view count, or rating. Filter by video duration, minimum views, or subscriber count range to find exactly the right creators.

🌍 **By country & language.** Target creators from specific countries (`US`, `GB`, `IN`, `DE`) or languages (`en`, `es`, `fr`, `pt`, `hi`) to build geo-targeted lead lists.

***

### What data can I extract from YouTube channels?

With Youtube Email Scraper Pro, you will be able to extract the following data for each creator:

| Data | Description |
|------|-------------|
| 📧 **Email** | Business email from the channel description |
| 📺 **Channel Name** | Display name of the YouTube channel |
| 🔗 **Channel URL** | Direct link to the channel page |
| 🆔 **Channel ID** | Unique YouTube channel identifier |
| 👥 **Subscribers** | Subscriber count at time of scraping |
| 📸 **Instagram** | Instagram profile URL if listed |
| 🐦 **Twitter / X** | Twitter or X profile URL if listed |
| 🎵 **TikTok** | TikTok profile URL if listed |
| 📘 **Facebook** | Facebook page URL if listed |
| 💼 **LinkedIn** | LinkedIn profile URL if listed |
| 🌐 **Website** | External website URL if listed |
| 🔍 **Search Keyword** | The keyword that discovered this creator |
| 🕐 **Extracted At** | Timestamp of when the email was found |

***

### Why scrape YouTube for emails?

📩 **Influencer outreach.** Build targeted email lists for sponsorship and collaboration pitches

🤝 **Brand partnerships.** Find creators in your niche who are actively looking for brand deals (they list their business email for a reason)

📊 **Market research.** Analyze creator landscapes across any niche, including subscriber counts and social media presence

🎯 **Lead generation.** Generate verified leads for agencies, SaaS products, or services targeting content creators

💼 **Talent scouting.** Discover emerging creators before they blow up by filtering by subscriber count

🔄 **CRM enrichment.** Enrich your existing creator database with social media profiles and updated contact info

***

### How do I use Youtube Email Scraper Pro?

Youtube Email Scraper Pro was designed for an easy start even if you've never extracted data from the web before. Here's how you can scrape YouTube creator emails with this tool:

1. **Create a free Apify account** using your email.
2. **Open Youtube Email Scraper Pro** on the Apify platform.
3. **Enter a keyword** — for example, `fitness coaching` or `real estate`.
4. **Optionally set filters** — subscriber range, country, sort order, etc.
5. **Click "Start"** and watch emails appear in real time.
6. **Download your data** in JSON, CSV, Excel, XML, or HTML.

Results are pushed to the dataset **in real time** as they are discovered. You don't have to wait for the entire run to finish. Each email appears the moment it's found.

***

### Input

The input for Youtube Email Scraper Pro should be a keyword and optionally a maximum email count. For a fuller explanation of input in JSON, head over to the input tab.

The simplest input is just a keyword:

```json
{
    "keyword": "fitness coaching",
    "maxEmails": 200
}
```

For more targeted results, add filters:

```json
{
    "keyword": "real estate agent",
    "maxEmails": 500,
    "country": "US",
    "language": "en",
    "minSubscribers": 1000,
    "maxSubscribers": 500000,
    "sortBy": "upload_date",
    "uploadDate": "month"
}
```

#### Input Parameters

##### Search Settings

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `keyword` | string | *required* | Seed keyword to search YouTube for (e.g. "sales", "fitness coaching") |
| `country` | string | `""` | 2-letter country code (`US`, `GB`, `CA`, `IN`, `DE`). Leave empty for global |
| `language` | string | `"en"` | Language code for results (`en`, `es`, `de`, `fr`, `pt`, `hi`) |

##### Filters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `minSubscribers` | integer | `0` | Only include channels with at least this many subscribers |
| `maxSubscribers` | integer | `0` | Only include channels with at most this many subscribers (0 = no limit) |
| `minViews` | integer | `0` | Minimum video view count |
| `minLikes` | integer | `0` | Minimum video like count |
| `minComments` | integer | `0` | Minimum video comment count |
| `minDuration` | integer | `0` | Minimum video duration in seconds |
| `maxDuration` | integer | `0` | Maximum video duration in seconds |
| `sortBy` | enum | `"relevance"` | Sort order: `relevance`, `upload_date`, `view_count`, `rating` |
| `uploadDate` | enum | `"any"` | Time filter: `any`, `hour`, `today`, `week`, `month`, `year` |

##### Limits

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `maxEmails` | integer | `500` | Stop the spider after finding this many unique emails (max 10,000) |

##### Proxy (Optional)

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `proxyConfiguration` | object | `null` | Apify proxy configuration. The actor works without proxies for most use cases |

***

### Output sample

The results will be wrapped into a dataset which you can find in the Storage tab. Here's an excerpt from the JSON dataset you'd get if you search for `sales`:

```json
[
    {
        "email": "partnerships@simonsquibb.com",
        "channelName": "Simon Squibb",
        "channelUrl": "https://www.youtube.com/channel/UCGznz4NfW5iymkvn1l40qyA",
        "channelId": "UCGznz4NfW5iymkvn1l40qyA",
        "subscribers": 2220000,
        "source": "description",
        "extractedAt": "2026-02-23T20:30:47Z",
        "searchKeyword": "sales",
        "instagram": "",
        "twitter": "",
        "tiktok": "",
        "facebook": "",
        "linkedin": "",
        "website": "https://www.simonsquibb.com/"
    },
    {
        "email": "enquiries@betastudios.co.uk",
        "channelName": "Beta Squad",
        "channelUrl": "https://www.youtube.com/channel/UCuzPpG6JXO9p5Bt1cSjjJbw",
        "channelId": "UCuzPpG6JXO9p5Bt1cSjjJbw",
        "subscribers": 11600000,
        "source": "description",
        "extractedAt": "2026-02-23T20:32:51Z",
        "searchKeyword": "sales",
        "instagram": "https://instagram.com/betasquad",
        "twitter": "https://x.com/BetaSquad5",
        "tiktok": "",
        "facebook": "",
        "linkedin": "",
        "website": "https://www.betasquad.com/"
    },
    {
        "email": "upflip@creatorsagency.co",
        "channelName": "UpFlip",
        "channelUrl": "https://www.youtube.com/channel/UCTZ1y0Ci_bFEo3fP-cEFdQQ",
        "channelId": "UCTZ1y0Ci_bFEo3fP-cEFdQQ",
        "subscribers": 1590000,
        "source": "description",
        "extractedAt": "2026-02-23T20:33:05Z",
        "searchKeyword": "sales",
        "instagram": "",
        "twitter": "",
        "tiktok": "",
        "facebook": "",
        "linkedin": "",
        "website": "https://www.upflip.com/"
    }
]
```

You can choose in which format to download your YouTube email data: **JSON, JSONL, Excel spreadsheet, HTML table, CSV, or XML**.

A **Run Summary** is also saved automatically to the key-value store after each run:

```json
{
    "keyword": "sales",
    "emailsFound": 400,
    "channelsScanned": 4318,
    "ytSearchQueries": 694,
    "descHits": 4317,
    "emailYieldRate": 0.0926,
    "avgSubscribersPerEmail": 1696533,
    "resultsWithSocialLinks": 104,
    "socialLinkCoverage": 0.26,
    "extractionPaths": {
        "ytInitialData": 0,
        "htmlFallback": 4317,
        "failed": 1
    },
    "errors": {
        "rateLimit429": 0,
        "server5xx": 0,
        "timeout": 0,
        "parse": 0
    }
}
```

***

### How many results can you scrape with Youtube Email Scraper Pro?

Youtube Email Scraper Pro can return **400+ emails in under 7 minutes** on average. Here are typical results based on run time:

| Run Time | Typical Emails | Channels Scanned | Rate |
|----------|---------------|-----------------|------|
| 5 minutes | 150 to 250 | 2,000 to 3,000 | ~60/min |
| 10 minutes | 300 to 500 | 4,000 to 6,000 | ~50/min |
| 20 minutes | 500 to 900 | 8,000 to 12,000 | ~40/min |
| 30+ minutes | 900+ | 12,000+ | varies |

**Performance varies by niche.** Business, marketing, and coaching keywords tend to have higher email rates (8 to 12% of channels), while entertainment or gaming keywords tend to be lower (2 to 5%).

You have to keep in mind that scraping YouTube is dynamic and subject to change. The maximum number of results may vary depending on the keyword, location, and other factors. The best way to know for sure for your particular use case is to do a test run yourself.

***

### How much will scraping YouTube emails cost you?

It costs **$8 per 1,000 emails** extracted, which comes out to just **$0.008 per email**.

> 💡 **Tip:** Subscribing to one of the paid plans adds more credit to your account and reduces the cost of scraping. Check [Apify pricing](https://apify.com/pricing) for details.

***

### Do I need proxies to scrape YouTube?

**No.** The actor works without proxies for most use cases. Direct connections achieve a near 100% success rate for channel description fetching. In our benchmark run, 4,317 out of 4,318 channel descriptions were successfully fetched without any proxies.

If you want to run at extreme scale (1,000+ emails per run), you can enable proxies in the Proxy Configuration section. Residential proxies are recommended for the highest success rate.

***

### Frequently Asked Questions

#### Can I scrape emails from specific YouTube channels?

Currently, the actor discovers channels automatically by searching YouTube with your keyword. You provide a topic or niche keyword and it finds channels in that space. Direct URL-based scraping of specific channels is not supported in this version.

#### How does the actor find emails?

The actor searches YouTube for videos matching your keyword, visits each creator's channel page, reads their public "About" section and channel description, and extracts any email addresses and social media links they've listed. It uses YouTube's own data structures to extract this information efficiently.

#### Are the results deduplicated?

Yes. Each email appears only once in the results, even if it's found on multiple channels. Emails are also validated to filter out false positives such as image file names and internal YouTube URLs.

#### Can I filter by subscriber count?

Yes! Use `minSubscribers` and `maxSubscribers` to target specific channel sizes. For example, set `minSubscribers: 10000` and `maxSubscribers: 500000` to find mid-tier creators who are big enough to have influence but small enough to respond to outreach.

#### Why did I get fewer emails than maxEmails?

The actor stops when either it reaches the `maxEmails` target, the time budget runs out, or all available keywords have been searched. To get more emails, increase the run timeout in your Apify actor settings.

#### Does the actor extract private data?

No. The actor only extracts information that channel owners have **chosen to make publicly visible** in their channel descriptions and header links. It does not access private data, logged-in features, or protected content.

***

### Want to scrape other platforms for emails?

If you want to extract contact details from other platforms, check out these scrapers:

| Scraper | Description |
|---------|-------------|
| 🗺 Google Maps Email Extractor | Extract emails and social links from Google Maps places |
| 📸 Instagram Scraper | Scrape Instagram profiles and contact info |
| 💼 LinkedIn Scraper | Extract company and profile data from LinkedIn |
| 🐦 Twitter Scraper | Scrape Twitter profiles and bios for contact details |
| 📘 Facebook Pages Scraper | Extract data from Facebook business pages |

Browse the full [Apify Store](https://apify.com/store) for more scrapers.

***

### Integrations and Youtube Email Scraper Pro

Youtube Email Scraper Pro can be connected with almost any cloud service or web app thanks to [integrations](https://apify.com/integrations) on the Apify platform. You can integrate with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and more.

You can also use [webhooks](https://docs.apify.com/integrations/webhooks) to carry out an action whenever an event occurs, e.g., get a notification whenever Youtube Email Scraper Pro successfully finishes a run.

***

### Using Youtube Email Scraper Pro with the Apify API

The Apify API gives you programmatic access to the Apify platform. The API is organized around RESTful HTTP endpoints that enable you to manage, schedule, and run Apify actors. The API also lets you access any datasets, monitor actor performance, fetch results, create and update versions, and more.

**Python:**

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("lagic/youtubeemailscrapperpro").call(run_input={
    "keyword": "fitness coaching",
    "maxEmails": 100,
})

dataset_items = client.dataset(run["defaultDatasetId"]).list_items().items
for item in dataset_items:
    print(f"{item['email']} — {item['channelName']} ({item['subscribers']:,} subs)")
```

**JavaScript:**

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

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('lagic/youtubeemailscrapperpro').call({
    keyword: 'fitness coaching',
    maxEmails: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => {
    console.log(`${item.email} — ${item.channelName} (${item.subscribers} subs)`);
});
```

You can use the `apify-client` NPM package to access the API using Node.js, or the `apify-client` PyPI package to access the API using Python. Check out the [Apify API reference docs](https://docs.apify.com/api/v2) for full details, or click on the **API** tab for code examples.

***

### Is it legal to scrape YouTube data?

Our scrapers are ethical and do not extract any private user data. They only extract what the user has chosen to share publicly in their channel descriptions and header links. The actor does not:

- Access private or logged-in data
- Bypass authentication or paywalls
- Extract data that isn't publicly visible

However, you should be aware that your results could contain personal data (email addresses). You should not scrape personal data unless you have a legitimate reason to do so.

If you're unsure whether your reason is legitimate, consult your lawyers. You can also read [Apify's blog post on the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

***

### Not your cup of tea? Build your own scraper.

Youtube Email Scraper Pro doesn't exactly do what you need? You can always build your own! We have various scraper templates in Python, JavaScript, and TypeScript to get you started. Alternatively, you can write it from scratch using the open source library [Crawlee](https://crawlee.dev/). You can keep the scraper to yourself or make it public by adding it to [Apify Store](https://apify.com/store) (and find users for it).

Or let us know if you need a custom scraping solution.

***

### Your feedback

We're always working on improving the performance of our Actors. So if you've got any technical feedback for Youtube Email Scraper Pro or simply found a bug, please create an issue on the Actor's **Issues** tab in Apify Console.

# Actor input Schema

## `keyword` (type: `string`):

The seed keyword to search YouTube for (e.g., 'sales', 'fitness coaching', 'real estate'). The spider will auto-expand into related niches.

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

2-letter country code to target results from (e.g., 'US', 'GB', 'CA', 'IN', 'DE'). Leave empty for global results.

## `language` (type: `string`):

Language code for YouTube results (e.g., 'en', 'es', 'de', 'fr', 'pt', 'hi').

## `minLikes` (type: `integer`):

Only include channels whose videos have at least this many likes. Set to 0 to disable.

## `minComments` (type: `integer`):

Only include channels whose videos have at least this many comments. Set to 0 to disable.

## `minViews` (type: `integer`):

Only include videos with at least this many views. Set to 0 to disable.

## `minDuration` (type: `integer`):

Minimum video duration in seconds. Set to 0 to disable.

## `maxDuration` (type: `integer`):

Maximum video duration in seconds. Set to 0 to disable.

## `sortBy` (type: `string`):

How to sort YouTube search results.

## `uploadDate` (type: `string`):

Only search videos uploaded within this time period.

## `minSubscribers` (type: `integer`):

Only include channels with at least this many subscribers. Set to 0 to disable.

## `maxSubscribers` (type: `integer`):

Only include channels with at most this many subscribers. Set to 0 for no limit.

## `maxEmails` (type: `integer`):

Stop the spider after finding this many unique emails. Leave empty or set to 0 for default of 500.

## `proxyConfiguration` (type: `object`):

Optional. Use proxies if needed for high scale. Direct connection works great for most use cases.

## Actor input object example

```json
{
  "keyword": "sales",
  "country": "",
  "language": "en",
  "minLikes": 0,
  "minComments": 0,
  "minViews": 0,
  "minDuration": 0,
  "maxDuration": 0,
  "sortBy": "relevance",
  "uploadDate": "any",
  "minSubscribers": 0,
  "maxSubscribers": 0,
  "maxEmails": 5
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `summary` (type: `string`):

No description

# 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 = {
    "keyword": "sales",
    "maxEmails": 5
};

// Run the Actor and wait for it to finish
const run = await client.actor("lagic/youtubeemailscrapperpro").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 = {
    "keyword": "sales",
    "maxEmails": 5,
}

# Run the Actor and wait for it to finish
run = client.actor("lagic/youtubeemailscrapperpro").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 '{
  "keyword": "sales",
  "maxEmails": 5
}' |
apify call lagic/youtubeemailscrapperpro --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,lagic/youtubeemailscrapperpro"
        }
    }
}

```

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/0j4TIfbRkN3D513hf/builds/Xm05ldMNSZS6G1J54/openapi.json
