Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add blog post for Release 10.9.0 #949

Merged
merged 20 commits into from
May 11, 2024
Merged
Changes from 2 commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
124 changes: 124 additions & 0 deletions blog/2024/04-28-jellyfin-release-10.9.0/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
---
title: Jellyfin 10.9.0
description: We are pleased to announce the latest stable release of Jellyfin, version 10.9.0!
authors: joshuaboniface
date: 2024-04-28
joshuaboniface marked this conversation as resolved.
Show resolved Hide resolved
slug: jellyfin-release-10.9.0
joshuaboniface marked this conversation as resolved.
Show resolved Hide resolved
tags: [release]
---

We are pleased to announce the latest stable release of Jellyfin, version 10.9.0!

This major release brings many new features, improvements, and bugfixes to improve your Jellyfin experience.

You may upgrade your Jellyfin instances at any time now, however please read on for a complete detailing of what's new and changed, including some very important release notes. For those who were running Unstable builds for testing, we thank you immensely, and you may now switch back to the Stable repository and forcibly reinstall/repull the latest version.

Happy watching!

\- Joshua

{/* truncate */}

## Key Release Notes/Breaking Changes

There are several key changes with 10.9.0 that administrative users should be aware of, before getting into the more specific changes.

* As always, **ensure you back up your Jellyfin data and configuration directories before upgrading**. With a major release, it's possible you will hit a bug and want to revert, and to do so, you will need to restore from a backup.

* Ubuntu users: We have dropped support for non-LTS Ubuntu releases with 10.9.0. That is, we have not built 10.9.0 packages for any releases except 20.04 LTS, 22.04 LTS, and 24.04 LTS, and we will not publish builds for any new non-LTS releases going forward. For an explanation of why, please see [our previous blog post](https://jellyfin.org/posts/new-ci-new-repo). If you use another release, please upgrade to 24.04 LTS or switch to Docker packages.

* Fedora/CentOS/RHEL/etc. users: We have dropped our official RPM packages and suggest moving to [the 3rd-party RPMFusion repository](https://admin.rpmfusion.org/pkgdb/package/free/jellyfin/). Support for RHEL-like distributions has been a major pain point for us for a very long time, and we feel that letting the community over at RPMFusion handle this is in our best interest going forward, similar to how Arch, Gentoo, etc. packages are handled. For more details, please see [our previous blog post](https://jellyfin.org/posts/new-ci-new-repo).

* Docker users: We now offer GHCR as an alternative container registry in addition to DockerHub. You can pull images from the new registry via URIs like `ghcr.io/jellyfin/jellyfin:latest`. Don't worry, we have no plans to drop DockerHub as a container registry, but we feel providing both gives users more choice and flexibility.
joshuaboniface marked this conversation as resolved.
Show resolved Hide resolved
joshuaboniface marked this conversation as resolved.
Show resolved Hide resolved

## The Big Changes

This release has been nearly (over?) two years in the making, so we're really glad to finally get it out to you. The long cycle does mean quite an extensive changelog however, with well over 1100 pull requests merged into our `master` branch since 10.8.0 first dropped back in 2022. This section will detail all the big changes, broken up by general function and area of the system. In addition to these big items, there are hundreds of smaller bugfixes, quality-of-life tweaks, and other minor changes that we won't touch on here, but if you want to see the full list, you can do so over on the GitHub releases for [the core server](https://github.com/jellyfin-sandbox/jellyfin/releases/tag/v10.9.0) and [the Web UI](https://github.com/jellyfin-sandbox/jellyfin-web/releases/tag/v10.9.0).
Shadowghost marked this conversation as resolved.
Show resolved Hide resolved

### General

* We now support "trickplay" a.k.a. live video scrubbing. When scrubbing through a video with this enabled, you will be able to see a live preview of the video at that timestamp.
joshuaboniface marked this conversation as resolved.
Show resolved Hide resolved

* Web redirections are now handled more reliably, reducing the likelihood of hitting dead or invalid pages in the UI. Please ensure you force-refresh or clear any browser cache for your Jellyfin instance to see the full benefits.

* DLNA support is now provided by a plugin and has been removed from the core server. This has several major benefits: first, it can be updated independently of the server to some degree; second, it will not be enabled for anyone unless they want it and explicitly install the plugin; and third, it reduces the potential of security holes around DLNA due to both previous benefits.

* We now support AVIF and WEBP images for Pictures libraries.

* Tags are now accounted for during searches, allowing one to search by tag.

* We now support multiple simultaneous subtitle tracks (maximum of two, a primary and secondary) in the web player.

### API & Security

* All API endpoints now return proper return codes, ensuring that API endpoint results can be reliably interpreted without additional parsing.

* Our API versioning scheme is now based off of the "last unstable build before a release" and uses a date-based version going forward, to help make it a bit clearer and assist in automating the circular dependencies in our API specifications.

* Parental ratings are significantly improved, with better enforcement, inheritable ratings, and more.

* LiveTV and Collection permissions are now discrete and configurable per-user.

* All playback endpoints now enforce authentication, preventing anonymous users from streaming by potentially guessing item IDs (highly unlikely, but not impossible).
joshuaboniface marked this conversation as resolved.
Show resolved Hide resolved

* The EasyPassword feature has been removed as this was a big security risk especially for administrator accounts; PIN login is still supported.
joshuaboniface marked this conversation as resolved.
Show resolved Hide resolved

* User permission handling has been unified and numerous bugs fixed, ensuring a more secure server from untrusted users.

### Core Server & Networking

* The underlying .NET framework has been upgraded to version 8, the latest major and LTS release. This brings us many under-the-hood improvements and changes to help with our ongoing effort to streamline the codebase and improve overall performance.

* Our minimum FFmpeg version has been bumped from 4.0 to 4.4 to take advantage of many new features. For users of our Jellyfin FFmpeg build (Docker, `.deb`/Debuntu repo, and Windows installs), you're already on an even newer version now with FFmpeg 6.0.1, but this minimum change would affect any other platforms.
joshuaboniface marked this conversation as resolved.
Show resolved Hide resolved

* The server now supports in-process restarting, and removes the old hacky `restart.sh` method. This should make things like installing plugins much more robust.

* Uploaded images are now subject to much more verification, helping plug several security holes in this feature.

* The backend SQLite database now supports connection pooling, which should improve performance for database operations.

* Support for the HappyEyeballs engine improving dual-stack IPv4/IPV6 network support.

* Improved handling of IP binding to fully respect these settings (including DLNA and SSDP).

### Packaging

* The `jellyfin` service user is now automatically added to the `render` and `video` groups on Debian/Ubuntu systems for new installs, helping improve the onboarding for hardware acceleration.

* Packaging is now unified with a new CI system, as outlined in [our previous blog post](https://jellyfin.org/posts/new-ci-new-repo). As a normal user you should see no change here, but this helps massively improve the build process, and if you are building your own packages please reference [the new packaging repository](https://github.com/jellyfin/jellyfin-packaging) for the updated process.

### Transcoding & FFmpeg

* Several audio improvements: support for Opus, FLAC, and ALAC codecs in the HLS engine; improved support and handling for transcoding DTS and TrueHD audio streams; new codec enforcement; better bitrate calculations; new audio normalization features; and stereo downmixing algorithm selection.

* FFmpeg segments are now automatically deleted during transcoding, reducing the space of the transcoding temporary directory.

* Support for direct playback of DVD and BluRay data folders, preferred over ISOs.
Shadowghost marked this conversation as resolved.
Show resolved Hide resolved

* Support for AV1 hardware and software encoding.

* Support for RK3588 hardware acceleration via MPP.

* Support for Vulkan-based tonemapping with AMD VA-API.

* Support for hardware acceleration on Apple systems (both Apple Silicon and Intel).
joshuaboniface marked this conversation as resolved.
Show resolved Hide resolved

* Support for Dolby Vision playback remuxing.

### Scanning, Library & Playlist Management

* Support for lyric scanning and management.
joshuaboniface marked this conversation as resolved.
Show resolved Hide resolved

* Season names are now parsed from NFO files.

* The MusicBrainz interface has been improved to better handle music libraries.

* Support for hearing-impaired subtitles (sdh/hi./cc).

* Support for playlist ACLs with playlist sharing between users and enforcement of playlist ownership.
Shadowghost marked this conversation as resolved.
Show resolved Hide resolved

* Invalid items will be automatically removed from playlists.

### Clients

* Major fixes for Chromecast, including better support for a self-hosted cast receiver, better local network detection, and connectivity improvements. **We need Chromecast client developers badly - if you are interested please reach out.**