By the time a video shows up in my recommendations, ten other channels have already made their version. So I built a small tool that checks the channels in a niche every morning and flags uploads that do much better than that channel normally does. Here's how it works, and what the YouTube API quota taught me.
There's a live, read-only demo of one real niche: https://watch.seedflows.ai/demo
For each channel I take its long-form videos that are between 2 weeks and 5 months old and use the median of their views. One viral hit wrecks an average; the median ignores it. Shorts get their own baseline, because they live in a different world.
A 3-day-old video hasn't had time to collect its views. So the expectation grows with age:
expected = baseline * min(1, sqrt(max(age_days, 1) / 14))
On day 1 a video "should" have about 27% of the baseline, on day 4 about 53%, from day 14 on 100%. It's a heuristic I picked by looking at data, not a fitted model. Better ideas are welcome.
score = views / expected
2x or more is a breakout, 1.3x is "above average". Every check stores the view count, so the next check shows views per day: a lucky first day and a video YouTube keeps recommending look very different.
After each check, all titles in the niche are compared with each other. When near-identical titles show up on 2–3 channels within a few weeks, that's a format spreading through the niche. In my experience that's the most useful signal of all.
The YouTube Data API gives a project 10,000 units a day, and that's the real constraint:
Next.js, Postgres with Drizzle, a small Node worker for the daily checks, Stripe for billing.
The demo shows one real niche, read-only: https://watch.seedflows.ai/demo
If you want your own niches, it's at https://watch.seedflows.ai.
I'd love feedback on the age curve in particular. How would you model expected views by age?