开源媒体服务器项目Jellyfin在2026年9月7日发布12.0稳定版,核心团队成员Cody Robibero撰写了长达十八分钟阅读量的发布说明。这一版最显眼的变化写在版本号上:原本应叫10.12.0的版本直接命名为12.0,服务端自报版本为12.0.0,10.11.x成为旧命名方案的最后一个发布分支。项目方解释,10.11.0按任何合理标准都是一次大版本更新,它重写了媒体库数据库,但版本号却把它呈现为小幅升级,导致用户以错误的预期完成了升级。开头那个从不变化的10不传递任何信息,只是把真正有意义的数字挤到了中间位。
播放列表从整块数据变成独立行
10.11.0完成的数据库重建为这一版的性能优化打开了空间,其中改动最大的是播放列表与合集的存储方式。此前一个播放列表的全部内容被当作一整个大列表塞在播放列表自身之中,数据库无法看进这个列表内部,任何查询都必须先把整份播放列表加载出来再解包。取一个条目数、算一下观看进度、或者只显示其中一页,代价都和加载整份列表相同;编辑同样如此,增删一个条目意味着把整个列表重新写回。12.0把播放列表中的每个条目改为独立的一行,数据库可以直接计数、返回单页、增删单条而不触碰其余内容,合集与boxset采用同样的修复方案。
图书与漫画终于获得一等公民待遇
图书类媒体长期在Jellyfin中让位于视频播放,这一版是改变的起点。Bookshelf插件原先承担的大部分工作被移入服务端:图书元数据可直接从OPF、ComicInfo文件或ComicBookInfo注释中读取,无需插件;EPUB与所有受支持的漫画压缩包格式都会自动生成封面海报,有声书文件支持外部封面;文件名中的名称、序号、年份与系列信息会被解析,漫画文件名中的卷号与章节号也会被识别;漫画压缩包与PDF的页数可被提取,有声书的章节可被抽出。Web端新增了带视图类型与分页的现代图书库布局,以及作者、合集、文件夹三个标签页,阅读界面在所有图书类型间实现了统一的全屏行为与PDF滑动翻页,iOS设备上的有声书后台播放也已可用。Bookshelf插件随之被标记为弃用,其余能力拆分为ComicVine与GoogleBooks两个独立提供方,并新增OpenLibrary插件。
升级前的硬性前提
发布说明用加粗的警示框强调,这一版更改数据库结构并在首次启动时主动重写数据,完整备份是回退到旧版本的唯一途径。用户必须先运行在10.10.7或任意10.11.x版本上才能升级到12.0,早于10.10.7的版本需先升到10.10.7。用户名现已改为大小写不敏感,若服务器上存在仅大小写不同的重名账号,数据库迁移会直接失败。升级后必须执行一次完整媒体库扫描,首次扫描耗时明显长于平常,部分影片可能显示为新增。第三方插件需在升级前移除,为10.11构建的插件无法在12.0上加载。旧版的/emby/与/mediabrowser/地址支持已被移除,多年未更新的老客户端将停止工作。
此外,服务端新增了--mode MigrateSystem参数,允许管理员单独执行迁移后退出,而不必让它在正常启动时发生。推荐来源现在可按媒体库分别配置,ListenBrainz随服务端一同分发,音乐库指向它之后相似艺人推荐将来自真实收听数据而非仅靠标签。搜索也变得可扩展,插件能把自己的结果与Jellyfin原生结果并列呈现。曾以实验性身份登场的布局正式定名为现代布局,并在桌面与移动端成为未主动更改设置用户的默认选项,旧布局改称Legacy,电视设备继续沿用TV布局。这一版还包含服务端与Web端的多项安全修复,涉及构造请求越权访问目录之外文件、未登录重跑安装向导、不安全插件包名以及Web端跨站脚本等问题,项目方因此建议尽快升级而非停留在旧版。