YouTube Channel Search Scraper
Pricing
from $0.03 / 1,000 channels
YouTube Channel Search Scraper
Find public YouTube channels from keywords or reusable search URLs. Export channel identity, public metrics, profile details, and first-match discovery evidence.
Pricing
from $0.03 / 1,000 channels
Rating
5.0
(2)
Developer
Maxime Dupré
Maintained by CommunityActor stats
5
Bookmarked
401
Total users
175
Monthly active users
3.9 hours
Issues response
13 hours ago
Last modified
Categories
Share
🔎 Find YouTube channels for your next creator list
YouTube Channel Search Scraper helps marketers, creator researchers, and analysts find public YouTube channels from keywords or reusable YouTube search-result URLs. Get channel IDs, handles, public metrics, profile details, and the first eligible match saved for each channel.
- Build a niche YouTube creator list from topics, products, or audience interests.
- Run Influencer discovery before reviewing creators for a campaign.
- Do YouTube competitor research for a market or content category.
- Create a Channel prospect list for later review and outreach research.
- Collect YouTube channel metrics to compare public audience size.
- Set up YouTube channel monitoring with scheduled discovery runs.
📦 Export YouTube channel data
Each dataset row is one saved public channel. It can include:
channel: ID, handle, name, URL, description, verification, and public visibility signalsmetrics: subscriber, video, and total view counts, plus the count text shown by YouTubeprofile: country, joined text, keywords, tags, RSS URL, tabs, links, and country codesimages: thumbnail, avatar, banner, and avatar sizesdiscoverySource: the keyword or search URL, discovery surface, rank, and results URL for the first saved matchsourceVideo: the video from the first saved match, ornullwhen channel-only search saved it
Optional values can be null or empty when YouTube does not show them. Export rows as JSON, CSV, Excel, XML, RSS, or HTML, or use the Apify API.
▶️ Run a YouTube channel search
- Keep the sample keyword or add your own topics.
- You can also add public YouTube
/resultsURLs. - Choose video results, channel-only search, or both.
- Set the limits for each source and the whole run.
- You can set subscriber limits, a minimum video count, verified-only results, or channel URLs to exclude.
- Run the Actor and open the dataset.
The Actor saves the first eligible match for a channel right away. If the same channel appears again from any source, that later match is ignored. The saved row is not changed.
⚙️ Input
| Field | Type | What it does |
|---|---|---|
searchTerms | string array | Searches up to 500 topics, products, niches, or creator types. |
searchTerms[] | string | One topic, product, niche, or creator type to search. |
searchTermsFiles | string array | Loads terms from up to 20 TXT or CSV files. All inputs together can hold up to 500 terms. |
searchTermsFiles[] | string | One TXT or CSV file with search terms. |
searchUrls | object array | Runs public youtube.com/results URLs again. Each object has a url. |
searchUrls[].url | string | One public YouTube search-result URL to run. |
discoveryMode | string | Uses video results, channel-only search, or both. |
maxChannelsPerSearchTerm | integer | Stops after this many saved channels for each keyword or URL. Leave it empty to return all available channels until that source is exhausted. |
maxTotalResults | integer | Stops after this many saved channels in the run. Leave it empty to return all available channels until every source is exhausted. |
minSubscribers | integer | Saves channels at or above this public subscriber count. Channels with no public count are skipped. |
maxSubscribers | integer | Saves channels at or below this public subscriber count. Channels with no public count are skipped. |
minVideos | integer | Saves channels at or above this public video count. Channels with no public video count are skipped. |
verifiedOnly | boolean | Saves only channels YouTube marks as verified. |
excludedChannels | object array | Leaves out YouTube handle URLs or /channel/UC... URLs. Each object has a url. |
excludedChannels[].url | string | One YouTube handle URL or /channel/UC... URL to leave out. |
languageHint | string | Sets a two-letter YouTube page language hint, such as en. |
countryHint | string | Sets a two-letter YouTube country hint, such as US. |
Example input from a successful run:
{"discoveryMode": "both","searchTerms": ["coffee roasting"],"maxChannelsPerSearchTerm": 10,"maxTotalResults": 10,"verifiedOnly": false,"languageHint": "en","countryHint": "US"}
🧾 Output
Each row has the same channel shape. sourceVideo is an object when the first saved match came from a video result. It is null when channel-only search saved the row.
| Field | Type | What it does |
|---|---|---|
channel.id | string | Stable YouTube channel ID. |
channel.handle | string or null | Public handle. |
channel.title | string or null | Public channel name. |
channel.url | string or null | Main public channel URL. |
channel.description | string or null | Public channel description. |
channel.isVerified | boolean or null | Says if YouTube marks the channel as verified. |
channel.isFamilySafe | boolean or null | YouTube's public family-safety signal. |
channel.isUnlisted | boolean or null | YouTube's public unlisted signal. |
channel.isNoindex | boolean or null | YouTube's public search-indexing signal. |
metrics.subscribers | integer or null | Public subscriber count. |
metrics.subscriberText | string or null | Subscriber text shown by YouTube. |
metrics.subscriberCountIsExact | boolean or null | Says if the count is exact, not shortened. |
metrics.videos | integer or null | Public video count. |
metrics.videoText | string or null | Video count text shown by YouTube. |
metrics.totalViews | integer or null | Total public channel views. |
metrics.totalViewText | string or null | Total view text shown by YouTube. |
profile.country | string or null | Country shown on the channel. |
profile.joinedText | string or null | Join text shown by YouTube. |
profile.keywords | string or null | Channel keyword text. |
profile.tags | string array | Public channel tags. |
profile.rssUrl | string or null | Public channel video-feed URL. |
profile.tabs | object array | Public channel tabs. |
profile.tabs.title | string | Tab name. |
profile.tabs.url | string | Public tab URL. |
profile.externalLinks | string array | Public links shared by the channel. |
profile.availableCountryCodes | string array | Country codes where the channel is available. |
profile.ownerUrls | string array | Public owner URLs listed by YouTube. |
profile.alternateUrls | string array | Other public URLs for the channel. |
images.thumbnailUrl | string or null | Public thumbnail URL. |
images.avatarUrl | string or null | Main public avatar URL. |
images.bannerUrl | string or null | Public banner URL. |
images.avatarImages | object array | Available public avatar sizes. |
images.avatarImages.url | string | Public avatar image URL. |
images.avatarImages.width | integer or null | Image width in pixels. |
images.avatarImages.height | integer or null | Image height in pixels. |
discoverySource.sourceKind | string | Submitted source type: keyword or search_url. |
discoverySource.value | string | Keyword or search URL for the first saved match. |
discoverySource.discoverySurface | string | Result type of the first saved match: video_results or channel_filter. |
discoverySource.rank | integer | Rank on that discovery surface, starting at 1. |
discoverySource.sourceUrl | string | Results URL where the first saved match appeared. |
sourceVideo | object or null | Video from the first saved match, or null when channel-only search saved the row. |
sourceVideo.videoId | string | Stable source video ID. |
sourceVideo.title | string or null | Source video title. |
sourceVideo.url | string | Public source video URL. |
sourceVideo.publishedText | string or null | Publication text shown by YouTube. |
sourceVideo.viewText | string or null | View-count text shown by YouTube. |
Example channel row with source-video evidence
This complete row comes from a successful run of the current beta build.
{"channel": {"id": "UCwhe6trGgWukK0-xf0YyPiA","handle": "@RevuNexus","title": "RevuNexus","url": "https://www.youtube.com/@RevuNexus","description": null,"isVerified": null,"isFamilySafe": true,"isUnlisted": null,"isNoindex": null},"metrics": {"subscribers": 1380,"subscriberText": "1.38K subscribers","subscriberCountIsExact": false,"videos": 69,"videoText": "69 videos","totalViews": 526956,"totalViewText": "526,956 views"},"profile": {"country": "United States","joinedText": "Joined May 9, 2023","keywords": ""Product Reviews" "Tech Reviews" "Tech Product Reviews" RevuNexus","tags": [""Product Reviews" "Tech Reviews" "Tech Product Reviews" RevuNexus"],"rssUrl": "https://www.youtube.com/feeds/videos.xml?channel_id=UCwhe6trGgWukK0-xf0YyPiA","tabs": [{"title": "Home","url": "https://www.youtube.com/@RevuNexus/featured"},{"title": "Videos","url": "https://www.youtube.com/@RevuNexus/videos"},{"title": "Search","url": "https://www.youtube.com/@RevuNexus/search"}],"externalLinks": [],"availableCountryCodes": ["KH","AD","LY","PS","BG","TC","MF","BS","MU","FI","MX","BD","LS","GE","AZ","AO","HU","LV","PF","PH","GR","IT","IM","LU","TF","VN","GN","BE","SR","DM","NO","IN","RE","SJ","KZ","MT","TT","PN","SX","TD","EC","VA","FR","MN","HN","IR","EE","BY","IS","HR","MO","PY","AX","GD","SV","TJ","VE","CC","ID","BM","KW","SE","MZ","AL","FO","MH","GL","BN","MV","CY","AF","SL","CI","RW","PG","BB","ET","QA","SI","NF","CA","TH","CH","CO","FK","ZA","UM","JO","GQ","AQ","KM","GY","TZ","UZ","DZ","DE","GI","GF","ME","US","BA","KI","KY","LI","CX","EH","NZ","GU","LT","TM","AU","HT","CZ","KE","MQ","GH","MC","OM","RO","MS","SO","AW","HM","ST","TN","VC","CV","LB","AI","PA","PL","BL","YT","RS","DO","MG","NU","CU","FJ","AT","MY","AS","VU","NI","AM","UG","SC","PE","BO","KG","UY","CL","MP","CM","UA","ZW","NR","JE","NE","BF","NL","SY","SH","GW","JM","SD","VI","ZM","IE","IQ","CF","MM","DK","WS","RU","BJ","BV","CD","TG","FM","TR","KR","EG","SM","TO","TL","GA","IO","GS","YE","HK","SZ","GP","BR","CW","BH","GB","BI","LC","NC","AR","AE","SB","TK","MD","WF","BT","TV","CK","BQ","ER","SG","TW","PM","GG","PR","KN","LA","SA","MW","SK","PW","ML","CN","ES","NG","GT","LR","JP","IL","AG","MR","NA","MK","SS","GM","PK","PT","BZ","MA","KP","CR","LK","VG","DJ","NP","SN","BW","CG"],"ownerUrls": ["https://www.youtube.com/@RevuNexus"],"alternateUrls": ["https://m.youtube.com/@RevuNexus/about","https://www.youtube.com/feeds/videos.xml?channel_id=UCwhe6trGgWukK0-xf0YyPiA","android-app://com.google.android.youtube/http/www.youtube.com/channel/UCwhe6trGgWukK0-xf0YyPiA","ios-app://544007664/vnd.youtube/www.youtube.com/channel/UCwhe6trGgWukK0-xf0YyPiA"]},"images": {"thumbnailUrl": "https://yt3.ggpht.com/f_EK7mH_99W0L2DqCjv69m-rZ8vf3GEpxr193xXj3rLtx3iTfv2rvfbpIbXHkjNKjAsMCGHHBrI=s68-c-k-c0x00ffffff-no-rj","avatarUrl": "https://yt3.googleusercontent.com/f_EK7mH_99W0L2DqCjv69m-rZ8vf3GEpxr193xXj3rLtx3iTfv2rvfbpIbXHkjNKjAsMCGHHBrI=s72-c-k-c0x00ffffff-no-rj","bannerUrl": "https://yt3.googleusercontent.com/jg-vM5YG5Kw2qewcHyRjLvBL87ac_D63qp02qd1Rb4ikUuZhr6rpqZ5oFSZcQDoeeTjrwvaowxU=w1060-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj","avatarImages": []},"discoverySource": {"sourceKind": "keyword","value": "credit repair company","discoverySurface": "video_results","rank": 4,"sourceUrl": "https://www.youtube.com/results?search_query=credit+repair+company&hl=en&gl=US"},"sourceVideo": {"videoId": "ASI13VeHCiQ","title": "Top 3 Best Credit Repair Companies 2026","url": "https://www.youtube.com/watch?v=ASI13VeHCiQ","publishedText": "6 months ago","viewText": "3,060 views"}}
💳 Pricing
This Actor uses pay-per-event pricing. You are charged once for each eligible public channel saved to the dataset. Channel profile details are included. Empty searches, failed attempts, excluded channels, filtered channels, and no-result work are not charged as saved channels. Use the source, run, and Apify charge limits to bound a run.
🔌 Integrations
Use dataset exports, the Apify API, schedules, webhooks, and integrations to send channel rows to a spreadsheet, database, or workflow.
❓ FAQ
How do maximum subscribers and hidden counts work?
Set maxSubscribers to skip channels above your chosen public count. You can use it with minSubscribers to make a range. If either subscriber limit is set, channels with no public subscriber count are skipped.
How do I exclude channels I already know?
Add their YouTube handle URLs or /channel/UC... URLs to excludedChannels. The Actor resolves the channel identity, so matching does not rely only on the URL text.
Can the same channel appear more than once?
No. The first eligible match is saved at once. Later matches for the same channel are ignored, even when they come from another keyword or search URL. They do not change the saved row.
Why is a subscriber count approximate or missing?
YouTube may shorten public counts, such as 19.7K, or hide them. Check subscriberCountIsExact and subscriberText. Missing values stay null.
Can I paste YouTube search-result URLs?
Yes. Add public YouTube /results URLs alone or with keywords and uploaded lists.
Does it return every requested channel?
Not always. YouTube may limit, remove, localize, or deduplicate public search data. Your filters and limits can also reduce saved rows.
Does it scrape videos?
It saves source-video evidence when the first saved match comes from a video result. It does not export full channel video lists, comments, or transcripts.
📝 Changelog
2.0: More reliable large searches with clearer first-match evidence
- Large multi-source searches preserve completed rows when a run must stop, and each saved channel has one clear first-match discovery record with optional source-video evidence.
v1.0
- Added search URL input, first-match channel output, source-video evidence, public profile data, subscriber range filters, and channel exclusions.
v0.1
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- YouTube Channel Scraper ↗: Get profiles or recent videos for channels you already know.
- YouTube Lead Scraper ↗: Find public creator emails from keywords or known channels.
- Influencer Scraper ↗: Find public profiles across TikTok, Instagram, and YouTube.
- YouTube Channel Statistics Scraper ↗: Check public stats for a known channel list.
- Youtube Keywords Discovery Tool ↗: Get YouTube autocomplete ideas before channel discovery.
Made with ❤️ by Maxime Dupré