Most "viral video" lists sort by views. That mostly tells you who is big. The useful question for idea research is different: which videos did far better than their own channel normally does?
The score
outlierScore = views / median views of the ~10 uploads published around the video
A score of 8 means the video got eight times what that channel was normally getting at the time. Real examples from this week:
| Score | Video | Views vs channel norm |
|---|---|---|
| 8.0x | Economics Explained: Why Everyone is Leaving New Zealand | 3.6M vs 452K |
| 7.5x | FEE: The Real Reason Your Rent Is So High | 199K vs 26.5K |
| 4.5x | 60 Minutes: Why rents are dramatically increasing across the US | 855K vs 192K |
Why neighbours, not the all-time average
The obvious baseline is the channel's average views. It breaks on any channel that is growing: if each new upload gets 10% more views than the last, every recent video sits far above the all-time average and gets flagged as a hit, even though none of them is unusual for the channel at that moment.
Comparing each video only with the uploads published just before and after it cancels both channel growth and video age at once. I kept a test that builds exactly that trap and checks the naive method falls into it while this one does not:
def test_growing_channel_is_not_mistaken_for_breakouts():
# Each newer upload gets 10% more views than the one before.
views = [int(1000 * 1.1 ** (30 - i)) for i in range(30)]
naive_avg = sum(views) / len(views)
assert views[0] / naive_avg > 2, "fixture must fool the naive method"
assert pick_outliers(score_channel(vids(views), now=NOW), min_score=2.0, limit=None) == []
Three more rules keep the score honest:
- Videos under 7 days old are left out of both the results and the baseline, because their views are still climbing. Including them drags the baseline down and makes every nearby video look like a breakout.
- Shorts are only compared with Shorts. Their view counts live on a different scale.
- Tiny channels need a floor. On a channel whose normal video gets 100 views, one share produces a 200x "outlier". By default, videos under 1,000 views and channels with a norm under 500 are skipped.
Topic mode
Give it a search like "why rent is so high" and it scores every result against its own channel. That surfaces the ideas that travelled beyond a creator's usual audience, which is the signal worth copying.
Try it
It runs as a pay-per-event Actor on Apify: no YouTube API key, about $0.02 per channel analysed, and AI assistants can call it through MCP.
- Actor: https://apify.com/pietro_wagaitho/youtube-outlier-finder
- Examples (Python, Node, MCP, curl): https://github.com/PeterGaitho/youtube-outlier-finder
I considered a time-decay model for the baseline, but neighbours were simpler and harder to fool. If you have a better baseline, I would like to hear it.
Top comments (0)