YouTube Channel Search Scraper
Pricing
Pay per event
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
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
3 days ago
Last modified
Categories
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?
| Field | Description |
|---|---|
channelId | Stable YouTube channel ID when exposed. |
title | Channel display name. |
handle | YouTube handle, for example Apify. |
customUrl | Canonical YouTube path, for example /@Apify. |
channelUrl | Full channel URL. |
thumbnailUrl | Channel avatar image URL. |
subscriberCountText | Subscriber count as shown by YouTube. |
subscriberCount | Parsed numeric subscriber estimate when possible. |
videoCountText | Video-count text when YouTube exposes it. |
videoCount | Parsed numeric video count when possible. |
description | Public search snippet or optional About-page description. |
isVerified | Whether a verification badge was detected. |
sourceQuery | Keyword used for the search. |
sourceUrl | Exact YouTube search URL fetched. |
searchRank | Rank inside the search results. |
scrapedAt | ISO 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
- Open the actor on Apify.
- Add one or more keywords, such as
apify,ai automation, orfitness coach. - Set the maximum channels per search.
- Leave detail enrichment off for the fastest run.
- Run the actor.
- 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}
Maximum channels per search
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
maxResultsPerSearchmodest for exploratory runs. - โ
Deduplicate downstream by
channelIdorchannelUrl. - โ 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 ApifyClientimport osclient = 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().itemsprint(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.
Related scrapers
Explore other Automation Lab actors for YouTube and content workflows:
- https://apify.com/automation-lab/youtube-channel-scraper
- https://apify.com/automation-lab/youtube-comments-scraper
- https://apify.com/automation-lab/youtube-transcript-scraper
- https://apify.com/automation-lab/youtube-video-details-scraper
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.