Irtaza2009/Cooklytics

Were you cooking, or were you cooked? YouTube Analytics

★ 0Forks 0JavaScriptGitHub ↗Compare

Project website ↗

README

Cooklytics

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.

What it does

  • 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.

The core idea

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?

Running it locally

git clone https://github.com/Irtaza2009/Cooklytics.git
cd Cooklytics
npm install

Create a .env.local file:

YOUTUBE_API_KEY=your_youtube_data_api_key

Then run the app with Vercel's local runtime so the server-side YouTube route is available:

npx vercel dev

Open the local URL shown in the terminal. You can also use the included sample channels without an API key.

Deploying to Vercel

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 format

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.

Demo path

For a short demo:

  1. Open Connect Data and select a sample channel, or look up a real public handle.
  2. Use the Cooked and Got Cooked filters to show the performance split.
  3. Open Pattern Mining and call out one topic or timing pattern.
  4. Run a Video Autopsy on one Cooked video and one Got Cooked video.
  5. If available, import a CSV to show how CTR and retention add context.

Scope

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.

Stack

React, Vite, Tailwind CSS, Recharts, Lucide, and a small Vercel Function for YouTube Data API requests.

Contributors

Irtaza2009

Issues