About the Project

I make videos myself, and one thing I've always found frustrating is trying to figure out why a video did well or poorly. YouTube Studio gives you a lot of numbers, but it's still easy to look at a bunch of graphs and come away without a clear answer.

That was the idea behind Cooklytics. I wanted something that could take a channel's recent videos, compare them against each other, and give a quick, understandable explanation of what seems to be working. That's where the whole Cooked / Got Cooked / On Simmer idea came from.

GitHub repo (code + README): https://github.com/Irtaza2009/Cooklytics

Live demo: https://cooklytics.irtaza.xyz

This was made by me, completely solo!

How I built it

Cooklytics uses the YouTube Data API to pull a channel's recent public videos and their basic statistics. It then calculates a channel-wide baseline and compares each video against it. From there, it looks for patterns in things like topics, hashtags, upload times, and video length.

I also added CSV importing so creators can bring in their private YouTube Studio metrics, such as CTR and retention. This keeps the distinction between what YouTube makes public and what only the creator can see.

The interface is built with React, Vite, Tailwind CSS, Recharts, and Lucide, with a small Vercel Function handling the YouTube API requests.

What I learned

The biggest thing I learned was that having more data doesn't necessarily make something more useful. I originally thought the project would mostly be about collecting statistics, but I found that turning those statistics into something a creator can actually understand was much more interesting.

I also learned more about working with the YouTube Data API, handling API keys securely, analysing data on the client side, and building a project where the results need to be useful rather than just technically correct.

Challenges

One of the biggest challenges was working with only public YouTube data. Things like CTR and retention aren't available through the public API, so I had to make sure Cooklytics didn't pretend it knew things that it couldn't actually know. That's why the CSV import exists.

Another challenge was deciding what counts as a "good" or "bad" video. There isn't one universal number that works for every channel, so Cooklytics uses the channel's own recent average as its baseline. A video performing at 2× your average means something very different from one performing at 2× someone else's.

There's still plenty I'd like to add, but the goal for this hackathon was to build something that I would actually find useful when looking at my own content.

Built With

Share this project:

Updates

Submission history