# Youtube Channel Email Scraper By Keyword (`solid-scraper/youtube-channel-email-scraper-by-keyword`) Actor

🔎📧 Find targeted emails by keyword fast! Our Email Scraper helps marketers & sales teams discover B2B leads, verify contacts, and grow outreach lists instantly. 🚀⚡ Subscribe for efficient lead sourcing.

- **URL**: https://apify.com/solid-scraper/youtube-channel-email-scraper-by-keyword.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 Keyword Email Search 🔍

**YouTube Keyword Email Search** is an Apify actor that helps you find YouTube channel leads by searching for specific **keywords** and collecting **email addresses** (when available). It’s designed for people who need **YouTube keyword email search** results fast—so you can build prospect lists for outreach, partnerships, and lead generation without manually hunting across profiles one by one. Whether you’re a marketer, recruiter, data analyst, or researcher, this tool makes **YouTube keyword email tool** workflows practical at scale, including **country filtering** and email-availability filtering. You’ll be able to save time while producing structured leads ready for your CRM or analysis pipeline.

***

### Why choose YouTube Keyword Email Search?

| Feature | Benefit |
|---|---|
| ✅ **Keyword-based lead discovery** | Finds YouTube channels separately for each keyword so you can run targeted **YouTube keyword search engine email** campaigns |
| ✅ **Optional email-only filtering** | When enabled, returns channels that have emails in their description (common email providers supported) |
| ✅ **Resilient scraping with retries & fallbacks** | Includes retry logic and resilience to reduce failed runs and improve collection consistency |
| ✅ **Structured output dataset** | Saves results with channel metadata, social links, and an `emails` array for downstream enrichment |
| ✅ **Scales across multiple keywords** | Collects leads across your full keyword list up to your per-run limits |
| ✅ **Proxy support** | Uses built-in proxy support to help keep requests reliable |

***

### Key features

- 🧠 **YouTube keyword email search by keyword**: Provide multiple `keywords` and the actor processes each one, collecting leads separately per keyword.
- 📍 **Country filtering**: Use `country` to restrict results to a target country (or worldwide when left empty).
- 📧 **Email discovery mode**: Turn on `scrapeLeadsWithEmail` to find channels that have email addresses in their description.
- 🔄 **Retry logic for reliability**: Uses retries (`maxRetries`) during scraping and fetching to improve success rates.
- 🧾 **Complete channel context**: Captures fields like channel name, handle, description, custom URL, avatar URL, subscriber count, and video count.
- 🔗 **Social links extraction**: Extracts `social_links` from channel external links when available.
- 💾 **Real-time dataset saving**: Pushes each successfully scraped lead immediately into the output dataset for easy export.
- 🧹 **Clean output readiness**: Includes a `success` flag and `error_message` when scraping fails, so you can filter confidently.

***

### Input

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

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

#### Input Fields

| Field | Required | Description |
|---|---:|---|
| `keywords` | ✅ | A list of keywords to search for YouTube channels. Each keyword is searched separately. |
| `country` | ❌ | Filter results by country. Leave empty for worldwide results. |
| `maxLeadsPerKeyword` | ❌ | Maximum number of leads to collect for each keyword (1–500). |
| `scrapeLeadsWithEmail` | ❌ | If enabled, the actor returns only channels that have emails in their description. If disabled, it collects all channels matching keywords (regardless of email availability). |

***

### Output

The actor saves each scraped channel’s data in JSON format into the **YouTube Leads Dataset**.

Example output item:

```json
{
  "keyword": "fitness",
  "channel_url": "https://www.youtube.com/@example/about",
  "channel_handle": "example",
  "channel_name": "Example Channel",
  "emails": ["contact@example.com"],
  "business_email": "contact@example.com",
  "subscriber_count": "123K subscribers",
  "video_count": "456 videos",
  "joined_date": "Joined January 2020",
  "channel_description": "About the channel...",
  "social_links": {
    "twitter": "https://twitter.com/example"
  },
  "custom_url": "@example",
  "country": null,
  "banner_url": null,
  "avatar_url": "https://example.com/avatar.jpg",
  "success": true,
  "error_message": null
}
```

#### Output Fields

| Field | Type | Description |
|---|---|---|
| `keyword` | string | The keyword used for this lead. |
| `channel_url` | string | The normalized channel URL (base channel URL). |
| `channel_handle` | string | null | The channel handle if available. |
| `channel_name` | string | null | The channel name. |
| `emails` | array | All extracted email addresses found from channel text. |
| `business_email` | string | null | The first email in `emails` (if any). |
| `subscriber_count` | string | null | Subscriber count text (as shown on the channel page). |
| `video_count` | string | null | Video count text. |
| `joined_date` | string | null | Joined date text. |
| `channel_description` | string | null | Channel description/about text. |
| `social_links` | object | Extracted social links (for platforms found in external links). |
| `custom_url` | string | null | The channel vanity/custom URL value if available. |
| `country` | string | null | Country field (may be `null` depending on what the actor extracts). |
| `banner_url` | string | null | Banner URL if available. |
| `avatar_url` | string | null | Avatar/thumbnail URL. |
| `success` | boolean | Indicates whether the scrape produced useful data. |
| `error_message` | string | null | Error details when `success` is `false`. |

After the run, you can export your dataset from Apify Console to tools that support JSON and CSV workflows.

***

### How to use YouTube Keyword Email Search (via Apify Console)

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

2. **Find the actor**
   Search for **YouTube Keyword Email Search** and open the actor page.

3. **Add your input**
   In the **INPUT** section, enter your JSON with:
   your `keywords`, optional `country`, optional `maxLeadsPerKeyword`, and `scrapeLeadsWithEmail`.

4. **Choose your email strategy**
   If your goal is **YouTube keyword email search** for outreach, enable `scrapeLeadsWithEmail`.
   If you want broader channel discovery first, leave it disabled.

5. **Run the actor**
   Click **Run** to start. You’ll see progress logs for each keyword, plus information about collected leads and filtering.

6. **Monitor logs and behavior**
   The actor will process keywords one by one, use retries/fallbacks to improve reliability, and push successful results into the dataset as it goes.

7. **Open the dataset**
   After completion, go to the **OUTPUT** tab and open the **YouTube Leads Dataset**.

8. **Export for analysis or outreach**
   Export the dataset (JSON/CSV) and use it for **YouTube keyword research email outreach** workflows or CRM imports.

No coding required — get accurate results in minutes.

***

### Advanced features & SEO optimization

- 📧 **Engineered for YouTube keyword email tool workflows**: Designed specifically for extracting contact-ready leads associated with your `keywords` and optionally filtering for email availability.
- 🧭 **Email lookup for YouTube keywords**: Uses email discovery directly from channel text so you can quickly build lists for keyword-based outreach and **YouTube keyword list email** campaigns.
- 🛡️ **Resilience for more consistent runs**: Includes retries and fallbacks to handle rate-limiting and page-fetch issues more gracefully.
- 🔄 **Data-ready saving as it finds leads**: Each successful channel is pushed immediately to the dataset, so long runs are safer to interrupt/resume.
- 🔎 **Input normalization via URL handling**: Ensures channel URLs are stored in a consistent format for easier deduplication.

***

### Best use cases

- 📈 **Marketing teams building keyword-based outreach lists**: Generate targeted YouTube keyword email leads to personalize campaigns and reduce manual searching.
- 🎓 **Researchers conducting creator or niche studies**: Collect channel metadata (name, description, subscriber/video counts) alongside `emails` when available.
- ✉️ **Cold email operators writing keyword-specific email templates**: Combine keyword + email availability to power tailored prospecting sequences.
- 🧩 **Agencies qualifying leads faster**: Quickly filter by country and email presence to build cleaner lead pipelines.
- 🧪 **Data analysts enriching creator datasets**: Export structured `social_links`, `subscriber_count`, and `joined_date` for analysis and reporting.
- 🛠️ **CRM integration specialists**: Stream leads into downstream automation using the consistent dataset schema.
- 🧠 **YouTube SEO researchers**: Tie channel attributes back to your keywords while extracting direct contact emails for follow-ups.

***

### Technical specifications

- **Supported Input Formats**
  - ✅ JSON input with `keywords` (array of strings)
  - ✅ Optional `country` (select values as defined in the actor input schema)
  - ✅ Optional `scrapeLeadsWithEmail` boolean for email-only lead filtering

- **Proxy Support**
  - ✅ Built-in proxy support for more reliable scraping (the actor attempts to configure proxy usage; it may proceed without proxies if configuration fails)

- **Retry Mechanism**
  - ✅ Uses retry logic (with exponential backoff) for page fetching and scrape resilience

- **Dataset Structure**
  - ✅ Writes results to the **YouTube Leads Dataset**
  - ✅ Each item includes `success` and `error_message` to support failure-aware filtering

- **Limitations**
  - ❌ Email-only mode (`scrapeLeadsWithEmail: true`) can return fewer results because it requires channels with emails in their description
  - ❌ If a channel has no discoverable emails, it may be filtered out in email-only mode
  - ❌ Country filtering depends on the country provided in input schema; if an invalid country is provided, the actor proceeds without the country filter

***

### FAQ

#### Is this YouTube Keyword Email Search free to use?

The actor detects whether your Apify plan is free or paid and applies a **free user result limit of 100 emails maximum**. Paid users don’t face this restriction.

#### Do I need an API key or login to run it?

No special authentication steps are required from you in the actor UI. The actor may check your plan automatically to enforce the free-tier limit.

#### Can I search for YouTube keyword email leads across multiple keywords in one run?

Yes. Provide multiple entries in `keywords`; the actor processes each keyword separately and saves leads with the corresponding `keyword` field.

#### What’s the difference between collecting all channels vs collecting email-available channels?

If `scrapeLeadsWithEmail` is enabled, the actor returns channels only when it successfully extracts `emails`. If it’s disabled, it collects all matching channels and includes whatever `emails` are found (if any) in the output.

#### What data types does the output include?

The dataset items include channel metadata (like `channel_name`, `subscriber_count`, `video_count`, `joined_date`), contact fields (`emails`, `business_email`), and `social_links`. Failures include `success: false` and an `error_message`.

#### Can I use the results for email outreach?

✅ You can use the exported leads for outreach workflows, but you must ensure your use complies with applicable laws and platform policies (including GDPR/CCPA and spam regulations). The actor only works with **publicly accessible sources**.

#### What if some channels fail to scrape?

Each failed entry is represented with `success: false` and `error_message`, so you can filter failures out and keep only successful leads.

***

### Support & feature requests

Want to improve YouTube Keyword Email Search or request enhancements for **YouTube keyword email search** and **YouTube keyword finder email** use cases? 💡

- 💡 **Feature Requests**: You can ask for improvements like better export formats (CSV), additional filtering options, custom email rules, or CRM-friendly output tweaks.
- 📧 **Contact**: Email us at <dataforleads@gmail.com>.

Your feedback helps shape the roadmap for YouTube Keyword Email Search.

***

*If you’re looking for the most comprehensive YouTube Keyword Email Search for keyword-driven lead generation, this actor is built to make results fast, structured, and easy to export.*

***

### Disclaimer

**This tool accesses publicly accessible sources only**. It does not access private profiles, authenticated data, or password-protected pages.

You are responsible for ensuring your use of the collected data complies with applicable laws and regulations (including GDPR/CCPA), and with relevant platform policies and terms of service. For data removal requests, contact <dataforleads@gmail.com>.

Use YouTube Keyword Email Search responsibly, ethically, and for legitimate purposes only.

# 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/youtube-channel-email-scraper-by-keyword").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/youtube-channel-email-scraper-by-keyword").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 '{
  "keywords": [
    "fitness"
  ],
  "country": "United States",
  "maxLeadsPerKeyword": 20
}' |
apify call solid-scraper/youtube-channel-email-scraper-by-keyword --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/glZt3ots3PQgLy607/builds/mwhLYNCXTXfW6eV28/openapi.json
