cd /news/developer-tools/find-youtube-channels-by-topic-langu… · home topics developer-tools article
[ARTICLE · art-109486] src=dev.to ↗ pub= topic=developer-tools verified=true sentiment=· neutral

Find YouTube Channels by Topic, Language, and Country

A developer has shared a reproducible method for discovering YouTube channels by topic, language, and country using the Apify platform. The approach separates market dimensions and uses the 'youtube-creator-lead-finder' actor to generate a qualified shortlist, with deduplication by channel ID and transparent metadata for language and country confidence.

read3 min views1 publishedAug 25, 2026

Most tools that find YouTube channels by topic treat the search as one keyword and one result page. That works for lookup. It misses how creator discovery behaves across languages, countries, and niche vocabulary.

“AI automation” in English, “automatisation IA” in French, and “automatización con IA” in Spanish do not return the same creator pool. Country filters add another problem: a creator’s language, search region, declared country, and inferred geography are not interchangeable.

Here is a reproducible way to discover channels without building a seed list first.

Write the requested market as separate dimensions:

niches = ["AI automation", "B2B SaaS"]
languages = ["en", "fr"]
countries = ["US", "CA", "GB", "FR"]

This is more useful than concatenating everything into one long search phrase. It lets the discovery layer try multiple relevant combinations while keeping a global cap on search calls.

The channel URLs you already know can still be included as optional seeds. They should not define the whole market.

A French-language campaign is not necessarily a France campaign.

French-speaking creators can publish from Canada, Belgium, Switzerland, Morocco, Senegal, or anywhere else. If language matters and location does not, use:

run_input = {
    "preset": "qualified_shortlist",
    "niches": ["AI agents", "business automation"],
    "languages": ["fr"],
    "countries": [],
    "worldwideLanguageMode": True,
    "maxChannels": 10,
    "videosAnalyzedPerChannel": 10,
    "maximumSearchCalls": 12,
}

This guides discovery by language without pretending that every returned creator lives in one country.

pip install apify-client
export APIFY_API_TOKEN="..."
python
import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_API_TOKEN"])

run_input = {
    "preset": "qualified_shortlist",
    "searchQueries": [
        "AI automation tutorials",
        "B2B SaaS growth",
    ],
    "niches": ["AI automation", "B2B SaaS"],
    "languages": ["en", "fr"],
    "countries": ["US", "CA", "GB", "FR"],
    "worldwideLanguageMode": False,
    "excludedKeywords": ["compilation", "reupload"],
    "minSubscribers": 1_000,
    "maxSubscribers": 500_000,
    "minVideosPerMonth": 1,
    "lastUploadWithinDays": 90,
    "maxChannels": 10,
    "videosAnalyzedPerChannel": 10,
    "maximumSearchCalls": 16,
}

run = client.actor("kazkn/youtube-creator-lead-finder").call(
    run_input=run_input,
)

items = client.dataset(run["defaultDatasetId"]).list_items().items

The output is deduplicated by stable channelId

inside the run. That matters because the same creator can match several topics, languages, country hints, or search phrases.

A useful discovery row should explain why the channel entered the shortlist.

for item in items:
    print({
        "channel": item["channelName"],
        "matched_queries": item.get("matchedQueries", []),
        "matched_languages": item.get("matchedLanguages", []),
        "matched_countries": item.get("matchedCountries", []),
        "primary_language": item.get("primaryLanguage"),
        "declared_country": item.get("declaredCountry"),
        "inferred_countries": item.get("inferredCountries", []),
        "warnings": item.get("warnings", []),
    })

The matched*

fields describe the search request. They are not automatically confirmed creator attributes.

When public channel metadata includes a country, keep it as declaredCountry

.

When geography is inferred from public signals, keep it in inferredCountries

with countryConfidence

. Never overwrite the declared field with a guess. If no defensible location signal exists, leave it unknown.

The same rule applies to language. Keep the primary language, detected languages, and confidence visible instead of turning a search hint into a fact.

Topic relevance alone can return inactive or commercially weak channels. The second pass should check:

This two-pass design keeps discovery broad enough to find unfamiliar creators while spending enrichment work only on plausible candidates.

Multi-language and multi-country matrices can expand quickly. Use maximumSearchCalls

as a global cap, start with 5–10 output channels, and widen one dimension at a time.

If a search returns zero rows, inspect the exclusions and warnings. Requiring a narrow country, high recent views, frequent uploads, a small subscriber band, one format, and a public contact simultaneously can correctly eliminate every candidate.

The public YouTube Channel Finder by Niche Task starts without mandatory channel URLs and opens with a bounded input you can edit:

Find YouTube channels by topic and market

For the full input and output contract, see YouTube Creator Lead Finder.

The goal is not to search more keywords. It is to keep discovery broad, qualification explicit, and every uncertain attribute honest.

── more in #developer-tools 4 stories · sorted by recency
── more on @apify 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/find-youtube-channel…] indexed:0 read:3min 2026-08-25 ·