Karaoke Eternal 介绍与选型指南
自托管开源卡拉OK派对系统联网溯源与选型:v2.0.2/ISC/920 Stars 取证,Server-Player-点歌端三角色架构与媒体格式解析,及与 OpenKJ、UltraStar Deluxe、通用音乐服务器的量化对比。
Karaoke Eternal 介绍与选型指南
本文为 Karaoke Eternal 系列的开篇,全部信息来自官方站点、官方文档与公开徽章服务的联网取证,查询日期统一为 2026-10-28;文中不含任何本地实测环节,部署、配置与运维的实操细节分别见本系列后续篇章。
一、项目定位:它到底解决什么问题
家庭聚会、宿舍晚会、小型派对的经典痛点是:点歌靠喊、排队靠抢、切歌靠吼。Karaoke Eternal 给出的答案是"把点歌台装进每个人的手机浏览器"——它是一个自托管的开源卡拉OK派对系统:服务器端托管你的曲库并提供 Web 应用,参与者用手机浏览器搜索并加入实时点歌队列,与大屏相连的播放端(同样只是一个浏览器页面)自动依次播放,全流程无需安装任何 App。
官方对它的自我定义非常克制:"Host awesome karaoke parties where everyone can easily find and queue songs from their phone's browser"(举办精彩的卡拉OK派对,每个人都能用手机浏览器轻松找歌、排队点歌)。有三个官方强调的关键词值得展开:
- Fully self-hosted(完全自托管):服务器跑在你自己的设备上——Windows PC、Mac、Linux 桌面机、树莓派或 NAS 均可;
- No ads or telemetry(无广告、无遥测):不采集数据,不插入广告;
- Microphones are not required(无需麦克风):播放端只输出音乐,人声由演唱者直接贡献——它不是"消音伴唱机",而是"派对组织者"。
💡 技术拓展:Karaoke(卡拉OK)一词源自日语"空オーケストラ"(空的管弦乐队)。在软件语境里,"卡拉OK系统"通常分两类:一类是"演唱游戏"(如 UltraStar Deluxe,会对音高、节奏打分),另一类是"主持/点播系统"(hosting software,只管曲库、队列和播放)。Karaoke Eternal 属于后者——这一点是选型时最容易产生预期偏差的地方,第四章对比表中会再次强调。
来源:Karaoke Eternal 官网首页(https://www.karaoke-eternal.com/ ,查询日期 2026-10-28)。
二、版本、许可证与热度取证
选型第一课:先看"家底"。本章通过公开徽章服务(shields.io)与官方软件源对项目的基础事实做逐项取证,所有数值均标注查询日期,便于后续复核。
2.1 徽章取证
| 取证项 | 结果 | 取证通道 | 查询日期 |
|---|---|---|---|
| 最新版本 | v2.0.2 | npm 官方源(https://www.npmjs.com/package/karaoke-eternal ) | 2026-10-28 |
| 开源许可证 | ISC | npm 包 package.json 的 license 字段声明 | 2026-10-28 |
| GitHub Stars | 920 | shields.io 徽章(https://img.shields.io/github/stars/bhj/KaraokeEternal.json ) | 2026-10-28 |
| 代码仓库 | https://github.com/bhj/KaraokeEternal | npm 页 Repository 字段 | 2026-10-28 |
| 官方站点 | https://www.karaoke-eternal.com | npm 页 homepage 字段 | 2026-10-28 |
💡 技术拓展:ISC 许可证与 MIT 许可证高度相似,同属宽松(permissive)许可证家族——允许任意使用、修改、再分发(含商用),只要求保留版权声明与许可文本。对企业内网部署而言,ISC 意味着几乎没有合规负担。Karaoke Eternal 的版权归属为 RadRoot LLC(2019-2026),这也是其官方发布物(如 Docker Hub 上
radrootllc命名空间)的由来。
2.2 发行形态
Karaoke Eternal Server 通过两种官方形态发行,且两者都是多平台、多架构(要求 64 位):
- npm 包:
npm i -g karaoke-eternal,要求 Node.js v24 或更高版本,启动命令为karaoke-eternal-server; - Docker 形态:发布于 Docker Hub 的
radrootllc/karaoke-eternal命名空间,官方文档说明其"modeled after LinuxServer's images"(仿照 LinuxServer 镜像规范),同时支持amd64与arm64架构,自带PUID/PGID/TZ环境变量约定。
对 NAS 或专用服务器场景,官方明确表示 Docker 是首选("the preferred way to run Karaoke Eternal Server");具体的 Compose 编排实录见《Karaoke Eternal Docker Compose 部署实战》。
来源:Karaoke Eternal Server 官方文档(https://www.karaoke-eternal.com/docs/karaoke-eternal-server/ ,查询日期 2026-10-28);npm 官方源版本页(查询日期 2026-10-28);shields.io 徽章(查询日期 2026-10-28)。
三、架构与媒体源:三个角色一台戏
理解 Karaoke Eternal 的架构,关键是分清它定义的三个角色。官方 Getting Started 文档对角色的划分直接决定了你家里的设备怎么摆。
3.1 三角色架构
- Server(服务器):托管 Web 应用与媒体文件的核心进程。它"runs on pretty much anything"——树莓派、NAS、Windows/Mac/Linux 桌面均可,职责是提供网页服务、维护曲库数据库、协调实时队列;
- Player(播放端):连接大屏与音箱的系统,在浏览器里打开 Player 页面即可。由于 Player 完全基于浏览器,它不必与 Server 同机——你可以用一台旧笔记本接电视,服务器则藏在 NAS 里;
- 点歌端:就是每个客人的手机浏览器。扫码或输入服务器地址即可搜歌、点歌、看队列——无需注册邮箱,无需装 App。
三个角色之间的实时协作(点歌、队列变化、播放状态同步)通过长连接推送实现,这正是"任何一台手机点歌,所有屏幕上的队列立刻刷新"体验的技术基础。
💡 技术拓展:这套"服务端 + 浏览器多端"架构常被称为 B/S(Browser/Server)架构,与之相对的是需要安装客户端的 C/S 架构。B/S 架构对派对场景的价值在于"零安装成本"——客人扫一个码就能参与,这是 Karaoke Eternal 与桌面软件类卡拉OK方案(如 OpenKJ)在体验上的分水岭。
3.2 媒体源与曲库扫描
官方文档列出的支持格式非常聚焦:
- MP3+G(含 zip 压缩包;官方同时支持用
.m4a替代.mp3作为音频轨); - MP4 视频(编解码兼容性取决于播放端浏览器)。
曲库入库依赖媒体扫描器(media scanner),默认按 "Artist - Title"(歌手 - 标题) 的文件命名规则解析元数据;解析失败的文件不会出现在曲库中,需要到扫描日志里排查。对于命名不规范的历史曲库,官方提供了 _kes.v2.json 元数据解析器配置文件:既可调整分隔符与左右顺序(如"标题 - 歌手"),也可用 JSON-e 模板从音频内嵌标签(music-metadata 支持的字段)提取歌手与标题。
💡 技术拓展:MP3+G(MP3 plus Graphics)是卡拉OK行业的经典格式:一个
.mp3音频文件搭配一个同名.cdg文件(CD+Graphics,把歌词画面以低分辨率图形流存储)。zip 打包版(MP3+G zip)则把两个文件合并,方便库管理。这一"音画分离"的传统源自 VCD/CDG 光盘时代,也是为什么卡拉OK曲库常见"歌名.mp3 + 歌名.cdg"成对出现。
来源:Karaoke Eternal Server 官方文档"Media Files / Metadata Parser"章节(https://www.karaoke-eternal.com/docs/karaoke-eternal-server/ ,查询日期 2026-10-28);Getting Started(https://www.karaoke-eternal.com/docs/getting-started/ ,查询日期 2026-10-28)。
四、同类方案量化选型对比
本章引导语只有一句:先想清楚你要的是"游戏"还是"派对基础设施"。开源卡拉OK生态里最有迷惑性的就是这两类产品的边界——Nerd Techy 的评述一针见血:"games like ultrastar deluxe score your pitch and rhythm, while hosting tools like openkj and karaoke eternal manage queues and playback without scoring"(UltraStar Deluxe 这类游戏为音高和节奏打分,而 OpenKJ 与 Karaoke Eternal 这类主持工具只管队列和播放、不打分)。
下表从部署形态、点歌体验、队列机制、评分能力、媒体格式五个维度横向对比(Karaoke Eternal 列与 OpenKJ、UltraStar Deluxe 列均有公开来源,媒体服务器列为通用能力概述):
| 对比维度 | Karaoke Eternal v2.0.2 | OpenKJ | UltraStar Deluxe / Vocaluxe | 通用音乐服务器(Ampache / Navidrome / Jellyfin 等) |
|---|---|---|---|---|
| 产品定位 | 卡拉OK派对主持系统 | 跨平台卡拉OK主持软件 | 卡拉OK演唱游戏(类 SingStar) | 音乐/媒体库流媒体服务 |
| 部署形态 | 服务器进程(Docker/npm),全角色浏览器化 | 桌面应用(Linux/macOS/Windows),需 GUI 环境 | 桌面游戏程序,接大屏+手柄/麦克风 | 服务器(Docker/原生),配合各自 Web/App 客户端 |
| 客人点歌方式 | 手机浏览器直连服务器,扫码即用 | 桌面端操作为主,配套 Songbook 提供网页搜歌/提交 | 不支持多人远程点歌(本地游玩) | 支持 Web/App 点播,但无派对队列概念 |
| 实时队列与公平轮转 | 内置房间队列,支持多房间与轮转机制 | 有队列管理 | 无(按游戏选曲流程走) | 播放列表为主,无公平轮转 |
| 演唱打分(音高/节奏) | ❌ 无(其"星标"是曲库收藏,非评分) | ✅ 可选音高评分 | ✅ 核心功能即评分 | ❌ 无 |
| 卡拉OK媒体格式 | MP3+G(含 zip、.m4a 音轨)、MP4 | MP3+G、ZIP 等 | UltraStar TXT 歌词格式为主 | 通用音频格式(MP3/FLAC 等),基本不管 CDG |
| 许可证 | ISC | GPL-3.0 | 开源(以各仓库声明为准) | 各异(多为 GPL/AGPL 系) |
| 64 位要求 | 是(多架构:amd64/arm64) | 按发行版 | 按发行版 | 多数支持多架构 |
对表格的三点解说:
- "无打分"是设计取舍而非缺陷。Karaoke Eternal 把全部精力放在"队列公平性 + 全员零门槛参与"上;如果聚会的核心乐趣是"比谁唱得准",UltraStar Deluxe / Vocaluxe 这类演唱游戏才是对口工具。
- OpenKJ 是功能最接近的同类,但它是桌面应用,需要一个带 GUI 的常驻机器;Karaoke Eternal 的服务器可以完全无头(headless)运行在 NAS/树莓派上,播放端和点歌端都是浏览器页面——对"服务器藏在角落、电视上只开一个浏览器"的家庭场景更友好。
- 通用音乐服务器(如本站已评测的 《Ampache 介绍与选型指南》 、《Navidrome 0.64.2 介绍与选型指南》 、《Jellyfin 12.4 介绍与选型指南》 )能放音乐、能管媒体库,但都缺少"多人在手机上实时排队抢麦"的派对机制;反过来,Karaoke Eternal 也不是日常听歌的方案。两者是互补关系而非替代关系。
来源:Nerd Techy《8 Best Open Source Karaoke Software in 2026》(https://nerdtechy.com/best-open-source-karaoke-software ,查询日期 2026-10-28);OpenKJ Project 官网(http://openkj.org/downloads ,查询日期 2026-10-28);UltraStar Deluxe 官网 About 页(https://usdx.eu/about/ ,查询日期 2026-10-28);GitHub Topics: karaoke(查询日期 2026-10-28)。
五、适用场景与限制
任何选型都要回答"什么时候不该用它"。综合官方文档与生态定位,Karaoke Eternal 的边界如下。
5.1 高适用场景
- 家庭影院 + NAS 组合:曲库放 NAS,Server 以 Docker 形态常驻,电视上的浏览器就是 Player,全家人手机点歌——这是官方文档设想的典型形态;
- 多房间/多场景场所:支持多房间(Room)模型,每个房间有独立队列,小到家庭两层楼、大到小酒吧包间都适用;
- 旧设备复用:Player 与点歌端都是浏览器页面,一台退役笔记本、一个树莓派接电视即可充当播放端;
- 隐私敏感环境:无广告、无遥测,数据全部留在本地。
5.2 明确的限制
- 无演唱评分:想要音高打分、计分排行榜的,请直接选演唱游戏类产品;
- 纯音频文件不被视为完整曲目:官方支持列表是 MP3+G(音频+歌词画面)与 MP4 视频;一个孤零零的
.mp3(无.cdg歌词画面、无视频轨)不构成卡拉OK曲目,扫描后不会出现在曲库中; - 文件命名有约定:默认要求"Artist - Title"格式,命名混乱的历史曲库需要借助
_kes.v2.json解析器治理,否则"扫不进库"; - 仅支持 64 位系统;
- MP4 编解码受播放端浏览器制约:同一文件在不同浏览器的播放兼容性可能有差异,官方文档明确提示了这一点;
- 人声不打分、不修音:系统只输出伴奏音乐,"无需麦克风"的另一面是没有任何音频处理能力。
六、选型建议
- 要"人人能点、公平排队"的派对系统:Karaoke Eternal 是当前开源生态里体验最完整的方案之一——浏览器化程度最高、部署最轻(一个服务进程 + 一个曲库目录)、许可证宽松(ISC);
- 要"唱得准不准"的竞技玩法:选 UltraStar Deluxe 或 Vocaluxe;
- 已有带 GUI 的工作站、想要传统 KJ(主持人)工作台:可以评估 OpenKJ;
- 只是想在家听歌:通用音乐服务器更合适(参见本站 Ampache / Navidrome / Jellyfin 系列);
- 决定部署后的第一步:跟随《Karaoke Eternal Docker Compose 部署实战》完成从零到点歌成功的全流程;需要逐项调优服务参数时,配合《Karaoke Eternal 配置参数详解》;日常曲库维护、备份恢复与升级操作,见《Karaoke Eternal 常用命令与运维实战(核心篇)》。
参考来源汇总
- Karaoke Eternal 官网:https://www.karaoke-eternal.com/ (查询日期 2026-10-28)
- Karaoke Eternal Server 官方文档:https://www.karaoke-eternal.com/docs/karaoke-eternal-server/ (查询日期 2026-10-28)
- Getting Started:https://www.karaoke-eternal.com/docs/getting-started/ (查询日期 2026-10-28)
- npm 官方源:https://www.npmjs.com/package/karaoke-eternal (查询日期 2026-10-28)
- GitHub 仓库:https://github.com/bhj/KaraokeEternal (查询日期 2026-10-28)
- shields.io Stars 徽章:https://img.shields.io/github/stars/bhj/KaraokeEternal.json (查询日期 2026-10-28)
- Nerd Techy 开源卡拉OK软件评测:https://nerdtechy.com/best-open-source-karaoke-software (查询日期 2026-10-28)
- OpenKJ Project:http://openkj.org/downloads (查询日期 2026-10-28)
- UltraStar Deluxe 官网:https://usdx.eu/about/ (查询日期 2026-10-28)