YouTube Channel Finder — Niche Creator Discovery avatar

YouTube Channel Finder — Niche Creator Discovery

Pricing

from $2.34 / 1,000 result storeds

Go to Apify Store
YouTube Channel Finder — Niche Creator Discovery

YouTube Channel Finder — Niche Creator Discovery

Find YouTube channels by niche keyword and subscriber range. Export public channel titles, URLs, descriptions, subscriber counts, video counts, and view counts for creator research.

Pricing

from $2.34 / 1,000 result storeds

Rating

0.0

(0)

Developer

North Glass Labs

North Glass Labs

Maintained by Community

Actor stats

0

Bookmarked

9

Total users

4

Monthly active users

5 days ago

Last modified

Share

YouTube Channel Database Search — Find Creators by Niche

Turn a niche keyword into a structured list of YouTube channels. Use subscriber-range filters to narrow the results for niche creator discovery, sponsorship research, podcast guest discovery, or creator lead lists.

The Actor searches YouTube's channel-filtered results, scrolls for more channel cards, removes duplicates, applies filters when subscriber counts are visible, and enriches each result from its public About page.

What you can do with it

  • Discover niche creators — search a specific topic such as indie game development, climate technology, or home coffee roasting.
  • Research sponsorship candidates — compare visible audience size, publishing volume, descriptions, and channel links before doing your own fit review.
  • Find possible podcast guests — build a research shortlist of creators with relevant channel descriptions and public profiles.
  • Build creator lead lists — export channel metadata to JSON, CSV, Excel, or another workflow for qualification.

This Actor returns channel metadata, not a guaranteed contact database. An email is included only when publicly visible in the rendered About-page text. It does not bypass YouTube's business-email reveal flow, authentication, CAPTCHA, or other access controls, and many records will not contain an email.

Input

FieldTypeRequiredDefaultDescription
searchQuerystringYesNiche keyword or phrase used in YouTube channel search.
maxResultsintegerNo50Maximum channels to return, from 1 to 500. YouTube may expose fewer.
minSubscribersintegerNo0Minimum visible subscriber count. 0 disables the lower bound.
maxSubscribersintegerNo0Maximum visible subscriber count. 0 disables the upper bound.

Subscriber filters only apply when YouTube exposes a parseable count. Channels with hidden or unavailable counts are retained rather than treated as zero.

Example input

{
"searchQuery": "climate technology podcast",
"maxResults": 25,
"minSubscribers": 5000,
"maxSubscribers": 250000
}

Output

The default dataset contains one object per channel. Fields derived from search cards are normally present; About-page enrichment fields can be omitted when YouTube does not expose them or the page cannot be loaded.

FieldTypeMeaning
channelIdstringYouTube channel ID when exposed.
channelNamestringChannel display name.
channelUrlstringCanonical or rendered channel URL.
handlestringPublic @handle when exposed.
subscriberCountintegerParsed count; 0 can also mean hidden or unavailable, so check subscriberText.
subscriberTextstringSubscriber text exposed by YouTube.
videoCountintegerParsed video count when available.
descriptionstringSearch snippet or About-page description.
imageUrlstringChannel thumbnail URL when available.
totalViewsintegerParsed aggregate view count when available.
emailstringEmail found in already-visible public About-page text, when available.
countrystringChannel-declared country when available.
joinedDatestringJoined-date text when available.

Illustrative record (values and optional-field availability vary by channel):

{
"channelId": "UCexample123",
"channelName": "Example Climate Channel",
"channelUrl": "https://www.youtube.com/@exampleclimate",
"handle": "@exampleclimate",
"subscriberCount": 84200,
"subscriberText": "84.2K subscribers",
"videoCount": 412,
"description": "Interviews and explainers about climate technology.",
"imageUrl": "https://yt3.googleusercontent.com/example",
"totalViews": 5230000,
"country": "United States",
"joinedDate": "Joined Mar 15, 2018"
}

API and automation recipes

Set an Apify API token first:

$export APIFY_TOKEN="your_apify_token"

The synchronous endpoint in the cURL and n8n examples waits for the run and returns dataset items directly. Keep maxResults modest for synchronous workflows because the Actor visits each selected channel's About page.

cURL

curl --request POST \
"https://api.apify.com/v2/acts/northglasslabs~youtube-channel-database-search/run-sync-get-dataset-items?token=${APIFY_TOKEN}&format=json&clean=true" \
--header "Content-Type: application/json" \
--data '{
"searchQuery": "climate technology podcast",
"maxResults": 25,
"minSubscribers": 5000,
"maxSubscribers": 250000
}'

Python

Install the client with pip install apify-client, then:

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("northglasslabs/youtube-channel-database-search").call(
run_input={
"searchQuery": "climate technology podcast",
"maxResults": 25,
"minSubscribers": 5000,
"maxSubscribers": 250000,
}
)
items = client.dataset(run["defaultDatasetId"]).list_items(clean=True).items
print(items)

JavaScript

Install the client with npm install apify-client, then:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('northglasslabs/youtube-channel-database-search').call({
searchQuery: 'climate technology podcast',
maxResults: 25,
minSubscribers: 5000,
maxSubscribers: 250000,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems({ clean: true });
console.log(items);

n8n / HTTP Request

Create an HTTP Request node with:

  • Method: POST
  • URL: https://api.apify.com/v2/acts/northglasslabs~youtube-channel-database-search/run-sync-get-dataset-items
  • Query parameters: token = your Apify token, format = json, clean = true
  • Send Body: on
  • Body Content Type: JSON
  • JSON Body:
{
"searchQuery": "climate technology podcast",
"maxResults": 25,
"minSubscribers": 5000,
"maxSubscribers": 250000
}

For production n8n workflows, store the token in an n8n credential or secret rather than directly in the node. The response is the array of dataset records and can feed a Filter, Google Sheets, Airtable, database, or CRM qualification step.

Pricing

The public Actor configuration checked on July 30, 2026 lists pay-per-event pricing of:

  • $0.02 for the Actor Start event.
  • $0.00275 per returned dataset item on the Free tier ($2.75 per 1,000 results), with lower per-item prices configured for paid Apify tiers.

For example, 50 returned items correspond to a listed event subtotal of $0.15750 before tier discounts. Your total can also include Apify platform usage, and a run can return fewer than maxResults; check the live Actor pricing panel before running because pricing can change.

How it works

  1. Opens YouTube search with the channel-only filter.
  2. Parses embedded ytInitialData and rendered channel cards.
  3. Scrolls until the requested unique count is reached, growth stalls, or the scroll limit is reached.
  4. Deduplicates by available channel ID, handle, and URL.
  5. Applies subscriber bounds only to channels with visible, parseable counts.
  6. Visits each selected channel's public /about page and adds details that are available.
  7. Pushes one channel object to the default Apify dataset.

Limits and data interpretation

  • YouTube is JavaScript-rendered and can cap, vary, or block results. The implementation retries direct access first and then configured proxy sessions, but a requested count is not guaranteed.
  • Search order comes from YouTube. This Actor does not calculate sponsorship fit, engagement rate, audience demographics, or guest suitability.
  • subscriberCount: 0 is ambiguous when subscriberText is empty or says the count is hidden.
  • totalViews, country, joinedDate, and email depend on the public About page and may be absent.
  • A public email, when found, has not been validated for deliverability or permission to contact. Qualify leads and follow applicable outreach and privacy rules.
  • For workloads requiring official API guarantees, evaluate the YouTube Data API v3.

Local verification

python3 -m pip install -r requirements.txt pytest
python3 -m pytest -q
apify validate-schema
apify run

Local test input lives at storage/key_value_stores/default/INPUT.json when running with Apify local storage.