Skip to content

bhj/KaraokeEternal

Repository files navigation

Karaoke Eternal

Host awesome karaoke parties where everyone can easily find and queue songs from their phone's browser. The player is also fully browser-based with support for MP3+G, MP4 videos and WebGL visualizations. The server is self-hosted and runs on nearly everything.

Karaoke Eternal

App in mobile browser (top) controlling player in Firefox/Chrome (bottom)

Features

  • Supports:
    • MP3+G with Winamp/MilkDrop visualizations (WebGL 2)
    • MP4 videos
    • ReplayGain tags for volume normalization
  • Fast, modern mobile browser app designed for "karaoke conditions"
  • Multiple simultaneous rooms/queues (optionally password-protected)
  • Dynamic queues keep parties fair, fun and no-fuss
  • Fully self-hosted
  • No ads or telemetry

Microphones are not required since the player itself only outputs music - this allows your audio setup to be as simple or complex as you like. See the F.A.Q. for more information.

Getting Started

Karaoke Eternal basically has 3 parts. See Getting Started to get up and running step-by-step, or jump to the documentation for each part below:

  • Server: Runs on pretty much anything to serve the web app and your media files, including a Windows PC, Mac, or a dedicated server like a Raspberry Pi or Synology NAS.
  • App: Fast, modern mobile web app designed for "karaoke conditions".
  • Player: Just another part of the app, but meant to run fullscreen on the system handling audio/video for a room

Installation

There are several installation methods available for Karaoke Eternal Server.

Discord & Support

Join the Karaoke Eternal Discord Server for general support and development chat, or just to say hi!

Contributing & Development

Contributions are welcome! Please join the #dev channel of the Discord Server before embarking on major features; the project's scope is limited to ensure success.

Make sure you have Node.js 16 or later, then:

  1. Fork and clone the repo
  2. npm i
  3. npm run dev and look for "Web server running at" for the server URL