Karaoke Eternal
Self-hosted karaoke party system with browser-based song queueing and playback
Alternative to: karafun, singa
v2.0.0
2025-12-26Sponsored 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!