← 返回 Skills 市场
futurizerush

Apify YouTube Email Scraper

作者 Futurize Rush · GitHub ↗ · v0.1.1 · MIT-0
cross-platform ⚠ suspicious
99
总下载
0
收藏
0
当前安装
2
版本数
在 OpenClaw 中安装
/install apify-youtube-email
功能描述
This skill should be used when the user asks to "find YouTube channel emails", "scrape YouTube contacts", "get YouTuber email addresses", "extract YouTube ch...
使用说明 (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

安全使用建议
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.
功能分析
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.
能力评估
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.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install apify-youtube-email
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /apify-youtube-email 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
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.
元数据
Slug apify-youtube-email
版本 0.1.1
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 2
常见问题

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... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 99 次。

如何安装 Apify YouTube Email Scraper?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install apify-youtube-email」即可一键安装,无需额外配置。

Apify YouTube Email Scraper 是免费的吗?

是的,Apify YouTube Email Scraper 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Apify YouTube Email Scraper 支持哪些平台?

Apify YouTube Email Scraper 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Apify YouTube Email Scraper?

由 Futurize Rush(@futurizerush)开发并维护,当前版本 v0.1.1。

💬 留言讨论