Case study

Building the tool I actually needed as a three-channel creator.

Not a product pitch — a genuine case of scratching my own itch, and building it with the same rigor as anything I'd sell.

YouTube Studio answers "what happened." It never answers "why."

Running three channels with different purposes — tourism, podcast, tutorial content — means the same question comes up constantly: which one needs attention right now, and specifically what's wrong with it? YouTube Studio gives raw numbers per channel, per video, with no cross-channel view and no diagnosis. Figuring out "this video's retention is weak because it's too long for its pacing" or "this channel's momentum is quietly declining" meant manually comparing numbers in my head, every time.

That's a rules problem, not a data problem — the data already exists in YouTube's own APIs. Nobody had turned it into a diagnosis.

A rules engine over API data, running entirely on my own machine.

The first decision was keeping it local — a Flask app on my own computer, SQLite on disk, OAuth tokens per channel stored locally. There's no reason channel analytics and account access need to touch a third-party server when the only consumer is me. That also made the "is this safe to build quickly" question simpler: no auth system, no multi-user concerns, no hosting to secure.

The diagnostics themselves are a straightforward rules engine (diagnostics.py) checking each video against configurable thresholds: CTR below a floor, impressions too low to matter, drop-off high relative to the video's own length (a 3-minute video and a 40-minute video have different reasonable retention curves), subscriber loss on a specific video, upload gaps, and a rolling comparison of recent average views against the channel's own baseline to catch declining momentum before it's obvious.

What's actually running under it.

Backend
Python and Flask, run locally with python run.py — no deployment, no cloud hosting.
Data source
YouTube Data API v3 and YouTube Analytics API, authorized per channel via OAuth (youtube_auth.py, youtube_fetch.py).
Storage
Local SQLite database — every sync appends a new snapshot rather than overwriting, which is what makes trend tracking possible.
Diagnostics
A configurable rules engine (diagnostics.py) flagging CTR, impressions, retention, subscriber loss, upload consistency, and momentum.
Topic research
Google Trends via pytrends combined with a competitor-video search scoped to each channel's niche, merged into a single scored suggestion list.

A tool that answers the question I actually ask.

Instead of opening three dashboards and eyeballing numbers, the tool now tells me directly: this video's CTR is weak, this channel's uploads have gone quiet, this topic is trending in the tutorial niche right now. That's the whole point — turning a manual comparison into an automatic flag.

It's a personal tool first, built for three specific channels with their specific thresholds — generalizing it into something other creators could configure for themselves is the obvious next step, but it hasn't been a priority over actually using it.

Managing multiple channels or content properties and want something like this built for your workflow?

Get in touch