Jellyfin 12.0
Jellyfin 12.0
We are pleased to bring you Jellyfin 12.0, our new stable release. This release continues in the same direction as 10.11: finishing what the database conversion started, turning that new foundation into real performance work, and finally giving books and comics the support they have deserved for years. If you just want a quick summary of what you need to know to get your system upgraded and running, please read on to the “TL; DR” section just below, or keep reading for a full explanation of all the major features and improvements in Jellyfin 12.0! You can also view full changelogs on the server and web GitHub releases. - Cody
我们很高兴为您带来 Jellyfin 12.0,这是我们的最新稳定版本。此版本延续了 10.11 的发展方向:完成数据库转换工作,将新的基础架构转化为实际的性能提升,并最终为书籍和漫画提供它们应得的多年支持。如果您只想快速了解升级和运行系统所需的信息,请阅读下方的“TL; DR”部分;或者继续阅读以获取有关 Jellyfin 12.0 所有主要功能和改进的完整说明!您也可以在 GitHub 的服务器和 Web 发布页面查看完整的更新日志。—— Cody
TL; DR info
TL; DR 信息
IT IS VERY IMPORTANT THAT YOU READ THIS SECTION BEFORE UPGRADING TO JELLYFIN 12.0! Failure to do so may cause issues! Always feel free to ask for help in our chat if you are unclear or run into trouble.
在升级到 Jellyfin 12.0 之前,阅读本节内容至关重要!否则可能会导致问题!如果您有任何不清楚的地方或遇到困难,请随时在我们的聊天频道寻求帮助。
This release changes the database schema and actively rewrites data on first boot, so a backup is the only way back to your previous version. As always for major upgrades, ensure you STOP Jellyfin and take a FULL MANUAL BACKUP OF YOUR DATA AND CONFIG DIRECTORIES before upgrading!
此版本更改了数据库架构,并在首次启动时主动重写数据,因此备份是恢复到之前版本的唯一途径。与往常的大版本升级一样,请确保在升级前停止 Jellyfin 服务,并对您的数据和配置目录进行完整的手动备份!
You must be running Jellyfin 10.10.7 or any 10.11.x release before upgrading to 12.0. Upgrading directly from 10.11.x is fully supported and no intermediate step is needed. If you are on anything older than 10.10.7, upgrade to 10.10.7 first, then upgrade to 12.0.
在升级到 12.0 之前,您必须运行 Jellyfin 10.10.7 或任何 10.11.x 版本。完全支持直接从 10.11.x 升级,无需中间步骤。如果您使用的版本低于 10.10.7,请先升级到 10.10.7,然后再升级到 12.0。
Check your usernames before upgrading. Usernames are now case insensitive, so two accounts can’t have names that only differ by capitalization. If you have users that match this pattern the database migration will fail.
升级前请检查您的用户名。用户名现在不区分大小写,因此两个账户不能拥有仅大小写不同的名称。如果您有符合此模式的用户,数据库迁移将会失败。
A full library scan is REQUIRED after upgrading. As part of fixing how alternate versions are stored, versions that Jellyfin grouped automatically, not ones you merged yourself, are cleared during the upgrade. Until you run the scan those versions will look like they are missing. The first scan after upgrading will take significantly longer than normal, and some movies may appear as newly added. This is expected. Jellyfin now checks every item in your library against the files on disk to clear out leftovers from previous versions, and anything that was previously filed incorrectly gets corrected as it goes. Do not stop the server while migrations are running.
升级后必须进行完整的媒体库扫描。作为修复替代版本存储方式的一部分,Jellyfin 自动分组的版本(而非您手动合并的版本)将在升级过程中被清除。在您运行扫描之前,这些版本看起来会像是丢失了。升级后的首次扫描将比平时花费更长的时间,并且一些电影可能会显示为“新添加”。这是预期之中的。Jellyfin 现在会根据磁盘上的文件检查库中的每一项,以清除之前版本的残留,并在此过程中纠正之前归档错误的内容。迁移运行时请勿停止服务器。
Once installed, please ensure you hard refresh (e.g. Ctrl+Shift+R or similar) and/or clear your web cache for your Jellyfin instance if you notice any UX anomalies. Bad cached assets are the #1 cause of such issues.
安装完成后,如果您发现任何用户体验异常,请确保进行强制刷新(例如 Ctrl+Shift+R 或类似操作)和/或清除 Jellyfin 实例的网页缓存。错误的缓存资源是此类问题的首要原因。
Remove any third-party plugins before upgrading. Plugins built for 10.11 will not load on 12.0 and need updated builds from their authors, so give them time to catch up before adding them back. Official plugins have been updated for 12.0 support.
升级前请移除所有第三方插件。为 10.11 构建的插件无法在 12.0 上加载,需要作者提供更新版本,因此请给他们一些时间进行适配,然后再重新添加。官方插件已更新以支持 12.0。
Very old third-party clients will stop working. Support for the legacy /emby/ and /mediabrowser/ addresses has been removed, and the deprecated way of signing in is now disabled, including on existing servers. Clients that have not seen an update in years are the ones at risk here. This release contains security fixes, so we recommend upgrading rather than staying on an older release once you are ready.
非常老旧的第三方客户端将停止工作。对旧版 /emby/ 和 /mediabrowser/ 地址的支持已被移除,且已弃用的登录方式现已被禁用(包括在现有服务器上)。多年未更新的客户端将面临风险。此版本包含安全修复,因此一旦准备就绪,我们建议您升级,而不是停留在旧版本。
As always with major Jellyfin releases, bugs will exist. Please prefix bug reports with “[12.0]” so we can triage them quickly, and see point 1 one more time: take a backup. And now on to the cool new features!
与往常的 Jellyfin 大版本发布一样,Bug 在所难免。请在提交 Bug 报告时加上“[12.0]”前缀,以便我们快速分类处理。再次提醒第一点:请务必备份。现在,让我们来看看那些酷炫的新功能!
Why 12.0?
为什么是 12.0?
The most visible change in this release is the one in its name: we are dropping the major version “10” from our naming scheme. What would have been 10.12.0 is simply 12.0, and the server reports its version as 12.0.0. 10.11.x was the last release branch to use the old scheme.
此版本最明显的变化在于名称:我们从命名方案中去掉了主版本号“10”。原本应该是 10.12.0 的版本现在简称为 12.0,服务器报告的版本号为 12.0.0。10.11.x 是最后一个使用旧命名方案的发布分支。
The reason is the feedback we got after 10.11.0, which we first raised in January and confirmed in May. A release like 10.11.0 was, by any reasonable measure, a major release - it rewrote the library database - but the version number presented it as a minor update, and people upgraded with expectations to match. The leading 10. never changed and never told anyone anything, so all it did was push the number that actually mattered into the middle position and make “major” releases look minor. Dropping it means the first number moves when the release is big. If you maintain anything that parses Jellyfin version strings - a client, a monitoring check, a deployment script, a container tag pin - this is the item to look at before upgrading.
原因在于我们在 10.11.0 发布后收到的反馈,我们于 1 月首次提出并在 5 月确认了这一点。像 10.11.0 这样的版本,无论从什么合理标准来看都是一个大版本——它重写了媒体库数据库——但版本号却将其呈现为一个小更新,导致用户在升级时产生了错误的预期。开头的“10.”从未改变,也从未传达任何信息,它所做的只是将真正重要的数字推到了中间位置,使“大”版本看起来像小更新。去掉它意味着当发布重大版本时,第一个数字会发生变化。如果您维护任何解析 Jellyfin 版本字符串的内容(如客户端、监控检查、部署脚本、容器标签固定),请在升级前务必检查这一点。
Tuning the new database
优化新数据库
Jellyfin 10.11.0 finished rebuilding how the library database works, which opened the door for the performance work in this release. We aren’t finished, but you should notice a big difference when browsing. One of the largest changes is how playlists and collections are stored. Before, everything in a playlist was kept as one big list inside the playlist itself, and the database couldn’t look into that list. Anything we needed to know meant loading the whole playlist and unpacking it first. Getting the item count, working out how much you’ve watched, or showing a single page all cost the same as loading the entire thing. Editing was the same story, because adding or removing one item meant writing the whole list back out.
Jellyfin 10.11.0 完成了对媒体库数据库工作方式的重构,这为本版本的性能优化打开了大门。虽然我们尚未完成所有工作,但您在浏览时应该会注意到巨大的差异。最大的变化之一是播放列表和收藏集的存储方式。以前,播放列表中的所有内容都作为列表本身内部的一个大列表保存,数据库无法查看该列表。我们需要了解任何信息都意味着必须先加载整个播放列表并将其解包。获取项目数量、计算观看进度或显示单个页面,其成本与加载整个列表相同。编辑也是如此,因为添加或删除一个项目意味着要重写整个列表。
Every item in a playlist is now its own row. The database can count rows, return one page, and add or remove a single item without touching the rest, so this should be a big improvement on large playlists. Collections and boxsets were stored the same way and get the same fix. Alongside that: Deleting a large number of items at once no longer fails partway through. Continue Watching, Next Up, rewatching, Latest Media for music, artist lookups, and the watched counts on folders should be faster. Heavy database maintenance no longer runs during a library scan, so the two stop competing for the same resources. Most of this shows up as pages that used to freeze no longer freezing. One thing to note is that this work went into how Jellyfin reads your library, not into the library scanner. You may find the scanner is a little quicker as a side…
现在,播放列表中的每一项都有其独立的行。数据库可以统计行数、返回单个页面,并在不触及其他内容的情况下添加或删除单个项目,这对大型播放列表来说应该是一个巨大的改进。收藏集和套装也以同样的方式存储,并获得了同样的修复。此外:一次性删除大量项目不再会中途失败。“继续观看”、“接下来观看”、“重看”、音乐的“最新媒体”、艺术家查找以及文件夹的观看计数应该会更快。繁重的数据库维护工作不再会在媒体库扫描期间运行,因此两者不再争夺相同的资源。大部分改进表现为过去容易卡死的页面现在不再卡死。需要注意的一点是,这项工作主要针对 Jellyfin 读取媒体库的方式,而非媒体库扫描器。您可能会发现扫描器也稍微快了一些……