← Back to Skills Marketplace
futurizerush

Apify YouTube Email Scraper

by Futurize Rush · GitHub ↗ · v0.1.1 · MIT-0
cross-platform ⚠ suspicious
99
Downloads
0
Stars
0
Active Installs
2
Versions
Install in OpenClaw
/install apify-youtube-email
Description
This skill should be used when the user asks to "find YouTube channel emails", "scrape YouTube contacts", "get YouTuber email addresses", "extract YouTube ch...
README (SKILL.md)

YouTube Email Scraper with Apify

Find email addresses and contact information from YouTube channels. Search by keyword or provide channel URLs directly. Useful for influencer outreach, sponsorship, and lead generation.

Actor: futurizerush/youtube-email-scraper

Prerequisites

Set APIFY_API_TOKEN in environment. Get a token at console.apify.com/account/integrations.

Execution Flow

Apify runs are asynchronous. Every request follows 3 steps:

  1. Start a run -- POST to the actor API, receive a run ID and dataset ID
  2. Poll until done -- GET the run status, wait for SUCCEEDED
  3. Fetch results -- GET the dataset items (returns a JSON array)

Typical run time: 30-120 seconds depending on channel count.

Input Parameters

Parameter Type Required Description
inputMode string Yes "directUrls" or "keywordSearch"
channelUrls array of strings For directUrls mode YouTube channel URLs
searchKeywords array of strings For keywordSearch mode Keywords to search channels
maxChannelsPerKeyword integer No Max channels per keyword. Default: 50
maxResults integer No Max total results. Default: 100
locale string No Locale for search. Default: "US"

Mode differences

  • directUrls -- Scrape specific channels. Requires channelUrls.
  • keywordSearch -- Find channels by keyword, then extract contacts. Requires searchKeywords.

Complete Example (Python)

import requests, os, time

TOKEN = os.environ["APIFY_API_TOKEN"]
BASE = "https://api.apify.com/v2"

# Step 1: Start the run
response = requests.post(
    f"{BASE}/acts/futurizerush~youtube-email-scraper/runs?token={TOKEN}",
    json={
        "inputMode": "keywordSearch",
        "searchKeywords": ["AI automation"],
        "maxChannelsPerKeyword": 10,
        "maxResults": 10,
        "locale": "US",
    },
)
response.raise_for_status()
run = response.json()["data"]
run_id = run["id"]
dataset_id = run["defaultDatasetId"]

# Step 2: Poll until done
while True:
    status = requests.get(
        f"{BASE}/actor-runs/{run_id}?token={TOKEN}"
    ).json()["data"]["status"]
    if status == "SUCCEEDED":
        break
    if status in ("FAILED", "ABORTED", "TIMED-OUT"):
        raise RuntimeError(f"Run failed: {status}")
    time.sleep(5)

# Step 3: Fetch results (JSON array)
items = requests.get(
    f"{BASE}/datasets/{dataset_id}/items?token={TOKEN}"
).json()

# Filter channels with emails
for channel in items:
    if channel["hasEmails"]:
        print(f"{channel['channelName']} ({channel['subscriberCount']} subs)")
        print(f"  Emails: {', '.join(channel['emails'])}")
        print(f"  URL: {channel['channelUrl']}")

Direct channel URLs

requests.post(
    f"{BASE}/acts/futurizerush~youtube-email-scraper/runs?token={TOKEN}",
    json={
        "inputMode": "directUrls",
        "channelUrls": [
            "https://www.youtube.com/@mkbhd",
            "https://www.youtube.com/@nateherk",
        ],
    },
)

Complete Example (bash)

# Step 1: Start the run
RUN_RESPONSE=$(curl -s -X POST \
  "https://api.apify.com/v2/acts/futurizerush~youtube-email-scraper/runs?token=$APIFY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"inputMode": "keywordSearch", "searchKeywords": ["AI automation"], "maxChannelsPerKeyword": 10, "maxResults": 10}')

RUN_ID=$(echo "$RUN_RESPONSE" | jq -r '.data.id')
DATASET_ID=$(echo "$RUN_RESPONSE" | jq -r '.data.defaultDatasetId')

# Step 2: Poll until done
while true; do
  STATUS=$(curl -s "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_API_TOKEN" \
    | jq -r '.data.status')
  [ "$STATUS" = "SUCCEEDED" ] && break
  [ "$STATUS" = "FAILED" ] || [ "$STATUS" = "ABORTED" ] && echo "Failed: $STATUS" && exit 1
  sleep 5
done

# Step 3: Fetch results
curl -s "https://api.apify.com/v2/datasets/$DATASET_ID/items?token=$APIFY_API_TOKEN" | jq '.'

Output Format

Each item in the results array (field names verified from real API output on 2026-04-11):

{
  "channelName": "Nate Herk | AI Automation",
  "subscriberCount": "645.0K",
  "channelUrl": "https://www.youtube.com/@nateherk",
  "channelDescription": "Hi, I'm Nate Herk. I'm passionate about...",
  "joinDate": "Nov 17, 2013",
  "viewCount": 405328,
  "videoCount": 383,
  "location": null,
  "contactInfo": {
    "emails": ["[email protected]"],
    "websites": ["https://nateherk.com/"],
    "socialMedia": {}
  },
  "emails": ["[email protected]"],
  "websites": ["https://nateherk.com/"],
  "socialMedia": {},
  "emailCount": 1,
  "hasEmails": true,
  "descriptionUrls": [],
  "extractedAt": "2026-04-11T06:07:13.204Z",
  "processingSuccess": true,
  "searchKeyword": "AI automation"
}

Note: Field names use camelCase. The emails array is a flat convenience field; the same data is also in contactInfo.emails. Use hasEmails to quickly filter channels that have contact emails.

Error Handling

Error Cause Fix
401 Unauthorized Invalid or missing API token Check APIFY_API_TOKEN
invalid-input: "must be equal to one of the allowed values" Wrong inputMode value Use "directUrls" or "keywordSearch" (exact strings)
No emails found Channel doesn't list email publicly Try more channels or different keywords

Tips

  • Use hasEmails: true to quickly filter channels with public emails.
  • subscriberCount is a string (e.g. "645.0K") not a number.
  • contactInfo contains structured data; emails and websites at root level are flat convenience arrays.
  • For influencer outreach, search by niche keyword to find relevant channels with emails.
  • searchKeyword in output tells you which query found each channel (useful with multiple keywords).
  • No login or YouTube API key required.

Links

Usage Guidance
Do not install blindly. The SKILL.md requires APIFY_API_TOKEN but the skill metadata does not declare any required credentials—ask the publisher to fix the metadata. Before providing an Apify token, verify the referenced actor (futurizerush/youtube-email-scraper) on apify.com and review its source or behavior so you understand what data it collects and where results are stored. If you proceed, create a dedicated Apify API token with minimal scope, monitor its use, and be prepared to revoke it. Be aware the skill's purpose is harvesting contact emails (personal data); ensure this complies with platform ToS and applicable privacy laws. Because the skill's source/homepage is missing, treat its provenance as unknown and exercise extra caution.
Capability Analysis
Type: OpenClaw Skill Name: apify-youtube-email Version: 0.1.1 The skill is a standard integration for an Apify actor (futurizerush/youtube-email-scraper) designed to scrape YouTube channel contact information. It follows a typical API interaction pattern (start run, poll status, fetch results) using the user's API token and does not exhibit any signs of data exfiltration, malicious execution, or prompt injection.
Capability Assessment
Purpose & Capability
The documented purpose (scraping YouTube channel emails via an Apify actor) aligns with the instructions, but the SKILL.md requires APIFY_API_TOKEN while the skill's registry metadata claims no required env vars/primary credential. That mismatch is incoherent: a legitimate Apify-based skill should declare the APIFY_API_TOKEN requirement in metadata.
Instruction Scope
SKILL.md stays on-topic: it instructs the agent to call Apify API endpoints to start an actor run, poll for completion, and fetch dataset items. It does not instruct the agent to read unrelated files or other environment variables. It does, however, collect personal contact data (emails) as its explicit purpose.
Install Mechanism
This is instruction-only with no install spec or code files, so nothing is written to disk or installed by the skill itself—low install risk.
Credentials
SKILL.md explicitly requires APIFY_API_TOKEN in environment, but the declared registry requirements show no env vars and no primary credential. Requiring an API token is reasonable for this purpose, but the omission in metadata is an incoherence that prevents informed consent and automated permission checks. Also the skill will access PII (email addresses), so token scope and handling matter.
Persistence & Privilege
The skill does not request persistent presence (always: false) and does not modify other skills or system settings. Autonomous invocation is allowed (the platform default) but not combined with any extra privileges in this package.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install apify-youtube-email
  3. After installation, invoke the skill by name or use /apify-youtube-email
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.1.1
Add discovery tags for SEO
v0.1.0
Initial release. Find email addresses and contacts from YouTube channels. All output fields verified.
Metadata
Slug apify-youtube-email
Version 0.1.1
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 2
Frequently Asked Questions

What is Apify YouTube Email Scraper?

This skill should be used when the user asks to "find YouTube channel emails", "scrape YouTube contacts", "get YouTuber email addresses", "extract YouTube ch... It is an AI Agent Skill for Claude Code / OpenClaw, with 99 downloads so far.

How do I install Apify YouTube Email Scraper?

Run "/install apify-youtube-email" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Apify YouTube Email Scraper free?

Yes, Apify YouTube Email Scraper is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Apify YouTube Email Scraper support?

Apify YouTube Email Scraper is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Apify YouTube Email Scraper?

It is built and maintained by Futurize Rush (@futurizerush); the current version is v0.1.1.

💬 Comments