YouTube Channel Search Scraper & Influencer Finder · Apify
YouTube Channel Search Scraper & Influencer Finder avatar

YouTube Channel Search Scraper & Influencer Finder

Pricing

from $0.03 / 1,000 result extracteds

Go to Apify Store
YouTube Channel Search Scraper & Influencer Finder

YouTube Channel Search Scraper & Influencer Finder

🔎 Find YouTube channels and influencers by keyword. Filter by subscribers, videos and verified badge. Export handles, subscriber and video counts, views, country, links and emails.

Pricing

from $0.03 / 1,000 result extracteds

Rating

0.0

(0)

Developer

Automation Lab

Automation Lab

Maintained by Community

Actor stats

0

Bookmarked

134

Total users

15

Monthly active users

0.24 hours

Issues response

18 hours ago

Last modified

Features

Limited permissionsMulti-tenantServer interface

Share

YouTube Channel Search Scraper

Find YouTube channels and influencers by keyword, filter them by subscribers, videos or verified badge, and export channel profiles with handles, audience numbers, country, links and public emails for outreach and market research.

What does YouTube Channel Search Scraper do?

YouTube Channel Search Scraper turns YouTube search into a structured channel directory.

It searches YouTube with the Channels filter enabled and saves one dataset row for every channel it finds, up to 1,000 per search. Turn on channel details to add each channel's About data: video count, total views, country, joined date, external links, a business email flag, emails written in the description, and the full description.

No YouTube API key, login or cookies are needed.

Use it when you need a repeatable list of channels around a topic instead of manually copying names, handles, thumbnails, and subscriber snippets from YouTube.

Who is it for?

  • 🎯 Influencer marketers building creator outreach lists.
  • 🧲 Lead generation teams finding niche channels and communities.
  • 📺 YouTube strategists mapping competitors in a category.
  • 🤝 Partnership managers looking for brand-aligned channels.
  • 🧪 Researchers tracking public channel discovery results over time.
  • 🧰 Agencies that need CSV, JSON, or API-ready exports.

Why use this actor?

  • 🔎 Keyword-based YouTube channel finder: run many searches in one run.
  • 🎯 Filters by subscribers (for example micro-influencers from 10K to 100K), video count and verified badge, plus a list of channels to exclude. You pay only for channels that match.
  • 📇 Optional channel details from the About panel, at the same price per channel.
  • 📄 Goes as deep as YouTube allows, usually about 200-500 channels per search.
  • 🧾 Structured dataset output.
  • ⚡ HTTP-only implementation for low runtime cost.
  • 🧩 Works with Apify API, schedules, webhooks, and MCP.
  • 🌐 Optional proxy support for larger or repeated batches.
  • 🧮 Includes source query and rank for auditability.

What data can it extract?

FieldDescription
channelIdStable YouTube channel ID when exposed.
titleChannel display name.
handleYouTube handle, for example Apify.
customUrlCanonical YouTube path, for example /@Apify.
channelUrlFull channel URL.
thumbnailUrlChannel avatar image URL.
subscriberCountTextSubscriber count as shown by YouTube.
subscriberCountParsed numeric subscriber estimate when possible.
descriptionPublic search snippet, or the full channel description with channel details on.
isVerifiedWhether a verification badge was detected.
sourceQueryKeyword used for the search.
sourceUrlExact YouTube search URL fetched.
searchRankRank inside the search results.
scrapedAtISO timestamp for the scrape.

With Fetch channel details on (includeDetails), each row also gets:

FieldDescription
videoCountText, videoCountNumber of videos. YouTube does not show this in search results, so it is empty without details.
totalViewsText, totalViewsTotal channel views.
countryChannel country, when the owner published one (about half of channels).
joinedText, joinedDateWhen the channel was created (joinedDate is YYYY-MM-DD).
externalLinksWebsite and social links with their titles.
hasBusinessEmailWhether the channel lists a business email behind YouTube's sign-in. The address itself is not returned.
emailsInDescriptionEmail addresses written in the public description.

How much does it cost to scrape YouTube channel search results?

This actor uses pay-per-event pricing.

  • Start: $0.005 once per run, charged only when the run saves at least one channel.
  • Result: charged per channel saved to the dataset. On the Starter plan that is $0.00005 per channel, or $0.05 per 1,000 channels, with lower prices on higher plans.

From 2026-11-19 the result price will be $0.50 per 1,000 channels on the Free and Starter plans, $0.45 on Scale and $0.40 on Business and above. The start fee stays the same.

Channel details and filters cost nothing extra. Channels removed by a filter are not charged. Runs respect your maximum cost per run: they stop at the limit and never save a row they cannot charge.

How to use it

  1. Open the actor on Apify.
  2. Add one or more keywords, such as ai automation or fitness coach.
  3. Set the maximum channels per search.
  4. Optionally add filters, such as a subscriber range.
  5. Keep channel details on for full profiles, or turn them off for the fastest run.
  6. Run the actor.
  7. Download the dataset as CSV, JSON, Excel, XML, or RSS.

Input options

Keywords

Use keywords when you want the actor to build YouTube channel-search URLs for you.

Example:

{
"keywords": ["apify", "web scraping"],
"maxResultsPerSearch": 20
}

YouTube search URLs

Use search URLs when you already have a YouTube results page. The actor adds the Channels filter if the URL does not include it.

{
"searchUrls": [
{ "url": "https://www.youtube.com/results?search_query=apify" }
],
"maxResultsPerSearch": 20
}

maxResultsPerSearch controls how many channel rows are saved per keyword or URL, up to 1,000. YouTube usually ends a search after about 200-500 channels. A channel found by an earlier search in the same run is not saved or charged again. Use maxTotalResults to cap the whole run.

The final status message says what you got and why the run stopped, for example Got 348 of 600 channels from 1 search: YouTube returned no more matching channels.

Fetch channel details

includeDetails reads each channel's About panel for the fields listed above. It adds a little run time and no extra charge. It is off by default for API calls, so existing integrations keep their speed.

Filters

{
"keywords": ["fitness coach"],
"maxResultsPerSearch": 100,
"minSubscribers": 10000,
"maxSubscribers": 100000,
"minVideos": 50,
"verifiedOnly": false,
"excludeChannels": ["@AlreadyInMyCRM"],
"includeDetails": true
}
  • minSubscribers, maxSubscribers: a channel that hides its subscriber count does not match.
  • minVideos: turns on channel details automatically, because search results do not show the video count.
  • verifiedOnly: only channels with a verification badge.
  • excludeChannels: channel IDs, @handles or channel URLs to leave out.

The Actor keeps paging until the limit is met or YouTube has no more channels.

Search country

country is a two-letter code such as DE or BR that localizes YouTube's ranking. It changes which channels rank first; it does not limit results to that country. Use the country output field to check a channel's published country.

Proxy configuration

Proxy use is optional.

For small tests, no proxy is usually cheapest. For repeated or larger runs, enable Apify Proxy in the input if YouTube starts rate-limiting requests.

Apify Proxy carries the searches. Channel details are requested directly first and use it only if that request fails, because the data is the same from any IP. Your own proxy URLs are used for every request.

Output example

A real row with channel details on (links shortened):

{
"channelId": "UCTgwcoeGGKmZ3zzCXN2qo_A",
"title": "Apify",
"handle": "Apify",
"customUrl": "/@Apify",
"channelUrl": "https://www.youtube.com/@Apify",
"thumbnailUrl": "https://yt3.ggpht.com/...=s176-c-k-c0x00ffffff-no-rj-mo",
"subscriberCountText": "38.8K subscribers",
"subscriberCount": 38800,
"videoCountText": "304 videos",
"videoCount": 304,
"totalViewsText": "2,584,847 views",
"totalViews": 2584847,
"country": "Czechia",
"joinedText": "Joined Jan 4, 2017",
"joinedDate": "2017-01-04",
"externalLinks": [
{ "title": "Browse tools", "url": "https://apify.com/store" },
{ "title": "GitHub", "url": "https://github.com/apify" }
],
"hasBusinessEmail": true,
"emailsInDescription": [],
"description": "Apify equips you and your AI agents with thousands of ready-to-run tools...",
"isVerified": false,
"sourceQuery": "apify",
"sourceUrl": "https://www.youtube.com/results?search_query=apify&sp=EgIQAg%3D%3D",
"searchRank": 1,
"scrapedAt": "2026-11-05T12:30:00.000Z"
}

Tips for better results

  • ✅ Use specific topics, niches, products, or audience terms.
  • ✅ Run multiple related keywords to build a broader prospect list.
  • ✅ Keep maxResultsPerSearch modest for exploratory runs.
  • ✅ Use a subscriber range to find micro-influencers instead of the biggest channels.
  • ✅ Use schedules if you want to compare discovery results over time.

Integrations

You can connect the output to:

  • Google Sheets for creator-review workflows.
  • Airtable for outreach pipelines.
  • HubSpot or Salesforce for prospecting.
  • Slack notifications for new niche channels.
  • Make or Zapier automations through Apify webhooks.
  • Custom enrichment pipelines that join channel URLs with your CRM.

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/youtube-channel-search-scraper').call({
keywords: ['apify', 'web scraping'],
maxResultsPerSearch: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

API usage with Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/youtube-channel-search-scraper').call(run_input={
'keywords': ['apify', 'web scraping'],
'maxResultsPerSearch': 20,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

API usage with cURL

curl -X POST "https://api.apify.com/v2/acts/automation-lab~youtube-channel-search-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"keywords":["apify","web scraping"],"maxResultsPerSearch":20}'

MCP usage

Use this actor from MCP-compatible clients through Apify MCP Server:

https://mcp.apify.com/?tools=automation-lab/youtube-channel-search-scraper

Claude Code

$claude mcp add --transport http apify-youtube-channel-search "https://mcp.apify.com/?tools=automation-lab/youtube-channel-search-scraper"

Claude Desktop, Cursor, and VS Code

Add the following actor-scoped server to the MCP configuration in Claude Desktop, Cursor, or VS Code:

{
"mcpServers": {
"apify-youtube-channel-search": {
"url": "https://mcp.apify.com/?tools=automation-lab/youtube-channel-search-scraper"
}
}
}

Example prompts:

  • "Find 20 YouTube channels about AI automation and return their URLs."
  • "Build a prospect list of YouTube channels for web scraping tutorials."
  • "Search three SaaS keywords and summarize the top channels by subscriber count."

Claude Desktop MCP setup

Add Apify MCP Server to Claude Desktop and include this actor as an allowed tool.

Example JSON configuration:

{
"mcpServers": {
"apify-youtube-channel-search": {
"url": "https://mcp.apify.com/?tools=automation-lab/youtube-channel-search-scraper"
}
}
}

Then ask Claude to run the actor with your keywords and inspect the dataset.

Claude Code MCP setup

Use the same Apify MCP URL in your Claude Code MCP configuration:

$claude mcp add --transport http apify-youtube-channel-search "https://mcp.apify.com/?tools=automation-lab/youtube-channel-search-scraper"
https://mcp.apify.com/?tools=automation-lab/youtube-channel-search-scraper

This is useful for building scripts that automatically discover channels and then enrich them with other data sources.

Legality and ethical use

This actor extracts publicly available YouTube search result information. It is an independent tool and is not affiliated with, endorsed by, or sponsored by YouTube or Google.

You should use the data responsibly, respect YouTube's terms, avoid abusive request rates, and comply with privacy, spam, and outreach laws that apply to your use case.

The actor does not use AI services or keep a separate external copy of output. Search terms are sent to YouTube, while datasets, key-value stores, and logs follow your Apify account retention and deletion settings. Failed operations send sanitized diagnostic input, exceptions, and Actor/build/run IDs to our private GlitchTip service for repair. Secret fields and URL query strings are removed; diagnostic reports are retained for 30 days.

Do not use scraped channel lists for deceptive, harmful, or unlawful activity.

FAQ and troubleshooting

The run returned fewer channels than requested

The final status message gives the reason. YouTube ends each search after about 200-500 channels, a filter may exclude many of them, and a channel already found by another search in the run is not repeated. Try broader keywords or add more related terms.

The run is rate-limited

Enable Apify Proxy in the input and keep the result limit modest. If you run large batches frequently, use schedules with conservative intervals.

Subscriber counts are missing or odd

Some channels hide their subscriber count, and a search URL with another hl language returns localized labels. The actor keeps the original text and leaves the numeric field empty when it cannot read a value safely. Video count needs channel details.

Explore other Automation Lab actors for YouTube and content workflows:

Dataset export formats

Apify lets you export results as:

  • JSON
  • CSV
  • Excel
  • XML
  • RSS
  • HTML table

Scheduling

Use Apify schedules to refresh channel discovery lists weekly or monthly.

This can help monitor which channels appear for strategic keywords over time.

Webhooks

Use webhooks to send completed datasets to your own API, Slack, Make, Zapier, or another automation system.

A common workflow is: run search → export channels → enrich channel URLs → send qualified leads to CRM.

Support

If a run fails, include the run URL, input, and what output you expected when contacting support.

Small, reproducible inputs help diagnose YouTube layout or localization changes faster.

Server API: search YouTube channels over HTTP

YouTube Channel Search Scraper is also a Server Actor. Besides normal runs, it answers short HTTP requests directly, without starting a run for each search. Copy the server URL from the Actor's Server tab (do not build it from the Actor name) and authenticate with your Apify token. Use normal Actor runs for many keywords, more than 100 channels, search URLs, excluded channels and the minVideos filter.

curl -sS "$SERVER_URL/channels?keyword=fitness%20coach&maxResults=20" -H "Authorization: Bearer $APIFY_TOKEN"
curl -sS "$SERVER_URL/channels?keyword=chess&maxResults=5&includeDetails=true&country=US" -H "Authorization: Bearer $APIFY_TOKEN"
Method and pathInputOutput and charge
GET /Noneready: true, the routes and limits; no scraping or charge
GET /channelsQuery keyword: search text (1–200 characters); optional maxResults 1–100 (default 20), country (two-letter code such as US), includeDetails (true/false, default false; adds videos, total views, country, joined date, links, business email flag and full description from each channel's About panel; slower), minSubscribers, maxSubscribers, verifiedOnly (true/false){ok,count,results} with the same channel records as a normal run's dataset items, in YouTube's order; one Result extracted event (result) per returned channel; no start fee

A search with no matching channels returns an error and is free. Each request has a 60-second deadline and a 1 MiB response cap, and one server works on at most eight requests at once. Nothing is cached. Errors use { "ok": false, "error": { "code": "...", "message": "...", "retryable": false } }: 400 INVALID_INPUT; 402 spending limit; 404 NO_RESULTS or unknown route; 405 wrong method; 413 RESPONSE_TOO_LARGE; 502 BLOCKED, UPSTREAM_ERROR or charging failure; 503 server busy or stopping; 504 TIMEOUT. Failed requests are free. Retry only when retryable is true. The Server tab shows the full OpenAPI description.