Tracking YouTube Trending Topics by Niche
Identifies what's performing on YouTube in a specific niche by analyzing recent high-view videos. Surfaces repeatable title formulas, content formats, and topic themes that the YouTube algorithm is currently favoring.
Prerequisites
APIFY_TOKENenvironment variable set- Optional: Apify MCP server installed
Inputs
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
startUrls |
array | Optional | [] |
YouTube URLs — channels, playlists, Shorts, search results |
youtubeHandles |
array | Optional | [] |
YouTube channel handles (e.g. @kurzgesagt) |
getTrending |
boolean | Optional | false |
Retrieve trending videos |
keywords |
array | Optional | [] |
Search keywords |
gl |
string | Optional | us |
Country code for results (e.g. US, GB) |
hl |
string | Optional | en |
Language code (e.g. en, de) |
uploadDate |
string | Optional | all |
Upload date filter: any, hour, today, week, month, year |
duration |
string | Optional | all |
Duration filter: any, short, long |
features |
string | Optional | all |
Feature filter: 4k, hd, live, cc, 3d, hdr, etc. |
sort |
string | Optional | r |
Sort order for search results |
maxItems |
number | Optional | Unlimited | Maximum videos to return |
customMapFunction |
string | Optional | — | JavaScript function to transform each output object |
Workflow
Progress:
- [ ] Step 1: Search for recent high-performing videos in niche
- [ ] Step 2: Extract title patterns and topics
- [ ] Step 3: Score trending momentum
- [ ] Step 4: Identify format and structural patterns
- [ ] Step 5: Deliver trend brief
Step 1: Search YouTube
Recommended — run_actor.js (handles waiting, output, and file saving automatically):
# Quick answer (prints table to chat)
node scripts/run_actor.js \
--actor "apidojo~youtube-scraper" \
--input '{"param": "value"}'
# Save as CSV
node scripts/run_actor.js \
--actor "apidojo~youtube-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.csv --format csv
# Save as JSON
node scripts/run_actor.js \
--actor "apidojo~youtube-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.json --format json
APIFY_TOKENmust be set in environment or.envfile.
If Apify MCP is available:
Tool: apify:run-actor
Actor: "apidojo~youtube-scraper"
Input:
{
"searchKeywords": ["[NICHE]", "best [NICHE]", "[NICHE] 2026", "[NICHE] for beginners"],
"maxResults": 50,
"type": "video"
}
REST API fallback:
curl -X POST "https://api.apify.com/v2/acts/apidojo~youtube-scraper/runs?token=$APIFY_TOKEN" -H "Content-Type: application/json" -d '{"searchKeywords": ["personal finance tips", "best investing 2026", "investing for beginners"], "maxResults": 50}'
Step 2: Analyze Title Patterns
Classify each video title:
title_formula:
NUMBER_LIST = "Top [N]", "[N] Best", "[N] Things"
HOW_TO = "How to", "Step-by-step", "The Complete Guide"
VS_COMPARISON = "vs", "or", "Which is Better"
WARNING = "Avoid", "Mistake", "Stop Doing", "Don't"
STORY = "I tried", "What happened when", first-person
YEAR_SPECIFIC = contains current year → high freshness signal
Step 3: Score Trending Momentum
momentum = viewCount / days_since_published # views per day
trend_score = (momentum / 10000, max 1) * 0.40
+ (likeCount / viewCount * 100 > 4 ? 1 : ratio/4) * 0.30
+ (commentCount / viewCount * 100 > 0.3 ? 1 : ratio/0.3) * 0.30
Step 4: Edge Cases
- All trending videos from one channel: Likely a dominant creator in the niche — note this; it's a competitive signal, not a format trend. Look at the second and third most-viewed creators for broader signals
- Niche is very small (< 10 videos above threshold): Lower
min_viewsto 10K; report available data - Year-specific content dominates: Good sign for content with year in title — recommend "[niche] [year+1]" format as a strong ranking opportunity
Output Format
# YouTube Trending Topics: [NICHE]
Videos analyzed: [N] | Above threshold ([MIN_VIEWS] views): [N] | Date: [DATE]
## Top Title Formulas (by Avg Views)
| Formula | # Videos | Avg Views | Avg Like Rate | Best Example |
|---------|---------|-----------|-------------|-------------|
| Number List | [N] | [N] | [X%] | "[title]" |
| How-To | [N] | [N] | [X%] | |
## Top Performing Videos
| Title | Views | Momentum (views/day) | Like Rate | Trend Score |
|-------|-------|---------------------|----------|------------|
## Trending Topic Themes
1. [Theme] — [N] videos, [N] total views
2. [Theme]
## Recommended Video Ideas
Based on trending patterns:
1. "[Specific video title recommendation using a winning formula]"
2. "[Video title recommendation]"
Troubleshooting
Results skewed by one old viral video: Filter by published_date in the date_range; sort by momentum (views/day) not total views.
Title formulas are too generic: This is normal — YouTube title strategies are well-known. The value is in the specific topic within the formula.
Niche has no recent high-performers: The niche may be saturated or declining on YouTube; consider whether YouTube is the right platform for this content.