Jellyfin logo

Jellyfin

Free software media system for organizing and streaming your movies, TV shows, and music

Alternative to: netflix, plex, emby


About Versions (100)

v10.3.0

2019-04-19

10.3.0 release.

Release Notes

  • This release makes non-backwards-compatible changes to the users.db database (#870). Ensure you take a backup of this database (with Jellyfin stopped) before upgrading if you wish to revert back to an earlier release.

  • This release requires Windows users move the data directory from %APPDATA%\jellyfin to %LOCALAPPDATA%\jellyfin (#851). This is automatic with install-jellyfin.ps1. Based on RC testing this shouldn’t cause any long-term problems.

  • The 3rd-party API no longer accepts pre-hashed passwords for authentication; the clients MUST send a plaintext password, and this MUST be encrypted via HTTPS to avoid password leakage. Administrators who do not use HTTPS already (either in-app or via reverse proxy) are strongly encouraged to do so.

  • Plugins installed with Jellyfin 10.2.Z might not upgrade properly due to a bug in the plugin management system that has now been corrected. If you encounter errors while upgrading a plugin, the easiest solution is to remove the plugin first, then re-add it. To preserve configuration as well, delete the plugin directory on the filesystem (e.g. in Debuntu/Fedora under /var/lib/jellyfin/plugins) the reinstall the newer version.

  • Users of Yatse should remove then re-add their Jellyfin server as the new Jellyfin type or authentication may fail.

  • OpenSubtitles support has been moved to a plugin.

Major features

  • Uses the Kestrel web server instead of the previous homebrew web server.
  • The insecure authentication system has been revamped to store passwords more securely and enable future external authentication.
  • Individual user passwords can be reset without affecting other users.
  • A mostly-Webpack-compatible WebUI.
  • More translations.
  • Numerous bugfixes around both the front- and back-end.

Changelog

jellyfin

#735 Readability changes #776 Update tvdb provider to v2 api #785 Remove useless abstraction around XmlReaderSettings #800 Add CentOS and update rpm spec for the cachedir option #801 Move to Microsoft.Extensions.DependencyInjection #829 Removed some unused fields #830 Removed remaining self-update code #844 Reworked FFmpeg path discovery and always display to user #847 Make websockets code async #848 Minor changes to reduce allocations #849 Less string allocations #851 Simplify code to get data dir #862 Add dotnet-compat ABI testing and Debug configuration building to drone-CI #870 Better default authentication #885 More warning fixes
#887 Replace primitive injection with IConfiguration #889 Fix uncaught xml error #891 Reduce the amount of db calls during the post scan event #898 Switch to Roslyn naming rules in EditorConfig #900 Implement proper FFmpeg version checking #902 COPR auto building #907 Fix assembly visibility
#913 Reduce log spam #914 Separate HttpPostedFile into it’s own file #915 Remove IEncryptionManager #930 checking user-permission in GetQueryResult #934 Don’t require a restart for 75% of plugins #936 Fixed the assemblynames for compatibility check in drone. #939 Clean up and rename obsolete deployment platforms #947 Add Azure Pipelines YAML #950 Replace OptimizedPriorityQueue source with NuGet reference #952 Populate video extras again #955 Avoid exceptions due to folder and file not found
#959 Reduce string allocations at startup #962 Fix Path #977 Always set ffmpeg flag +genpts when video stream is being copied #978 Fix DLNA for multiple interfaces on linux #981 Close the response stream after fetching temp files #984 Update kz.csv #986 Backmerge submodule updating strategy #996 Reduce the amount of exceptions thrown #999 Check that ffmpeg log target isn’t disposed before writing to it #1000 Don’t close the socket response multiple times #1003 Use stopwatch for more accurate measurements and reduce log spam #1007 Log time in a standardized way #1009 Implement SxxExx EpisodeNum Processing #1010 Remove System.Net and port to Kestrel #1011 Don’t try to order the response the same as the request #1018 Fix rmvb video can not play under DLNA #1020 Do not allow new users to delete content by default #1021 Fail on warnings for Jellyfin.Server #1028 Simplify rating loading #1032 Correct the list of series types #1043 Update image overlays to use Jellyfin blue #1051 Build improvements for wrapping infrastructure #1058 Cleanup/simplification #1059 Remove EnvironmentInfo #1060 Remove redundant class AssemblyInfo #1061 Remove dead code #1062 Fix the 2 new warnings #1063 Update to renamed DownloadGitHubRelease task (Microsoft/azure-pipelines-tasks#9481) #1064 Remove file added in #996 #1065 Don’t set status code if response is closed #1067 Add urlprefixes during init #1069 Quick nullref fix #1071 Fix error #1072 Remove New File Header #1075 Remove mirror images from library thumbnail #1077 Make MusicBrainz base url configurable #1081 Disable HTTPS in Kestrel if Certificate is null #1089 Update translations #1090 Set DisplayTitle for subtitles #1091 Do not use the nuget packages for comparison, but the last master build #1092 Add configurable webdir option #1093 Use better path configuration for packages #1094 Skip processing of images that don’t exist #1095 Add AppConfig to the DI service collection #1096 Remove open subtitles from the server #1098 Fix build by removing non existent namespace #1100 Finalise removal of —ffprobe switch #1103 Improvements around streams #1104 Disable the Drone CI ABI check #1105 Only delay making MusicBrainz request if necessary #1106 More warning fixes #1110 Adjusted the Product Name so the User Agent is correct/better #1114 Only remove /var/lib/apt/lists/* in Dockerfile #1115 Clean apt lists in arm Dockerfiles #1116 Fix exception caused by #1096 #1117 Check before flushing ffmpeg log #1119 MusicBrainz 503 Retry Strategy #1120 Quick fix for auth bug #1121 Update username regex to string literal with escaped - #1127 Add configurable user lockout #1136 Require access type to be included in bug report #1137 Fix default value for Expires header #1139 Update init scripts for compatibility with Devuan #1140 Add Doxygen config #1149 Adds per user password reset #1151 Use public ports and advertise DNS if available for WAN address #1153 Check if disposed first #1157 Simplify/remove/clean code #1166 Fix exception on startup #1169 Use new libexecdir location for jellyfin-ffmpeg #1170 Correct bad quote characters #1171 Add Ubuntu armhf build #1172 Minor improvements to release build setup
#1178 Updates windows installer default lib location #1188 Fix problems with plugin installation #1189 Update local path to include the jellyfin dir #1190 Update Dockerfiles #1195 Optimize images with image_optim #1199 Use TLS 1.2 to download NSSM #1209 Override username with AuthenticationProvider #1221 Make Jellyfin search its base dir for ffmpeg #1239 Clean up UDP responders, and move ProductName to Public endpoint #1242 Fix metadata path save #1244 Hotfix authapi

jellyfin-web

jellyfin/jellyfin-web#128 Always show FFmpeg path in Transcoding page jellyfin/jellyfin-web#144 Add top offset and bottom offset margins in emby-scrollbuttons jellyfin/jellyfin-web#153 Make types more consistent jellyfin/jellyfin-web#159 remove some deprecated plugin code jellyfin/jellyfin-web#162 Convertion to webpack - part1 - npm and dynamic module resolution for site.js jellyfin/jellyfin-web#166 Better progressive playback controls of bottom pages jellyfin/jellyfin-web#168 Lots of changes to the server configuration pages jellyfin/jellyfin-web#170 Updated translations jellyfin/jellyfin-web#171 Sort item results in the same order as requested jellyfin/jellyfin-web#172 Add web path as config option jellyfin/jellyfin-web#175 Update the translation help link jellyfin/jellyfin-web#177 Conversion to webpack - part2 - emby-webcomponents into components and module naming resolution jellyfin/jellyfin-web#178 Remove unused localization strings (updated) jellyfin/jellyfin-web#180 Apply typo fix for apphost jellyfin/jellyfin-web#181 Correct syntax error in networkPath jellyfin/jellyfin-web#187 Add CI for eslint jellyfin/jellyfin-web#188 Conversion to webpack - part3 - routes isolation, module resolution, refactoring appStorage jellyfin/jellyfin-web#189 Fix require apiInput jellyfin/jellyfin-web#190 Add setting to support configurable user lockout jellyfin/jellyfin-web#195 Remove no to nb jellyfin/jellyfin-web#196 Return inner promise in createConnectionManager jellyfin/jellyfin-web#197 Cleanup cordova modules - webpack fix jellyfin/jellyfin-web#202 Remove sync and registration services jellyfin/jellyfin-web#203 Remove all unused strings from translation files jellyfin/jellyfin-web#204 Fix CI jellyfin/jellyfin-web#205 Move assets and third party libs out of components and update some strings jellyfin/jellyfin-web#206 Conversion to webpack - part4 - module resolution, appStorage refactor, minor cleanup jellyfin/jellyfin-web#211 Adds web options to support better password resets jellyfin/jellyfin-web#214 Fix Direct Playback broken in Chrome 73 jellyfin/jellyfin-web#216 Remove sync menu from multiselect jellyfin/jellyfin-web#217 Re-add missing strings jellyfin/jellyfin-web#218 Solve random dark pane over video playing in fullscreen mode jellyfin/jellyfin-web#219 Change Chromecast volume instead while casting jellyfin/jellyfin-web#221 Fix local chromecast play behind reverse proxy jellyfin/jellyfin-web#222 Remember device volume/mute on Chromecast playback stop jellyfin/jellyfin-web#223 When playing on Chromecast make volume buttons change chromecast volume jellyfin/jellyfin-web#225 Fix restart button API call jellyfin/jellyfin-web#226 Optimize images with image_optim jellyfin/jellyfin-web#227 Update add server input type jellyfin/jellyfin-web#231 Improve the plugin catalog and related controllers jellyfin/jellyfin-web#235 Add check for multiserver on login page jellyfin/jellyfin-web#237 Avoid element overlap with music controls jellyfin/jellyfin-web#244 Fix a deminification issue with the plugin page jellyfin/jellyfin-web#245 Add Missing strings “HeaderFavorite…” jellyfin/jellyfin-web#247 Update the name in Manifest.json jellyfin/jellyfin-web#249 Correct edititemmetadata.js script location jellyfin/jellyfin-web#253 Readd missing strings