Skip to content

coder-ralph/kickstream-monitor

Repository files navigation

KickStream Monitor Logo

KickStream Monitor ๐ŸŽฎ

A real-time analytics dashboard for Kick streamers. Monitor viewer counts, stream uptime, and channel statistics with automatic 15-second refresh intervals.

โœจ Features

  • ๐Ÿ”ด Live Status - Real-time online/offline detection
  • ๐Ÿ‘ฅ Viewer Count - Current viewer metrics
  • ๐Ÿ“Š Peak Viewers - Session high tracking
  • โฑ๏ธ Stream Uptime - Live session duration
  • ๐ŸŽฏ Category Tracking - Current game/category
  • ๐Ÿ“ Stream Title - Live title display
  • โ™ป๏ธ Auto-refresh - Updates every 15 seconds
  • ๐Ÿ“ฑ Responsive Design - Works on all devices

Bigfoltz Kick Channel

Bigfoltz Kick Stream Monitor

Inamiing Kick Channel

Inamiing Kick Stream Monitor

๐Ÿš€ Quick Start

Prerequisites

  • Node.js 18+ installed
  • A Kick.com account (for API credentials)

Installation

  1. Clone the repository
git clone <your-repo-url>
cd kickstream-monitor
  1. Install dependencies
npm install
  1. Set up environment variables

Create a .env.local file in the root directory:

KICK_CLIENT_ID=your_client_id_here
KICK_CLIENT_SECRET=your_client_secret_here
  1. Run the development server
npm run dev
  1. Open your browser

Navigate to http://localhost:3000

๐Ÿ”‘ Getting Kick API Credentials

  1. Go to Kick.com
  2. Navigate to Settings โ†’ Developer
  3. Click Create New Application
  4. Select scopes:
    • โœ… Read user information (including email address)
    • โœ… Read channel information

Scopes

  1. Copy your Client ID and Client Secret
  2. Add them to your .env.local file

For more details, visit Kick Developer Documentation

๐Ÿ“ฆ Tech Stack

Layer Technology
Framework Next.js 14 (App Router)
Language TypeScript
Styling Tailwind CSS
UI Components Lucide React Icons
Date Handling date-fns
Deployment Vercel

๐ŸŒ Deploy to Vercel

Option 1: Deploy via Vercel Dashboard

  1. Push your code to GitHub
  2. Go to vercel.com
  3. Click New Project
  4. Import your repository
  5. Add environment variables:
    • KICK_CLIENT_ID
    • KICK_CLIENT_SECRET
  6. Click Deploy

Option 2: Deploy via CLI

# Install Vercel CLI
npm i -g vercel

# Login
vercel login

# Deploy
vercel --prod

Environment Variables on Vercel

In your Vercel project dashboard:

  1. Go to Settings โ†’ Environment Variables
  2. Add:
    • KICK_CLIENT_ID = your_client_id
    • KICK_CLIENT_SECRET = your_client_secret
  3. Click Save
  4. Redeploy your project

๐Ÿ“ Project Structure

kickstream-monitor/
โ”œโ”€โ”€ app/
โ”‚   โ”œโ”€โ”€ api/
โ”‚   โ”‚   โ”œโ”€โ”€ proxy-image/
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ route.ts          # Image proxy endpoint
โ”‚   โ”‚   โ””โ”€โ”€ streamer/
โ”‚   โ”‚       โ””โ”€โ”€ [username]/
โ”‚   โ”‚           โ””โ”€โ”€ route.ts      # Streamer data API
โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ””โ”€โ”€ StreamerDashboard.tsx # Main dashboard component
โ”‚   โ”œโ”€โ”€ layout.tsx                # Root layout
โ”‚   โ””โ”€โ”€ page.tsx                  # Home page
โ”œโ”€โ”€ .env.local                    # Environment variables
โ”œโ”€โ”€ next.config.js                # Next.js configuration
โ”œโ”€โ”€ package.json                  # Dependencies
โ”œโ”€โ”€ tailwind.config.ts            # Tailwind configuration
โ””โ”€โ”€ tsconfig.json                 # TypeScript configuration

๐ŸŽฏ Usage

  1. Enter a Kick streamer username (e.g., amateurgamer, nicklee, bakedalaska)
  2. Click Monitor
  3. View real-time analytics:
    • Live/Offline status
    • Current viewer count
    • Peak viewers for the session
    • Stream uptime
    • Category/Game
    • Stream title

The dashboard auto-refreshes every 15 seconds to keep data current.

๐Ÿ› ๏ธ Development

Available Scripts

# Start development server
npm run dev

# Build for production
npm run build

# Start production server
npm start

# Run linter
npm run lint

API Endpoints

Get Streamer Data

GET /api/streamer/[username]

Response:

{
  "username": "xqc",
  "profilePic": "https://...",
  "isLive": true,
  "viewerCount": 45000,
  "title": "Gaming Stream",
  "category": "Just Chatting",
  "startTime": "2026-01-30T10:00:00Z",
  "followersCount": 2500000,
  "streamId": 123456
}

Proxy Image

GET /api/proxy-image?url=[encoded_image_url]

Returns the proxied image to bypass CORS restrictions.

API Rate Limiting

The Kick API may rate limit requests. The app:

  • Refreshes every 15 seconds (conservative)
  • Uses proxy services to avoid direct blocking
  • Implements error handling for failed requests

๐Ÿ“ Notes

  • API Coverage: Kick's API is limited and may not expose all data
  • Viewer Count: May lag slightly behind actual live counts
  • Rate Limits: Be mindful of API rate limits with frequent requests
  • Unofficial API: This uses Kick's public API which may change

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

โš ๏ธ Disclaimer

This project is not affiliated with or endorsed by Kick.com. Use responsibly and in accordance with Kick.com's Terms of Service.

Built with โค๏ธ for the Kick streaming community

About

Monitor basic live analytics of a Kick streamer in near real time.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors