Jellyfin: Difference between revisions
Manual compliance |
jellyfin-media-player was renamed to jellyfin-desktop and updated so it's no longer marked as insecure |
||
| (8 intermediate revisions by 4 users not shown) | |||
| Line 19: | Line 19: | ||
<strong>[https://jellyfin.org/ Jellyfin]</strong><ref name="jellyfin">Jellyfin Project, "Jellyfin: The Free Software Media System", Official Website, Accessed October 2025. https://jellyfin.org/</ref> is a free and open-source media server that enables users to manage and stream their personal media libraries across various devices. It consists of the Jellyfin Server and multiple client applications including Jellyfin Media Player and a web interface. | <strong>[https://jellyfin.org/ Jellyfin]</strong><ref name="jellyfin">Jellyfin Project, "Jellyfin: The Free Software Media System", Official Website, Accessed October 2025. https://jellyfin.org/</ref> is a free and open-source media server that enables users to manage and stream their personal media libraries across various devices. It consists of the Jellyfin Server and multiple client applications including Jellyfin Media Player and a web interface. | ||
== Installation == <!--T:2--> | == Client Installation == | ||
Jellyfin is available both via the web interface, and through a desktop application. | |||
If you would like to install the desktop application, use the following: | |||
{{code|lang=nix|line=no|1={ | |||
environment.systemPackages = [ | |||
pkgs.jellyfin-desktop | |||
]; | |||
} | |||
}} | |||
Alternatively, you can use the Jellyfin web client by using your preferred web browser to visit the server directly. See below on how to install the Jellyfin server. | |||
== Server Installation == <!--T:2--> | |||
<!--T:3--> | <!--T:3--> | ||
| Line 34: | Line 49: | ||
} | } | ||
}} | }} | ||
<translate> | <translate> | ||
<!--T:4--> | <!--T:4--> | ||
| Line 46: | Line 62: | ||
} | } | ||
}} | }} | ||
<translate> | <translate> | ||
<!--T:5--> | <!--T:5--> | ||
After configuring Jellyfin, rebuild your system for the changes to take effect: | After configuring Jellyfin, rebuild your system for the changes to take effect: | ||
</translate> | </translate> | ||
{{code|lang=bash|line=no|$ sudo nixos-rebuild switch}} | {{code|lang=bash|line=no|$ sudo nixos-rebuild switch}} | ||
<translate> | <translate> | ||
<!--T:6--> | <!--T:6--> | ||
After the rebuild completes, verify that Jellyfin is running: | After the rebuild completes, verify that Jellyfin is running: | ||
</translate> | </translate> | ||
{{code|lang=bash|line=no|$ sudo systemctl status jellyfin}} | {{code|lang=bash|line=no|$ sudo systemctl status jellyfin}} | ||
<translate> | <translate> | ||
<!--T:7--> | <!--T:7--> | ||
If Jellyfin is not running, you can start it manually: | If Jellyfin is not running, you can start it manually: | ||
</translate> | </translate> | ||
{{code|lang=bash|line=no|$ jellyfin}} | {{code|lang=bash|line=no|$ jellyfin}} | ||
<translate> | <translate> | ||
<!--T:8--> | <!--T:8--> | ||
| Line 89: | Line 112: | ||
} | } | ||
}} | }} | ||
<translate> | <translate> | ||
<!--T:14--> | <!--T:14--> | ||
| Line 96: | Line 120: | ||
{{code|lang=bash|line=no|$ sudo chown -R yourusername:yourusername /var/lib/jellyfin | {{code|lang=bash|line=no|$ sudo chown -R yourusername:yourusername /var/lib/jellyfin | ||
$ sudo chown -R yourusername:yourusername /var/cache/jellyfin}} | $ sudo chown -R yourusername:yourusername /var/cache/jellyfin}} | ||
<translate> | <translate> | ||
<!--T:15--> | <!--T:15--> | ||
| Line 102: | Line 127: | ||
{{code|lang=bash|line=no|$ sudo systemctl restart jellyfin}} | {{code|lang=bash|line=no|$ sudo systemctl restart jellyfin}} | ||
<translate> | <translate> | ||
<!--T:16--> | <!--T:16--> | ||
| Line 122: | Line 148: | ||
* <code>intel-compute-runtime</code> for newer processors | * <code>intel-compute-runtime</code> for newer processors | ||
</translate> | </translate> | ||
{{Note|<code>intel-media-sdk</code> is deprecated and does not build on recent channels. Use VAAPI with <code>intel-media-driver</code> instead. See [https://discourse.nixos.org/t/intel-media-sdk-has-become-deprecated/66998 this discussion] for details.<ref name="intel-media-sdk">smana, "intel-media-sdk has become deprecated", NixOS Discourse, Accessed October 2025. https://discourse.nixos.org/t/intel-media-sdk-has-become-deprecated/66998</ref>}} | |||
{{Note|<translate><code>intel-media-sdk</code> is deprecated and does not build on recent channels. Use VAAPI with <code>intel-media-driver</code> instead. See [https://discourse.nixos.org/t/intel-media-sdk-has-become-deprecated/66998 this discussion] for details.<ref name="intel-media-sdk">smana, "intel-media-sdk has become deprecated", NixOS Discourse, Accessed October 2025. https://discourse.nixos.org/t/intel-media-sdk-has-become-deprecated/66998</ref></translate>}} | |||
{{code|lang=nix|line=no|1= | {{code|lang=nix|line=no|1= | ||
| Line 165: | Line 192: | ||
} | } | ||
}} | }} | ||
<translate> | <translate> | ||
==== Troubleshooting VAAPI and Intel QSV ==== <!--T:22--> | ==== Troubleshooting VAAPI and Intel QSV ==== <!--T:22--> | ||
| Line 173: | Line 201: | ||
{{code|lang=bash|line=no|$ nix-shell -p libva-utils --run vainfo}} | {{code|lang=bash|line=no|$ nix-shell -p libva-utils --run vainfo}} | ||
<translate> | <translate> | ||
<!--T:24--> | <!--T:24--> | ||
| Line 179: | Line 208: | ||
{{code|lang=bash|line=no|$ nix-shell -p clinfo --run clinfo}} | {{code|lang=bash|line=no|$ nix-shell -p clinfo --run clinfo}} | ||
<translate> | <translate> | ||
<!--T:25--> | <!--T:25--> | ||
| Line 188: | Line 218: | ||
{{code|lang=bash|line=no|$ nix-shell -p intel-gpu-tools --run intel_gpu_top}} | {{code|lang=bash|line=no|$ nix-shell -p intel-gpu-tools --run intel_gpu_top}} | ||
<translate> | <translate> | ||
<!--T:27--> | <!--T:27--> | ||
| Line 197: | Line 228: | ||
} | } | ||
}} | }} | ||
<translate> | <translate> | ||
<!--T:28--> | <!--T:28--> | ||
| Line 207: | Line 239: | ||
[ 4.176977] i915 0000:00:10.0: [drm] *ERROR* GT0: Enabling uc failed (-5) | [ 4.176977] i915 0000:00:10.0: [drm] *ERROR* GT0: Enabling uc failed (-5) | ||
[ 4.177502] i915 0000:00:10.0: [drm] *ERROR* GT0: Failed to initialize GPU, declaring it wedged!}} | [ 4.177502] i915 0000:00:10.0: [drm] *ERROR* GT0: Failed to initialize GPU, declaring it wedged!}} | ||
<translate> | <translate> | ||
==== VAAPI and Intel QSV on Arc GPU ==== <!--T:29--> | ==== VAAPI and Intel QSV on Arc GPU ==== <!--T:29--> | ||
| Line 233: | Line 266: | ||
} | } | ||
}} | }} | ||
<translate> | <translate> | ||
<!--T:31--> | <!--T:31--> | ||
This triggers a rebuild of the Jellyfin package. After applying, select "Intel QuickSync (QSV)" in the Jellyfin settings for hardware-accelerated transcoding with minimal CPU load. | This triggers a rebuild of the Jellyfin package. After applying, select "Intel QuickSync (QSV)" in the Jellyfin settings for hardware-accelerated transcoding with minimal CPU load. | ||
On NixOS 25.11 and newer (specifically since [https://github.com/NixOS/nixpkgs/pull/424061 this PR]), <code>vpl</code> support in FFmpeg is enabled by default, so there is no need to use an overlay. | |||
<!--T:32--> | <!--T:32--> | ||
| Line 269: | Line 305: | ||
} | } | ||
}} | }} | ||
<translate> | <translate> | ||
<!--T:35--> | <!--T:35--> | ||
| Line 285: | Line 322: | ||
VAProfileNone : VAEntrypointStats | VAProfileNone : VAEntrypointStats | ||
/* Additional profiles depend on your hardware */}} | /* Additional profiles depend on your hardware */}} | ||
<translate> | <translate> | ||
<!--T:36--> | <!--T:36--> | ||
| Line 314: | Line 352: | ||
}) | }) | ||
]; | ]; | ||
}} | }} | ||
<translate> | <translate> | ||
== Troubleshooting == <!--T:41--> | == Troubleshooting == <!--T:41--> | ||
| Line 323: | Line 361: | ||
<!--T:43--> | <!--T:43--> | ||
If Jellyfin fails to start, check the service status: | If Jellyfin fails to start, check the service status: | ||
</translate> | |||
{{code|lang=bash|line=no|$ sudo systemctl status jellyfin}} | {{code|lang=bash|line=no|$ sudo systemctl status jellyfin}} | ||
<translate> | |||
<!--T:44--> | <!--T:44--> | ||
Review the service logs for error messages: | Review the service logs for error messages: | ||
| Line 331: | Line 371: | ||
{{code|lang=bash|line=no|$ sudo journalctl -u jellyfin -n 50}} | {{code|lang=bash|line=no|$ sudo journalctl -u jellyfin -n 50}} | ||
<translate> | <translate> | ||
=== Cannot access media files === <!--T:45--> | === Cannot access media files === <!--T:45--> | ||
| Line 339: | Line 380: | ||
{{code|lang=bash|line=no|$ ls -la /path/to/media}} | {{code|lang=bash|line=no|$ ls -la /path/to/media}} | ||
<translate> | <translate> | ||
<!--T:47--> | <!--T:47--> | ||