Skip to content

About

Watch Multiple Kick Streams Together in an Adaptive Multi View Interface

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

StreamView πŸŽ₯

Watch Multiple Kick & YouTube Streams Together in an Adaptive Multi View Interface
Dedicated with ❀️ to the Yatra RP Community

StreamView is a modern, open-source web application engineered for roleplay communities, esports followers, and gaming fans to discover connected live broadcasts on Kick and YouTube and watch them simultaneously in an adaptive multi-view workspace using official embed players.

Version: 1.4.5 Next.js 14 React 18 Tailwind CSS License: MIT Live Demo


🌟 Key Features

1. Dedicated to the Yatra RP Community ❀️

  • Self-Learning Roleplay Engine: Automatically identifies live Yatra Roleplay creators and Hindi streams down to single-digit view counts.
  • Dynamic Community Discovery: Seamlessly discovers active streamers across #yatraroleplay, #yatrarp, yatra, and Indian GTA RP servers (e.g. Hathoda, Qayzer4, OnHypeGamer, Kryzor9, Shreeplayz, CandidGaming, Thunderboltgaming, iMRocky, GamerGill, Stelvin777, and emerging community creators).
  • Multi-POV Roleplay Viewing: Watch criminal chases, police operations, courtrooms, and server storylines unfolding from multiple creator perspectives at the same time.

2. Dual-Platform Multi View (Kick & YouTube) ⚑

  • Custom YouTube Stream & Video URL Support: Paste any YouTube link (watch?v=, youtu.be/, /live/, @channel/live, or direct 11-char video ID) into the search bar or drawer to instantly resolve channel details and watch alongside Kick streams.
  • Instant oEmbed Metadata Resolution: Fast zero-auth retrieval of video title, channel name, and thumbnail using YouTube's official oEmbed API.
  • Privacy-Enhanced Official Embeds: Powered by youtube-nocookie.com/embed/{videoId} with automated audio synchronization, mute switching, and responsive player skeletons.
  • Unified Stage & Equal Grid Modes: Seamlessly mix, swap, or tile Kick and YouTube streams in either Stage View or Equal Grid with individual audio controls.

3. Dual Adaptive Layout Modes (1 to 6 Streams)

  • Stage View:
    • 1 to 3 Streams: 3:1 Flex layout featuring a dominant Left Main Stage (75% width) and a clean single-column standby sidecar (25% width).
    • 4 to 6 Streams: 2-column scrollable sidecar with gold-accented styling and smooth height synchronization via ResizeObserver.
    • Instant Swap: Click [ ⇄ Swap ] on any standby tile or tap on mobile to instantly spotlight that stream on the main player.
  • Equal Grid:
    • 2 Streams: 50% / 50% split-screen (grid-cols-2).
    • 3 Streams: Single-row 33% split on desktop (lg:grid-cols-3) / 2-column on tablets (sm:grid-cols-2).
    • 4 Streams: 2x2 grid with 4 equal 50% tiles (grid-cols-2).
    • 5 & 6 Streams: 3-column arrangement on desktop / 2-column on tablets.
    • Solo Mode: Single-click maximization of any individual stream with audio focus.

4. Fully Optimized for Mobile & Tablet πŸ“±

  • Adaptive Breakpoints: Custom UX for mobile phones (<640px), small tablets & foldables (640px–768px), and full-size tablets (768px–1024px).
  • Touch-Momentum Standby Rail: Secondary streams on mobile/tablet arrange in a smooth horizontal touch-swipe strip (touch-pan-x) with 1-tap Swap to Main Stage (saving mobile battery & bandwidth).
  • Responsive Workspace Toolbar: Universal Stage View / Equal Grid toggle and controls bar with 44px+ touch targets and safe bottom clearance.
  • Expandable Add Stream Drawer: Full-width on mobile with horizontally scrollable discovery tags.

5. Sticky 1-Click Bookmark FAB πŸ”–

  • Persistent Bottom-Right Button: Floating bookmark button with subtle pulsing indicator.
  • Instant Browser Saving: Detects client operating system (Windows, Mac, Mobile) and displays exact shortcut keys (Ctrl+D / Cmd+D) and 1-click URL copying.

6. Native Fullscreen Video Stage πŸ–₯️

  • Cockpit Fullscreen: 1-click fullscreen mode for the entire video arena without browser borders or distraction.
  • In-Fullscreen Stream Management: Add, remove, or switch streams directly inside fullscreen without needing to exit.

7. Official Embed Players Compliance πŸ›‘οΈ

  • Strictly integrates Kick's official iframe player (https://player.kick.com/{channel}?autoplay=true) and YouTube's official privacy-enhanced player (https://www.youtube-nocookie.com/embed/{videoId}).
  • Zero video proxying, zero restreaming, zero tampering, and zero playback latency.

8. Search Engine Optimization (SEO) & Analytics πŸ“ˆ

  • Google Analytics 4 (GA4): Built-in integration via next/script with strategy="afterInteractive" for zero page-load penalty.
  • Dynamic Sitemap & Robots: Native Next.js 14 sitemap.js and robots.js generating /sitemap.xml and /robots.txt for continuous search engine indexation.
  • Schema.org Structured Data: Integrated JSON-LD schemas (WebSite with Sitelinks SearchBox, WebApplication, Organization).
  • Dynamic OpenGraph Social Cards: Automatic 1200x630 social preview card generation via app/opengraph-image.jsx using next/og Edge runtime.
  • Targeted Gaming Keywords: Pre-configured metadata for Kick multistreaming, Yatra RP, GTA V RP, and Hindi streaming communities.

9. Privacy-First Architecture πŸ”’

  • Zero Personal Data Collection: No sign-ups, accounts, logins, or trackers.
  • Local Persistence: Layout preferences, active streams, and audio settings are safely stored on device via localStorage.

πŸ› οΈ Tech Stack

  • Framework: Next.js 14 (App Router, Server & Client Components)
  • UI Library: React 18
  • Styling: Tailwind CSS 3.4 with custom dark gaming theme
  • Icons: Lucide React
  • Analytics: Google Analytics 4 (GA4)
  • SEO: Schema.org JSON-LD, Dynamic sitemap.xml, robots.txt, next/og
  • Data Fetching: Native Fetch API with direct Kick live channel APIs and YouTube oEmbed endpoint
  • Class Utilities: clsx, tailwind-merge

πŸ“‚ Project Structure

StreamView/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ api/
β”‚   β”‚   β”œβ”€β”€ kick/
β”‚   β”‚   β”‚   β”œβ”€β”€ channel/route.js        # Official Kick channel profile proxy
β”‚   β”‚   β”‚   β”œβ”€β”€ related/route.js        # Contextual recommendation engine
β”‚   β”‚   β”‚   β”œβ”€β”€ search/route.js         # Unified stream & channel search
β”‚   β”‚   β”‚   └── streams/route.js        # Live streams directory
β”‚   β”‚   └── youtube/
β”‚   β”‚       └── resolve/route.js        # YouTube URL parser & oEmbed metadata endpoint
β”‚   β”œβ”€β”€ multi-view/
β”‚   β”‚   └── page.jsx                    # Multi View workspace page
β”‚   β”œβ”€β”€ privacy/
β”‚   β”‚   └── page.jsx                    # Privacy Policy page
β”‚   β”œβ”€β”€ terms/
β”‚   β”‚   └── page.jsx                    # Terms of Service page
β”‚   β”œβ”€β”€ globals.css                     # Custom scrollbars, glow utilities & palette
β”‚   β”œβ”€β”€ layout.jsx                      # Root layout with Navbar, Footer, GA4 & SEO
β”‚   β”œβ”€β”€ opengraph-image.jsx             # Dynamic 1200x630 social card generator
β”‚   β”œβ”€β”€ page.jsx                        # Landing page with Yatra RP dedication & guide
β”‚   β”œβ”€β”€ robots.js                       # Dynamic robots.txt route handler
β”‚   └── sitemap.js                      # Dynamic sitemap.xml route handler
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ common/
β”‚   β”‚   β”œβ”€β”€ bookmark-fab.jsx            # Sticky bottom-right floating bookmark button
β”‚   β”‚   β”œβ”€β”€ bookmark-modal.jsx          # Interactive bookmark guide & URL copier
β”‚   β”‚   β”œβ”€β”€ google-analytics.jsx        # Google Analytics 4 (GA4) script embed
β”‚   β”‚   └── structured-data.jsx         # Schema.org JSON-LD structured data
β”‚   β”œβ”€β”€ home/                           # Landing hero, preview arena, features, CTA
β”‚   β”œβ”€β”€ kick/                           # Sandboxed Kick iframe video player
β”‚   β”œβ”€β”€ youtube/                        # Official privacy-enhanced YouTube embed player
β”‚   β”œβ”€β”€ layout/                         # Responsive Navbar & Footer
β”‚   └── multiview/                      # Stage View, Equal Grid, Drawer, Workspace
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ discovery/                      # Hashtag regex & contextual rankers
β”‚   β”œβ”€β”€ kick/
β”‚   β”‚   β”œβ”€β”€ search.js                   # Live stream search with Yatra engine
β”‚   β”‚   β”œβ”€β”€ yatra.js                    # Self-learning Yatra Roleplay engine
β”‚   β”‚   └── streams.js                  # Kick API live stream fetchers
β”‚   β”œβ”€β”€ youtube/
β”‚   β”‚   └── resolve.js                  # YouTube URL & oEmbed resolution library
β”‚   β”œβ”€β”€ config.js                       # Application constants & layout options
β”‚   β”œβ”€β”€ use-fullscreen.js               # HTML5 Fullscreen API hook
β”‚   └── utils.js                        # Tailwind class utilities
β”œβ”€β”€ package.json                        # Version 1.4.0 dependencies & scripts
└── tailwind.config.js                  # Custom theme colors, animations & shadows

πŸš€ Getting Started

Prerequisites

  • Node.js: Version 18.17.0 or higher
  • npm: Version 9.0.0 or higher (or pnpm / yarn)

1. Clone the Repository

git clone https://github.com/AmitDeka/StreamView.git
cd StreamView

2. Install Dependencies

npm install

3. Configure Environment Variables (Optional)

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

# Google Analytics 4 Measurement ID (e.g. G-XXXXXXXXXX)
NEXT_PUBLIC_GA_ID=your_ga4_measurement_id_here

# Base canonical URL for SEO and social sharing cards
NEXT_PUBLIC_APP_URL=https://stream-view-beige.vercel.app

# Optional: Official Kick API credentials (for global livestreams indexing)
KICK_CLIENT_ID=your_client_id_here
KICK_CLIENT_SECRET=your_client_secret_here

Note: Even without API credentials, StreamView directly queries Kick's live channel APIs to fetch real streamer profiles and stream embeds on demand.

4. Run Development Server

npm run dev

Visit http://localhost:3000 in your browser.


πŸ“¦ Production Deployment

Build and Start

# Create an optimized production build
npm run build

# Start the production server
npm run start

Deploy on Vercel

  1. Push your repository to GitHub: https://github.com/AmitDeka/StreamView
  2. Import the repository into Vercel.
  3. Next.js App Router defaults will automatically detect build settings (npm run build).
  4. Deploy!

βš–οΈ Legal & Disclaimer

StreamView is an independent third-party application and is not affiliated with, endorsed by, or sponsored by Kick or YouTube.

  • All stream content, streamer logos, trademarks, and channel broadcasts are the property of their respective creators, Kick, and YouTube.
  • Video streams are embedded directly via Kick's official iframe player (player.kick.com) and YouTube's privacy-enhanced embed player (youtube-nocookie.com). StreamView does not host, re-transmit, or modify video content.

πŸ“„ License

This project is open-source and licensed under the MIT License.

Made with ❀️ for the gaming and roleplay community by Amit Deka.

About

Watch Multiple Kick Streams Together in an Adaptive Multi View Interface

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages