YouTube Channel Search Scraper
Pricing
from $0.40 / 1,000 channels
YouTube Channel Search Scraper
Find public YouTube channels from search terms or public YouTube search-result URLs. Review channel IDs, handles, public metrics, and profile details. Each channel row keeps the first eligible search match.
Pricing
from $0.40 / 1,000 channels
Rating
5.0
(2)
Developer
Maxime Dupré
Maintained by CommunityActor stats
9
Bookmarked
1.6K
Total users
186
Monthly active users
a day 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.
📦 Review YouTube channel data
Each dataset row is one unique saved public channel with:
channel: ID, handle, name, URL, description, verification, and family-safe statusmetrics: subscriber, video, and total view countsprofile: country, joined text, tags, tabs, public links, public emails the channel writes in its profile text, available country codes, and alternate URLsimages: 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. profile.tags is always an array and is empty when YouTube exposes no tags.
▶️ 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 each stable channel ID right away. If the same channel appears again from another keyword, URL, handle, ID, or discovery surface, that later match is ignored. The saved row keeps its first discovery evidence.
⚙️ Input
| Field | Type | What it does |
|---|---|---|
searchTerms | string array | Searches up to 500 topics, products, niches, or creator types, including file terms. Repeated terms are used once. If all search inputs are omitted, the Actor searches coffee roasting. |
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. Use one term per TXT line. CSV files can use a searchTerm, term, query, keyword, or keywords column. Without one, each cell is a term. File terms past the shared 500-term limit are not used. |
searchUrls | object array | Runs public youtube.com/results URLs again. It keeps the search words and ignores the URL's language, country, and filter. Set those with Search language, Search country, and Find channels by. Each object has a url. |
searchUrls[].url | string | One public YouTube search-result URL to run. |
discoveryMode | string | Accepts videoResults, channelFilter, or both. The form pre-fills both, also the runtime fallback if omitted. With both, video results run first and can use the per-search limit before channel-only search starts. The public schema requires this field. |
maxChannelsPerSearchTerm | integer | Stops each keyword or URL after this many eligible channels. A channel saved from an earlier search still counts here but is not saved twice. Filtered and excluded channels do not count. Use 0 or leave it empty for no per-search limit. |
maxTotalResults | integer | Stops after this many unique saved channels in the run. Use 0 or leave it empty for no total limit. Filtered and excluded channels do not count. |
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 | Set true to save only channels YouTube marks as verified. Defaults to false. |
excludedChannels | string list | Leaves out YouTube channels identified by a bare handle, channel ID, or full channel URL. |
languageHint | string | Sets a two-letter YouTube page language hint. Defaults to en for English. Codes are case-insensitive. A hint does not ensure that every channel uses that language. |
countryHint | string | Sets a two-letter YouTube country hint. Defaults to US for the United States. Codes are case-insensitive. A hint does not filter channels by their profile country. |
The Input tab pre-fills both work-limit fields with 10 for a convenient first run. The schema has no default for either field. If an API, CLI, or scheduled run omits a field, that boundary is not added. Zero also removes that limit. The Actor tries to read all available matches within the limits, but a source access failure or a platform run limit can stop work earlier.
Subscriber and video-count filters accept whole numbers from 0 upward. They are off when omitted. Search files, search URLs, and excluded channels are empty when omitted. YouTube search URLs must include a non-empty search_query.
Example input from a successful current-beta default-input run
{"discoveryMode": "both","searchTerms": ["coffee roasting"],"maxChannelsPerSearchTerm": 10,"maxTotalResults": 10,"verifiedOnly": false}
🧾 Output
Each saved row has one of two forms. A video-result match has a sourceVideo object. A channel-only match has sourceVideo: null. Both forms keep the first eligible discovery evidence.
Channel row with source-video evidence
| Field | Type | What it does |
|---|---|---|
channel.id | string | Stable YouTube channel ID. |
channel.handle | string or null | Public handle. |
channel.title | string | 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. |
metrics.subscribers | integer or null | Public subscriber count when shown. YouTube rounds large counts, so this number can be approximate. |
metrics.videos | integer or null | Public video count when shown. |
metrics.totalViews | integer or null | Total public view count when shown. |
profile.country | string or null | Country shown on the channel. |
profile.joinedText | string or null | Join text shown by YouTube. |
profile.tags | string array | Public channel tags, when shown by YouTube. |
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.emails | string array | Email addresses the channel writes in its own public profile text. Empty when none is written there. |
profile.availableCountryCodes | string array | Country codes where the channel is available. |
profile.alternateUrls | string array | Other public URLs for the channel. |
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.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 | Position in the YouTube results list, starting at 1. Video results and channel-only search are numbered separately. Numbers keep going across all pages of that search. Results removed by your filters or excluded channels still get a number. |
discoverySource.sourceUrl | string | Results URL where the first saved match appeared. |
sourceVideo | object | Video from the first saved match when a video result first showed the channel. |
sourceVideo.videoId | string | Stable source video ID. |
sourceVideo.url | string | Public URL of the matching YouTube video. |
sourceVideo.title | string or null | Source video title. |
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 row is real data from a recent successful run of this Actor.
{"channel": {"id": "UCMb0O2CdPBNi-QqPk5T3gsQ","handle": "@jameshoffmann","title": "James Hoffmann","url": "https://www.youtube.com/@jameshoffmann","description": "Hi! My name is James, and I make videos about anything and everything to do with coffee, occasionally food and sometimes business/entrepreneurship. I create how-tos, guides, reviews, vlogs, video essays and mini-documentary films. In the real world, I've started a few companies, I wrote \"The World Atlas of Coffee\" and \"How To Make The Best Coffee At Home\". I do a little advisory work for startups too.\n\nIf you want to get in touch, drop me a line but please read these two things first:\n\n1. I don't do paid reviews. I have a Patreon that helps me buy the products I want to review to prevent bias (then I give them away!)\n2. I get a lot of email, so sadly I can't help with queries about which equipment you should buy.\n\nTO GET IN TOUCH PLEASE REACH OUT VIA WEBSITE: https://www.jameshoffmann.co.uk/contact-me\nManagement: Ziggurat XYZ","isVerified": true,"isFamilySafe": true},"metrics": {"subscribers": 2570000,"videos": 412,"totalViews": 399111475},"profile": {"country": "United Kingdom","joinedText": "Joined Dec 8, 2014","tags": ["coffee","james hoffmann","jimseven","james hoffman"],"tabs": [{"title": "Home","url": "https://www.youtube.com/@jameshoffmann/featured"},{"title": "Videos","url": "https://www.youtube.com/@jameshoffmann/videos"},{"title": "Shorts","url": "https://www.youtube.com/@jameshoffmann/shorts"},{"title": "Live","url": "https://www.youtube.com/@jameshoffmann/streams"},{"title": "Playlists","url": "https://www.youtube.com/@jameshoffmann/playlists"},{"title": "Posts","url": "https://www.youtube.com/@jameshoffmann/posts"},{"title": "Store","url": "https://www.youtube.com/@jameshoffmann/store"},{"title": "Search","url": "https://www.youtube.com/@jameshoffmann/search"}],"externalLinks": ["https://www.jameshoffmann.co.uk/contact-me","http://linktree.com/jimseven"],"emails": [],"availableCountryCodes": ["BH","GG","ZM","NI","AG","AQ","EG","JP","NP","FI","JO","KH","MC","MR","GR","TO","NG","NO","ZA","MP","PW","KI","AD","MY","PE","NC","CO","LU","MK","TG","AW","FR","LY","TM","IE","CY","BZ","SL","IL","CR","AU","NE","EC","MZ","NR","FM","TJ","GW","SO","CU","JE","PR","MU","AX","SS","DM","PF","DK","ES","KG","DO","UM","GL","LT","PK","UG","MX","SE","GI","IS","CN","IN","IQ","MD","MF","NA","UY","KW","UZ","NU","KP","PN","CA","HN","TZ","PY","CX","HK","AM","DE","BE","LK","GD","GM","TT","GU","BL","LA","BN","BT","MT","SJ","SY","CM","MQ","OM","PA","PG","AZ","SA","ST","AS","MS","BS","RO","AR","VG","BO","CC","DZ","CW","PL","CZ","GH","SB","CF","AE","ID","KR","IT","WS","CH","MG","CI","EE","ET","SD","GT","EH","GE","NL","IR","VU","PT","VE","SZ","RW","ER","MW","KE","BI","WF","FO","BR","GA","BW","LB","CK","QA","BA","ML","SC","SG","VN","KM","BM","SH","US","SR","SX","TC","SV","LR","AT","MH","TK","BB","DJ","NZ","GS","KN","CV","SM","TV","VI","SN","LV","AF","AI","BV","HM","HU","VA","VC","BG","CD","AL","FK","GQ","SK","HR","NF","PS","GB","TF","KZ","GF","TN","ZW","GY","LI","MV","BJ","BY","TL","IM","IO","MM","KY","LS","YT","RU","RS","BF","RE","BD","PM","CG","CL","TD","TH","JM","PH","YE","MO","TR","UA","SI","FJ","AO","ME","GP","MA","BQ","TW","GN","LC","HT","MN"],"alternateUrls": ["https://m.youtube.com/@jameshoffmann/about","https://www.youtube.com/feeds/videos.xml?channel_id=UCMb0O2CdPBNi-QqPk5T3gsQ","android-app://com.google.android.youtube/http/www.youtube.com/channel/UCMb0O2CdPBNi-QqPk5T3gsQ","ios-app://544007664/vnd.youtube/www.youtube.com/channel/UCMb0O2CdPBNi-QqPk5T3gsQ"]},"images": {"bannerUrl": null,"avatarImages": [{"url": "https://yt3.googleusercontent.com/2k3-P8cX-0sawteUmQSzaQb7pLaCOKcNtEYDEXy1y8Y5wv97Ecgzhgg50b6NYCwxm677h9bT=s72-c-k-c0x00ffffff-no-rj","width": 72,"height": 72},{"url": "https://yt3.googleusercontent.com/2k3-P8cX-0sawteUmQSzaQb7pLaCOKcNtEYDEXy1y8Y5wv97Ecgzhgg50b6NYCwxm677h9bT=s120-c-k-c0x00ffffff-no-rj","width": 120,"height": 120},{"url": "https://yt3.googleusercontent.com/2k3-P8cX-0sawteUmQSzaQb7pLaCOKcNtEYDEXy1y8Y5wv97Ecgzhgg50b6NYCwxm677h9bT=s160-c-k-c0x00ffffff-no-rj","width": 160,"height": 160}]},"discoverySource": {"value": "coffee roasting","discoverySurface": "video_results","rank": 1,"sourceUrl": "https://www.youtube.com/results?search_query=coffee+roasting&hl=en&gl=US"},"sourceVideo": {"videoId": "N6BJVM5tvnw","url": "https://www.youtube.com/watch?v=N6BJVM5tvnw","title": "Coffee Roasting Explained","publishedText": "3y ago","viewText": "2,158,086 views"}}
Channel row from channel-only search
| Field | Type | What it does |
|---|---|---|
channel.id | string | Stable YouTube channel ID. |
channel.handle | string or null | Public handle. |
channel.title | string | 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. |
metrics.subscribers | integer or null | Public subscriber count when shown. YouTube rounds large counts, so this number can be approximate. |
metrics.videos | integer or null | Public video count when shown. |
metrics.totalViews | integer or null | Total public view count when shown. |
profile.country | string or null | Country shown on the channel. |
profile.joinedText | string or null | Join text shown by YouTube. |
profile.tags | string array | Public channel tags, when shown by YouTube. |
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.emails | string array | Email addresses the channel writes in its own public profile text. Empty when none is written there. |
profile.availableCountryCodes | string array | Country codes where the channel is available. |
profile.alternateUrls | string array | Other public URLs for the channel. |
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.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 | Position in the YouTube results list, starting at 1. Video results and channel-only search are numbered separately. Numbers keep going across all pages of that search. Results removed by your filters or excluded channels still get a number. |
discoverySource.sourceUrl | string | Results URL where the first saved match appeared. |
sourceVideo | null | Always null when channel-only search first finds the channel. |
Example channel row from channel-only search
This row is real data from a recent successful run of this Actor.
{"channel": {"id": "UC5xchx_vufvEIgRXgiXCjwQ","handle": "@CoffeeRoasting","title": "Coffee Roasting with Roast Rebels","url": "https://www.youtube.com/@CoffeeRoasting","description": "Roasting your own coffee - it's easier than you probably think. Here you learn how to do it. On the one hand, the choice of the right green coffee for you. Tastes vary and depending on how you prepare the coffee, a Yellow Bourbon from Brazil (espresso) or a Yirgacheffe from Ethiopia (filter coffee) is better suited.\n\nOn this channel you will also get to know the different roasting machines and other equipment and learn how to use them best. With the right tips, you will be able to do your first roasts very well. \n\nIn our online shop for coffee home roasters you will find all the equipment and high-quality green coffees you need to get started quickly and easily:\nhttps://roastrebels.com/en\n\nBest regards\nIngo from Roast Rebels\n\nP.S. Subscribe to the channel: in the coming weeks we will publish new tutorials regularly.","isVerified": false,"isFamilySafe": true},"metrics": {"subscribers": 48600,"videos": 178,"totalViews": 2192137},"profile": {"country": "Switzerland","joinedText": "Joined Sep 12, 2019","tags": ["Coffee Roasting","Home Roasting","Home Coffee Roasting","Green Coffee Beans"],"tabs": [{"title": "Home","url": "https://www.youtube.com/@CoffeeRoasting/featured"},{"title": "Videos","url": "https://www.youtube.com/@CoffeeRoasting/videos"},{"title": "Shorts","url": "https://www.youtube.com/@CoffeeRoasting/shorts"},{"title": "Playlists","url": "https://www.youtube.com/@CoffeeRoasting/playlists"},{"title": "Posts","url": "https://www.youtube.com/@CoffeeRoasting/posts"},{"title": "Search","url": "https://www.youtube.com/@CoffeeRoasting/search"}],"externalLinks": ["https://roastrebels.com/en","https://roastrebels.com/en/"],"emails": [],"availableCountryCodes": ["OM","UG","GI","TM","PF","FJ","MH","HR","IM","LS","SO","EG","SS","PM","AL","NZ","PH","BE","TH","TV","PR","CD","GR","MS","PG","SB","HK","JO","PL","BT","ER","GA","RE","MQ","MV","NO","PK","QA","SY","GW","BV","ET","NF","DK","GL","LK","AM","GB","EH","GM","YE","VU","AO","SZ","TD","CA","HU","GU","TF","BJ","BS","SV","AI","NR","BY","CL","CW","PT","SJ","BG","IL","BB","FI","TW","HT","MN","GG","TN","VA","VE","DM","CC","AE","CO","AU","PE","GY","ID","TG","RW","LV","BF","BQ","RU","KE","GD","CG","MO","SL","MZ","SM","DZ","BN","AD","NC","IE","KH","MK","MC","GQ","MA","SG","AZ","UA","IO","CU","EE","CN","KZ","YT","AW","RO","IT","ZM","BR","DE","CK","GH","KW","TC","CH","CX","NP","VN","ML","SH","LB","BW","AR","ST","FM","ZA","SR","KN","KM","EC","SN","CY","IS","GF","TZ","AF","SX","ES","AS","TR","LY","PA","TO","TK","SI","DJ","PY","LU","UM","BL","UY","MD","ME","JP","RS","TJ","US","VC","VG","BZ","TT","MY","JM","LR","CI","KI","NL","ZW","FO","BI","KP","LT","SK","MG","MP","IR","KG","NA","NI","GS","NU","SA","FR","GN","LA","CR","AT","LC","GT","SC","WS","GE","MR","PW","MU","NE","BA","PS","BM","BO","SE","VI","GP","CZ","MT","HN","CF","KR","JE","MF","AX","MX","AG","HM","FK","BD","IN","CM","BH","WF","MW","IQ","CV","KY","DO","LI","NG","PN","AQ","MM","SD","TL","UZ"],"alternateUrls": ["https://m.youtube.com/@CoffeeRoasting/about","https://www.youtube.com/feeds/videos.xml?channel_id=UC5xchx_vufvEIgRXgiXCjwQ","android-app://com.google.android.youtube/http/www.youtube.com/channel/UC5xchx_vufvEIgRXgiXCjwQ","ios-app://544007664/vnd.youtube/www.youtube.com/channel/UC5xchx_vufvEIgRXgiXCjwQ"]},"images": {"bannerUrl": "https://yt3.googleusercontent.com/vTehv-cgN3fX_7RfFefe4GIIUSZ_rUW8yNkQC7ZpBZz5-P86Cr_Zj3lB3xKLzc1TBgDfQmT1ag=w1060-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj","avatarImages": [{"url": "https://yt3.googleusercontent.com/0josB4O3Nd_gaKjwd0-ne1HXWSBuwJVK4xWIS_mEJRkIhEmNHWdNePqXsVVUikDdaBbM0bXnew=s72-c-k-c0x00ffffff-no-rj","width": 72,"height": 72},{"url": "https://yt3.googleusercontent.com/0josB4O3Nd_gaKjwd0-ne1HXWSBuwJVK4xWIS_mEJRkIhEmNHWdNePqXsVVUikDdaBbM0bXnew=s120-c-k-c0x00ffffff-no-rj","width": 120,"height": 120},{"url": "https://yt3.googleusercontent.com/0josB4O3Nd_gaKjwd0-ne1HXWSBuwJVK4xWIS_mEJRkIhEmNHWdNePqXsVVUikDdaBbM0bXnew=s160-c-k-c0x00ffffff-no-rj","width": 160,"height": 160}]},"discoverySource": {"value": "coffee roasting","discoverySurface": "channel_filter","rank": 1,"sourceUrl": "https://www.youtube.com/results?search_query=coffee+roasting&hl=en&gl=US&sp=EgIQAg%3D%3D"},"sourceVideo": null}
💳 Pricing
This Actor uses pay-per-event pricing. One event is charged for each unique eligible public channel saved to the dataset. A repeated match does not create another row or event. See the Store for the current price for your plan.
🔌 Integrations
Open the run's default dataset to review the saved channel rows.
❓ FAQ
Can a successful run leave a search unfinished?
Yes. A run can save valid channels and still warn that it could not finish a submitted source. It keeps saved rows and continues other searches. Check the run log for warnings about unfinished sources. A successful status and a saved-row count do not prove that every source was fully processed.
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 one YouTube handle, channel ID, or full channel URL to excludedChannels for each channel to leave out. 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 rounds large counts, so subscribers can be an approximate number. If YouTube does not show a count, subscribers is null.
Can I paste YouTube search-result URLs?
Yes. Add public YouTube /results URLs alone or with search terms or uploaded search-term files.
What happens when I leave a result limit empty?
An empty limit or 0 adds no boundary for that limit. The Actor tries to read all available matches. Source access failures and platform run limits can still stop work before a source is finished.
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.
Do I need to sign in to YouTube?
No. The Actor reads public YouTube search and channel pages, so you do not need a YouTube login, cookies, or an API key.
📝 Changelog
v6.0 (24-10-2026)
excludedChannelsnow uses strings so you can enter full channel URLs, bare handles, or channel IDs. Replace each{"url":"..."}object in saved inputs with its URL string.- Video-result rows now include
sourceVideo.url, the public link to the matching video. - Rows now need a non-empty
channel.title. Channels with no name in either the search result or profile are skipped. - Set
maxChannelsPerSearchTermormaxTotalResultsto0to remove that limit. - Search URLs now accept
m.youtube.com/resultslinks. - Reliability improvements.
v5.0 (20-10-2026)
- Results no longer include
sourceVideo.urlbecause it can be made fromsourceVideo.videoId. Update exports that read the removed key. For a video link, add the ID tohttps://www.youtube.com/watch?v=. - Counts now read more local number units. A count such as
1.4with no known number unit is left empty. - Public profile links keep their destination when YouTube wraps them in a redirect link. Links back to YouTube are still left out.
- Reliability improvements.
v4.0 (18-10-2026)
- Results no longer include these fields:
channel.isUnlisted,channel.isNoindex,metrics.subscriberText,metrics.videoText,metrics.totalViewText,profile.keywords,profile.rssUrl,profile.ownerUrls,images.thumbnailUrl,images.avatarUrl, anddiscoverySource.sourceKind. Update exports that read these keys. There are no direct replacements. - Adds
profile.emails, the email addresses that the channel writes in its public profile text. - Two channels from the same search and result type no longer share a
discoverySource.rank. - Subscriber counts written in lakh or crore, such as 1.38 lakh, are now converted to the full number, such as 138,000.
- When the About page header is available, channels with no verified badge in search results or on their About page return
isVerified: falseinstead ofnull. - The Verified channels only option uses the same verified badge check.
- Reliability improvements.
v3.0 (07-10-2026)
- Channel profile keywords and tags no longer repeat YouTube's generic keyword list across unrelated channels.
- Results no longer include
metrics.subscriberCountIsExact. Update exports that read it. There is no replacement for the exact-count flag.
v2.0
- More reliable large searches with clearer first-match evidence.
- Large multi-source searches preserve completed rows when a run must stop.
- Each saved channel has one clear first-match discovery record with optional source-video evidence.
duplicateHandlingwas removed to keep one saved row per channel. Remove this setting from saved inputs. Separate rows for each source are no longer available, and there is no replacement for that option.
v1.0
- Search by public YouTube search-result URL.
- Get the first matching channel output.
matchedSourcesis replaced by thediscoverySourceobject to keep one first match. Update exports to read this object instead of an array; it does not hold every former match. - See source-video evidence for the first match.
sourceVideosis replaced bysourceVideo, one object ornull, to keep only the video from that match. Update exports for this new shape; it does not hold every former video. - Get public profile data.
- Filter channels by subscriber range.
- Exclude channels from the results.
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 a public channel profile and recent videos when you already know the channel.
- YouTube Channel Statistics Scraper: Check public subscriber, view, and video counts for known channels.
- YouTube Similar Channels Finder: Find related public channels from a topic or channel you are studying.
- YouTube Channel Leads Scraper: Check discovered channels for public creator email leads.
- Youtube Keywords Discovery Tool: Collect YouTube autocomplete ideas before choosing channel search terms.
Made with ❤️ by Maxime Dupré