Karaoke Eternal logo

Karaoke Eternal

Self-hosted karaoke party system with browser-based song queueing and playback

Alternative to: karafun, singa


About Versions (7)

v2.0.0

2025-12-26

Sponsored by: candre23, nellisdev, astrobyte, jfeldhamer, cubandaddy, Backroads4Me and other private sponsors. Thank you! If you have fun with it, please consider sponsoring.

Guest accounts and QR codes

Joining the party is now faster and easier. The player supports QR codes that link directly to a room, where singers can now (finally!) join as guests. Admins can also choose whether a room allows guests and/or new standard users, or only existing users.

Videos + visualizer

Visualizations are now supported with video files. By automatically detecting a video’s background color and making it transparent, visualizer effects can be displayed behind the lyrics. This works best on videos with solid color backgrounds, and can be enabled by selecting “Allow video background keying” in the media folder’s preferences.

Improved queue management

Enhancements to the queue include:

  • The queue can be restarted from any previously played song, or the beginning of the current song
  • All upcoming songs for a user can be removed at once by long-pressing the Remove or Skip buttons
  • When a standard user or guest signs out, their upcoming songs are now automatically removed from the queue

Metadata parser changes

Previously, the metadata parser (which uses filenames or tags to determine artist names and song titles) could be customized via _kes.v1.js files which were essentially arbitrary JavaScript. They were run in a sandbox to limit their functionality, but that sandbox was deprecated, and the overall approach was complex.

In v2, the parser instead uses _kes.v2.json files. These JSON files allow the same basic configuration, in addition to simple string replacement and “templating” of artist names and song titles. See the docs for more information. As always, the best approach is to properly name/tag media, but customizing the parser can help in specific cases.

Other features and fixes

  • (Server) Zipped MP3+G media is now supported
  • (Server) Media folders can now be watched for changes, as well as manually scanned individually
  • (Server) Fixed an error when listing drives on Windows due to removal of wmic (thanks Microsoft! /s)
  • (Server) Usernames/emails are no longer case sensitive (thanks gazugafan)
  • (Library) Songs that have already been played in the current session appear greyed
  • (Library) Tapping a song that is already upcoming no longer queues it again
  • (Player) Fixed incorrect calculation of ReplayGain values (thanks laberning)
  • (General) Prevent auto-translation of some UI elements (thanks laberning)

This release includes contributions from gazugafan, gausie, EffakT and laberning, as well as testing by mjmeans. Thanks!