Most creators pick topics by gut. Three flop, one pops, and nobody knows why. I wanted the reason before I made the video, not after. So I built an agent that scans my whole niche overnight and tells me what's working — and I'm giving you the whole thing here, free.
By the end of this you'll have a channel-radar agent: point it at a list of creators, and it returns a ranked list of the videos beating their channel's own average right now. That ranked list is your topic queue.
Get the agent (free)
This is the whole thing — copy it. It runs in two layers: an orchestrator that fans out one worker per creator, and a worker that scores one channel. Paste the orchestrator prompt into Claude Code (or any agent that can spawn sub-tasks and run Python), give it your creator list, and let it run.
1) The orchestrator prompt (the parent agent):
You are channel-radar, a YouTube topic-finder.
Input: a list of creators in my niche (one channel handle per line).
For EACH creator, spawn a worker (run them in parallel) with the per-creator
worker prompt below. Collect every worker's JSON array, merge them into one
list, re-sort by `outlier` descending, and print the top 20 as a table:
rank | creator | title | views | outlier.
Then, below the table, name the ONE repeatable FORMAT that shows up most in
the top 20 (not a single topic — the shape: e.g. "learn X in N minutes",
"I tried X for 30 days", "X, clearly explained"). That format is my next video.
2) The per-creator worker prompt (one per channel):
You are a channel-radar worker. Input: one creator's recent uploads
(title, views, published date).
1. Compute the MEDIAN view count across all uploads in the window (median, not mean).
2. For each video, score outlier = views / median (round to 2 decimals).
3. Return ONLY a JSON array of the videos scoring >= 1.5, sorted by outlier desc:
[{ "title": "...", "views": 0, "outlier": 0.0 }]
No explanation. Ignore videos younger than 48h (not enough data yet).
3) The scorer (radar.py) — if you'd rather run the math yourself. Feed it a JSON file of { "CreatorName": [{"title": "...", "views": 123}, ...] } and it prints the ranked outliers:
import json, sys, statistics
data = json.load(open(sys.argv[1])) # { creator: [ {title, views}, ... ] }
rows = []
for creator, vids in data.items():
views = [v["views"] for v in vids if v.get("views")]
if len(views) < 3: # need a baseline
continue
med = statistics.median(views)
for v in vids:
if not v.get("views"):
continue
outlier = round(v["views"] / med, 2)
if outlier >= 1.5: # beat its own channel by 1.5x+
rows.append((outlier, creator, v["title"], v["views"]))
rows.sort(reverse=True)
print(f"{'outlier':>7} {'creator':<18} title")
for outlier, creator, title, views in rows[:20]:
print(f"{outlier:>7} {creator:<18} {title} ({views:,} views)")
Run it: python radar.py mychannels.json. That's the agent. The rest of this article is how it works and how to read the output.
Why it works (the one idea)
Raw view counts lie — a 1M-view video on a 5M-subscriber channel is a *flop*, and a 200K-view video on a small channel is a *breakout*. The signal is the outlier: how far a video beats its OWN channel's median. Rank by outlier-against-self and you find *formats* that overperform — the thing you can actually copy on a small channel. In one run mine covered 535 videos across 22 creators and handed back the winners. No guessing.
The full step-by-step
- Make your reference list: one line per creator you respect in your niche. Keep it to channels that are currently *growing*, not coasting on old hits.
- For each creator, pull their recent uploads (title, view count, date).
- Compute that channel's median views over the recent window — the median, not the average, so one mega-viral video doesn't skew the baseline.
- Score each video:
outlier = views / channel_median. A 3.0 means it tripled the channel's normal performance. - Drop anything below your threshold (start at 1.5x) and sort the rest descending.
- Read the top of the list for the *pattern* — not just one topic, but the repeatable format showing up again and again.
What the data showed
The pattern that jumped out: a "learn 80% of any tool in X minutes" format hit 770K then 1.7M views, five times running on the same channel — and an "AI agents, clearly explained" video pulled 4.5M. Same shapes, repeated. That's not luck; it's a repeatable format hiding in plain sight. The agent's job is to surface those shapes before you commit a week to a topic.
What most people get wrong
They rank by raw views and chase the biggest number. That just tells you which big channel is big. Rank by outlier-against-self instead. Median over mean, and score each video against its own channel. Get that one decision right and the list becomes a topic engine instead of a popularity contest.
One step to take today
Write the reference list. Ten creators you'd be proud to be compared to, one per line. Drop it into the agent above. You're one run away from never guessing a topic again.