YouTube Channel Search Scraper avatar

YouTube Channel Search Scraper

Pricing

Pay per event

Go to Apify Store
YouTube Channel Search Scraper

YouTube Channel Search Scraper

๐Ÿ”Ž Find YouTube channels by keyword and export handles, URLs, subscriber counts, thumbnails, snippets, and search ranks.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

3 days ago

Last modified

Share

Find YouTube channels from public search keywords and export clean channel profile rows for lead generation, influencer discovery, partner research, and content-market mapping.

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, reads the public search result data embedded in the page, and saves one dataset item for every channel it finds.

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 channel discovery.
  • ๐Ÿงพ 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.
videoCountTextVideo-count text when YouTube exposes it.
videoCountParsed numeric video count when possible.
descriptionPublic search snippet or optional About-page description.
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.

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

This actor uses pay-per-event pricing.

The default package price is designed around a low-cost HTTP workflow:

  • Start event: small one-time run fee.
  • Result event: charged per channel saved to the dataset.

At the platform-accepted BRONZE result price of $0.00005, 1,000 saved channels cost about $0.05 before any platform-tier discounts. Real cloud runs validated that this remains safely profitable.

How to use it

  1. Open the actor on Apify.
  2. Add one or more keywords, such as apify, ai automation, or fitness coach.
  3. Set the maximum channels per search.
  4. Leave detail enrichment off for the fastest run.
  5. Run the actor.
  6. 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.

Keep it small while testing. Increase it when running production lead lists.

Fetch channel details

includeDetails fetches each channel About page and tries to fill a missing description.

Leave it disabled unless you need that extra enrichment. It adds requests and can make runs slower.

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.

Output example

{
"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": "14K subscribers",
"subscriberCount": 14000,
"videoCountText": null,
"videoCount": null,
"description": "Welcome to Apify's official YouTube channel!...",
"isVerified": false,
"sourceQuery": "apify",
"sourceUrl": "https://www.youtube.com/results?search_query=apify&sp=EgIQAg%253D%253D",
"searchRank": 1,
"scrapedAt": "2026-06-12T08: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.
  • โœ… Deduplicate downstream by channelId or channelUrl.
  • โœ… 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 CLI setup:

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

MCP JSON config block:

{
"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 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.

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.

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

FAQ and troubleshooting

The run returned fewer channels than requested

YouTube may expose fewer public channel results for a query, or duplicate channels may appear across keywords and get skipped. 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

YouTube sometimes localizes or hides count labels. The actor keeps the original text field and fills the numeric field only when it can parse a value safely.

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.