Cooklytics helps YouTube creators turn a channel's recent performance into a practical review. Instead of opening a row of videos and guessing what worked, you can see which uploads Cooked, which Got Cooked, and which ones are simply performing about as expected.
Check it out at: https://cooklytics.irtaza.xyz
Built for the Social Media Automation Hackathon 2026.
- Looks up a public YouTube channel by handle and pulls its latest 20 uploads.
- Calculates a channel-average baseline and labels videos as Cooked, Got Cooked, or On Simmer.
- Finds topic, hashtag, upload-time, and duration patterns across the fetched videos.
- Creates a video-level diagnostic with practical next-step suggestions.
- Accepts a CSV with private metrics so creators can add CTR and retention context.
- Keeps imported channel data in the browser so a creator can compare results without starting over.
The app does not pretend that public YouTube data includes private analytics. Public imports use real views, likes, comments, dates, and durations. CTR and retention are only shown when they are supplied in a CSV.
Every video is compared with the average views of the imported channel:
- Cooked: 1.25x the channel average or higher
- Got Cooked: 0.75x the channel average or lower
- On Simmer: between those two thresholds; normal performance, not a failure
This gives a quick answer to a common creator question: should I double down on this format, fix it, or leave it alone?
git clone https://github.com/Irtaza2009/Cooklytics.git
cd Cooklytics
npm installCreate a .env.local file:
YOUTUBE_API_KEY=your_youtube_data_api_keyThen run the app with Vercel's local runtime so the server-side YouTube route is available:
npx vercel devOpen the local URL shown in the terminal. You can also use the included sample channels without an API key.
Import the repository in Vercel. It detects the Vite app automatically.
Add YOUTUBE_API_KEY under Project Settings -> Environment Variables for Production and Preview, then deploy. This is deliberately not a VITE_ variable: the key is read only by the /api/youtube Vercel Function and is never sent to the browser bundle.
For safety, restrict the key in Google Cloud to the YouTube Data API v3. The public-channel lookup calls search.list, so keep an eye on quota during a live demo.
CSV import is intentionally simple. It expects a header row followed by rows in this order:
Title,Views,CTR,Likes,Retention at 10s,Average retention
Only the title and views columns are required. The remaining fields are optional. CSV import is useful for showing the difference between public data and the private metrics that creators see in YouTube Studio.
For a short demo:
- Open Connect Data and select a sample channel, or look up a real public handle.
- Use the Cooked and Got Cooked filters to show the performance split.
- Open Pattern Mining and call out one topic or timing pattern.
- Run a Video Autopsy on one Cooked video and one Got Cooked video.
- If available, import a CSV to show how CTR and retention add context.
The What to Cook Next tab is visible as a work in progress and is not part of the submitted feature set. The finished workflow is channel ingestion, classification, pattern mining, and video diagnostics.
React, Vite, Tailwind CSS, Recharts, Lucide, and a small Vercel Function for YouTube Data API requests.