YouTube Channel Discovery & Enrichment avatar
YouTube Channel Discovery & Enrichment

Pricing

Pay per usage

Go to Apify Store
YouTube Channel Discovery & Enrichment

YouTube Channel Discovery & Enrichment

Discover up to 1,000 YouTube channels per keyword using official search filters, then enrich them with trusted YouTube Data API metrics for influencer and market research.

Pricing

Pay per usage

Rating

4.0

(1)

Developer

seungkyu cho

seungkyu cho

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

5

Monthly active users

15 days ago

Last modified

Share

Discover YouTube channels through web-based search with advanced filtering options and optional YouTube Data API v3 enrichment for detailed channel statistics.

๐ŸŽฏ Features

  • Web-Based Discovery: Scrapes YouTube search results using Playwright (no API quota needed for discovery)
  • Advanced Filters: Upload date, content type, and sort order
  • API Enrichment: Optional YouTube Data API v3 integration for subscriber counts, video stats, and metadata
  • Multiple Queries: Process multiple search queries in a single run
  • Smart Deduplication: Automatically removes duplicate channels across queries
  • High Capacity: Up to 1000 channels per query
  • Error Resilience: Query-level error isolation - one failed query won't stop others

๐Ÿ“Š Use Cases

  • Influencer Research: Find fitness, beauty, gaming, or tech channels by hashtags
  • Competitor Analysis: Discover channels in your niche sorted by view count or relevance
  • Trend Monitoring: Track newly uploaded content with time-based filters
  • Lead Generation: Build lists of potential collaboration partners
  • Market Research: Analyze channel distribution across topics

๐Ÿš€ Quick Start

{
"searchQueries": ["#fitness", "#yoga"],
"filters": {
"type": "channel",
"sort": "relevance"
},
"maxResultsPerQuery": 50,
"useYoutubeApi": true
}

Recent Video Creators

{
"searchQueries": ["home workout"],
"filters": {
"type": "video",
"uploadDate": "week",
"sort": "view_count"
},
"maxResultsPerQuery": 100,
"useYoutubeApi": false
}

๐Ÿ“ฅ Input Configuration

Required Fields

  • searchQueries (array): List of search queries
    • Examples: ["#fitness", "yoga tutorial", "@channelname"]
    • Min: 1, Max: 100 queries

Optional Fields

  • filters (object): YouTube search filters

    • uploadDate: "any", "hour", "today", "week", "month", "year"
    • type: "video", "channel", "playlist"
    • sort: "relevance", "upload_date", "view_count", "rating"
  • maxResultsPerQuery (integer): Maximum channels per query

    • Default: 100
    • Range: 1 to 1000
  • useYoutubeApi (boolean): Enable API enrichment

    • Default: false
    • Set to true to get subscriber counts, video counts, and detailed metadata
    • Note: YouTube API is pre-configured. No API key needed!

๐Ÿ“ค Output Data

Basic Discovery (API enrichment disabled)

{
"channelId": "UCxxxxxxxxxxxx",
"channelHandle": "@channelname",
"channelUrl": "https://www.youtube.com/@channelname",
"source": "video",
"scrapedAt": "2026-01-13T02:00:22.489Z",
"_searchQuery": "#fitness",
"_timestamp": "2026-01-13T02:00:53.021Z"
}

With API Enrichment (useYoutubeApi: true)

{
"channelId": "UCxxxxxxxxxxxx",
"channelHandle": "@channelname",
"channelUrl": "https://www.youtube.com/@channelname",
"title": "Fitness Channel Name",
"description": "Welcome to our fitness journey...",
"customUrl": "@channelname",
"publishedAt": "2020-03-15T10:30:00Z",
"thumbnails": {
"default": { "url": "...", "width": 88, "height": 88 },
"medium": { "url": "...", "width": 240, "height": 240 },
"high": { "url": "...", "width": 800, "height": 800 }
},
"subscriberCount": 125000,
"videoCount": 387,
"viewCount": 15680000,
"_enriched": true,
"_enrichedAt": "2026-01-13T02:00:23.683Z",
"_searchQuery": "#fitness",
"_timestamp": "2026-01-13T02:00:53.021Z"
}

๐Ÿ’ก YouTube API Enrichment

Good news: YouTube Data API v3 is pre-configured for this Actor!

Simply set useYoutubeApi: true in your input to get:

  • โœ… Subscriber counts
  • โœ… Video counts
  • โœ… Total view counts
  • โœ… Channel descriptions
  • โœ… Thumbnails
  • โœ… Published dates

No API key required from you - it's already set up and ready to use!

Performance Note

  • Without API enrichment: ~20-50 channels per 10 seconds (fastest)
  • With API enrichment: ~50 channels per API call batch (slightly slower but much richer data)

โš™๏ธ Advanced Configuration

High-Volume Collection

{
"searchQueries": ["fitness motivation"],
"filters": {
"type": "channel",
"sort": "view_count"
},
"maxResultsPerQuery": 1000,
"useYoutubeApi": true
}

Note: Large collections may take 5-10 minutes and consume more API quota.

Time-Sensitive Discovery

{
"searchQueries": ["#trending", "#shorts"],
"filters": {
"type": "video",
"uploadDate": "today",
"sort": "upload_date"
},
"maxResultsPerQuery": 30,
"useYoutubeApi": true
}

Use case: Monitor newly uploaded content for real-time trending analysis.

Fast Discovery Without API

{
"searchQueries": ["workout", "exercise"],
"filters": {
"type": "channel"
},
"maxResultsPerQuery": 200,
"useYoutubeApi": false
}

Benefits: Fastest execution, no API quota consumption, basic channel info only.

๐ŸŽฏ Filter Combinations

Use CaseTypeUpload DateSort
Popular channelschannelanyview_count
New creatorschannelweek/monthupload_date
Trending videosvideotoday/weekview_count
Relevant contentvideo/channelanyrelevance
Highly ratedvideoanyrating

๐Ÿ“Š Performance

  • Discovery speed: ~20-50 channels per 10 seconds
  • API enrichment: ~50 channels per API call
  • Average run time:
    • 50 channels without API: ~15 seconds
    • 50 channels with API: ~20 seconds
    • 500 channels with API: ~2 minutes
    • 1000 channels with API: ~5-10 minutes

๐Ÿšจ Error Handling

Query-Level Isolation

If one query fails, others continue processing:

{
"summary": {
"totalQueries": 3,
"totalChannelsCollected": 150,
"apiEnriched": 150
},
"results": [
{
"searchQuery": "#fitness",
"channels": [...],
"channelCount": 100
},
{
"searchQuery": "#invalid",
"channels": [],
"error": {
"message": "No results found",
"code": "NO_RESULTS"
}
},
{
"searchQuery": "#yoga",
"channels": [...],
"channelCount": 50
}
]
}

Common Issues

No channels found

  • Try different search queries
  • Remove or change filters
  • Use type: "video" instead of "channel" (more results)

API quota exhausted

  • Set useYoutubeApi: false temporarily
  • Enrichment will automatically stop if quota is exhausted
  • Actor will continue with basic data (no subscriber counts)

๐Ÿ“– Integration Examples

Node.js

const { ApifyClient } = require('apify-client');
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const input = {
searchQueries: ['#fitness', '#workout'],
filters: { type: 'channel', sort: 'view_count' },
maxResultsPerQuery: 100,
useYoutubeApi: true, // API key is pre-configured!
};
const run = await client.actor('YOUR_ACTOR_ID').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Found ${items.length} channels`);
items.forEach(channel => {
console.log(`${channel.title} - ${channel.subscriberCount} subscribers`);
});

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run_input = {
'searchQueries': ['#fitness', '#workout'],
'filters': {'type': 'channel', 'sort': 'view_count'},
'maxResultsPerQuery': 100,
'useYoutubeApi': True, # API key is pre-configured!
}
run = client.actor('YOUR_ACTOR_ID').call(run_input=run_input)
items = client.dataset(run['defaultDatasetId']).list_items().items
print(f"Found {len(items)} channels")
for channel in items:
print(f"{channel['title']} - {channel['subscriberCount']} subscribers")

cURL

curl -X POST https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchQueries": ["#fitness"],
"filters": {"type": "channel", "sort": "view_count"},
"maxResultsPerQuery": 100,
"useYoutubeApi": true
}'
# Note: YouTube API is pre-configured, no key needed!

๐Ÿ†˜ Support

๐Ÿ“ Changelog

Version 1.0.0 (2026-01-13)

  • โœ… Initial release
  • โœ… Web-based channel discovery with Playwright
  • โœ… YouTube Data API v3 enrichment
  • โœ… Advanced search filters (upload date, type, sort)
  • โœ… Multi-query support with deduplication
  • โœ… Query-level error isolation
  • โœ… Environment variable support for API keys
  • โœ… Up to 1000 results per query

๐Ÿ“„ License

MIT License - See repository for details

๐Ÿ™ Credits

Built with:


Ready to discover YouTube channels? Click "Try it" and start exploring! ๐Ÿš€