← 返回
未分类 Key 中文

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...
此技能用于在用户请求“查找YouTube频道邮箱”“抓取YouTube联系信息”“获取YouTuber邮箱地址”“提取YouTube频道信息...”时使用。
futurizerush
未分类 clawhub v0.1.1 1 版本 99699.7 Key: 需要
★ 0
Stars
📥 332
下载
💾 0
安装
1
版本
#ai-agent#apify#email#influencer#latest#lead-generation#marketing#scraping#youtube

概述

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

ParameterTypeRequiredDescription
----------------------------------------
inputModestringYes"directUrls" or "keywordSearch"
channelUrlsarray of stringsFor directUrls modeYouTube channel URLs
searchKeywordsarray of stringsFor keywordSearch modeKeywords to search channels
maxChannelsPerKeywordintegerNoMax channels per keyword. Default: 50
maxResultsintegerNoMax total results. Default: 100
localestringNoLocale 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": ["sponsorships@nateherk.com"],
    "websites": ["https://nateherk.com/"],
    "socialMedia": {}
  },
  "emails": ["sponsorships@nateherk.com"],
  "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

ErrorCauseFix
-------------------
401 UnauthorizedInvalid or missing API tokenCheck APIFY_API_TOKEN
invalid-input: "must be equal to one of the allowed values"Wrong inputMode valueUse "directUrls" or "keywordSearch" (exact strings)
No emails foundChannel doesn't list email publiclyTry 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

版本历史

共 1 个版本

  • v0.1.1 当前
    2026-05-07 12:59 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

Anti-Slop

futurizerush
此技能用于用户请求“检查垃圾内容、反垃圾审查、质量检查、这是AI垃圾吗、审查原创性、检查……”时。
★ 0 📥 538

imgforge — Free AI Image Generation

futurizerush
使用 Z-Image-Turbo 免费生成 AI 图像。说“生成一张…的图像”,即可在几秒内获得惊艳效果。
★ 0 📥 762

Fact Check

futurizerush
此技能应在用户要求“事实核查”“核实此信息”“这是真的吗”“检查事实”“验证说法”“这些字段名是否正确”等情况下使用。
★ 0 📥 418