Jellyfin Web Versions Save

Web Client for Jellyfin

v10.9.0

1 week ago

:rocket: Jellyfin Web 10.9.0

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.

As always, please ensure you stop your Jellyfin server and take a full backup before upgrading!

You can find more details about and discuss this release on our forums.

Changelog (637)

πŸ”’ Security

  • Disable ffmpeg path setting for security reasons [PR #5332], by @gnattu
  • Fix xss in api key page [PR #4590], by @thornbill
  • Escape device id in raw HTML. [PR #4541], by @thornbill
  • Fix XSS in repositories list [PR #3601], by @thornbill

🌟 Highlights

  • Add Lyric support [PR #4733], by @robert-hamilton36
  • Add trickplay support [PR #5200], by @nicknsy
  • Add support for subtitle management permission [PR #4883], by @Ch1nkara
  • feat: add VideoToolbox Tone mapping support [PR #5240], by @gnattu

πŸ—οΈ Enhancements

  • Don’t set save lyrics locally as default [PR #5473], by @gnattu
  • Add configuration for scan fanout concurrency [PR #5476], by @thornbill
  • Fix missing person types [PR #5459], by @thornbill
  • Remove open graph tags to fight "safe browsing" idiocy [PR #5458], by @thornbill
  • Add playlist access checks [PR #5455], by @thornbill
  • Remove mention of piracy tools in help text [PR #5448], by @felix920506
  • Fall back to other normalization gain if preferred one is null [PR #5428], by @Bond-009
  • Fix playback sequence of episodes in a series/season [PR #5423], by @nvllsvm
  • Hide lyrics button when there are no lyrics [PR #5439], by @thornbill
  • Show error message on playback failure [PR #5402], by @dmitrylyzo
  • Use NormalizationGain instead of LUFS [PR #5427], by @Bond-009
  • Fix playing next episode when autoplay is disabled [PR #5398], by @ConnorS1110
  • Update save password button label [PR #5430], by @thornbill
  • Check if there are multiple parts before requesting them [PR #5416], by @Bond-009
  • Update logo assets [PR #5393], by @nielsvanvelzen
  • Convert playlist editor to typescript [PR #5392], by @thornbill
  • Update crf help text [PR #5242], by @felix920506
  • Use SeriesSortName in SortBy [PR #5348], by @dmitrylyzo
  • Add clear help text for encoding format options [PR #5330], by @gnattu
  • Fix translation of the enhanced NVDEC decoder [PR #5323], by @nyanmisaka
  • feat: (preferences) migrate user display settings to react [PR #5076], by @grhallenbeck
  • fix: name GPGPU runtime correctly [PR #5301], by @gnattu
  • Complement recent DoVi fallback handling changes server-side [PR #5282], by @GeorgeH005
  • Optimize theme background images [PR #5292], by @kimboslice99
  • Delete series confirmation to be different to delete episode [PR #5232], by @nizans
  • Fix the behavior of HDR remuxing in HLS.js 1.5+ [PR #5299], by @nyanmisaka
  • Log current version to console to help out with issue triage and debugging [PR #5295], by @nielsvanvelzen
  • Enable 'Prefer fMP4-HLS Container' by default on certain platforms [PR #5289], by @nyanmisaka
  • Adding DOVI support on webOS [PR #4916], by @viktory36
  • Deleting a user should show name [PR #4943], by @Chris-Codes-It
  • Fix the descriptions of segment deletion to match server changes [PR #5284], by @nyanmisaka
  • Relax HEVC on Safari for hvc1/dvh1 direct-play [PR #5183], by @nyanmisaka
  • Make Height editable on TV Channels [PR #4181], by @SenorSmartyPants
  • Make the server field ignore the trailing slash [PR #5205], by @d3xt3r01
  • Enable AV1 remuxing via HLS fMP4 on Safari [PR #5239], by @nyanmisaka
  • Refactor edit user string [PR #5217], by @felix920506
  • Add build and web versions to dashboard [PR #5216], by @thornbill
  • Add support for searching via a url parameter [PR #5203], by @thornbill
  • Add stricter checks for DolbyVision in HEVC [PR #5184], by @nyanmisaka
  • Add support for redirecting to the requested page after login [PR #5136], by @thornbill
  • Wait for login before ask for notification permission [PR #4935], by @SimonTen
  • Refactor item details backdrop handling [PR #5139], by @thornbill
  • Use react-query for UserViews queries [PR #5092], by @thornbill
  • Update build action to modify config.json for testing [PR #5097], by @thornbill
  • Add livetv view [PR #5055], by @grafixeyehero
  • Exclude resumable in next up home screen section [PR #5095], by @thornbill
  • Convert playstatebutton and ratingbuttons to react [PR #5085], by @grafixeyehero
  • Update mui based layout ui [PR #5020], by @thornbill
  • Use LTR for default subtitle direction [PR #4895], by @thornbill
  • Remove click action from item details primary image [PR #4881], by @thornbill
  • Fix Rename Device don't change device name in the devices page [PR #4887], by @scampower3
  • Disable sync correction by default for SyncPlay [PR #5003], by @DinuD
  • Hide image type and year in certain views [PR #4920], by @grafixeyehero
  • Add mks file support to subtitle uploader component and template [PR #4941], by @valius
  • Randomize backdrop images in screensaver [PR #4923], by @Yenof
  • Add music view [PR #4919], by @grafixeyehero
  • Fix playback control issues with chromecast [PR #4891], by @Sky-High
  • Show nested chapters in bookplayer TOC [PR #4890], by @vincent
  • Migrate React Router to React Data Router pattern [PR #4834], by @grhallenbeck
  • Add tv show view [PR #4877], by @grafixeyehero
  • Show a different icon when the player is paused [PR #4894], by @vincent
  • Use cast receiver application from user configuration [PR #4843], by @nielsvanvelzen
  • Add loading indicator and no results message for search [PR #4824], by @nathangur
  • Use icon url from client capabilities [PR #4884], by @thornbill
  • Consistent CSS for progress bars [PR #4888], by @LittleBigOwI
  • Link documentation in fallback fonts helptext [PR #4863], by @felix920506
  • Space bar plays/pauses music in queue view [PR #4864], by @gantoine
  • Change child item sort for Movies to PremiereDate [PR #4886], by @bradbeattie
  • Make the series and season Play button play the next episode [PR #4827], by @beef331
  • Refactor viewitemcontainer [PR #4691], by @grafixeyehero
  • Increasing limit of returned results from searches [PR #4213], by @bradbeattie
  • Add Github Codespace definition [PR #4823], by @JPVenson
  • Reduce ApiClient calls [PR #4838], by @dmitrylyzo
  • Migrate dashboard to separate app [PR #4816], by @thornbill
  • Add Play, Queue, Shuffle and NewCollection Buttons [PR #4785], by @grafixeyehero
  • Add Pagination [PR #4784], by @grafixeyehero
  • Add ability to upload hearing-impaired subs [PR #4728], by @MBR-0001
  • Split and extract video range support detection [PR #4804], by @dmitrylyzo
  • Handle pressing Enter to finish keyboard dragging of slider [PR #4805], by @dmitrylyzo
  • Simplify subtitle sync [PR #4760], by @dmitrylyzo
  • Allow any application id for cast receiver [PR #4799], by @nielsvanvelzen
  • Add AlphabetPicker [PR #4783], by @grafixeyehero
  • Add search params to redirects [PR #4790], by @thornbill
  • Migrate quick connect page to react [PR #4777], by @thornbill
  • Add speeds for 2.5x 3x 3.5x 4x [PR #4789], by @EvanCarroll
  • Add filters status indicator [PR #4776], by @grafixeyehero
  • Fix ES-Check errors in development build [PR #4780], by @dmitrylyzo
  • Add support for more remote subtitle info [PR #4727], by @MBR-0001
  • Add view layout settings components. [PR #4713], by @grafixeyehero
  • HLS direct play [PR #4761], by @dmitrylyzo
  • Use a random backdrop image for video osd [PR #4706], by @TheMelmacian
  • Add Sort Menu setting components [PR #4712], by @grafixeyehero
  • Make backdrop screensaver interval configurable [PR #4751], by @newo-2001
  • Add admin links to user menu [PR #4723], by @thornbill
  • Add Filter setting components. [PR #4711], by @grafixeyehero
  • Fix emby-scroller not going to the screen edge on desktop [PR #4714], by @thornbill
  • Add back button to experimental layout [PR #4705], by @thornbill
  • Add SyncPlay button to app toolbar [PR #4669], by @thornbill
  • Remove ssa/ass tags from text subtitles [PR #4658], by @thornbill
  • Add remote play menu to experimental layout [PR #4616], by @thornbill
  • Adapt dummy chapter settings and labels [PR #4382], by @Shadowghost
  • Improve subs [PR #3607], by @aivit
  • Seamless playing in multipart episodes [PR #4534], by @sleepycatcoding
  • Add ability to favorite item within video playback [PR #4145], by @fishbigger
  • Fix extra requests in standalone mode [PR #4620], by @thornbill
  • Add device type for chromecast devices [PR #4617], by @thornbill
  • Add useWebConfig hook [PR #4571], by @thornbill
  • Reduce tv card scaling [PR #4163], by @Vankerkom
  • feat: migrate from JavascriptSubtitlesOctopus to JASSUB [PR #4357], by @ThaUnknown
  • Fix info header not updated on version change [PR #4496], by @TheMelmacian
  • Add Ratings to both Video Player and Up Next Dialog Window [PR #4491], by @FireGamer3
  • Add experimental routes [PR #4482], by @grafixeyehero
  • revert asyncRoutes to legacyRoutes [PR #4481], by @grafixeyehero
  • Fix Blurred pdf [PR #4347], by @Zourlo
  • Add setting for ParallelImageEncodingLimit [PR #4262], by @hannesbraun
  • Update hls.js to 1.3.4 [PR #4399], by @knackebrot
  • Add dashboard to plugin manager. [PR #4373], by @iwalton3
  • Add "Light Grey" and "Dark Grey" to subtitle color selection [PR #4311], by @lucaperl
  • Display whole channel icon and new/repeat/live/premiere flags on timer list [PR #4183], by @SenorSmartyPants
  • Rename login disclaimer [PR #4268], by @dann-merlin
  • Show production studio [PR #4196], by @mark5231
  • DVR: Add options to disable NFO and image saving [PR #4180], by @SenorSmartyPants
  • Show total count when no pagination is applied [PR #4201], by @h3llrais3r
  • Add experimental display mode option [PR #4281], by @thornbill
  • Add ability to specify half hour for access schedule [PR #4193], by @olsh
  • Support admin login in QuickConnect [PR #4194], by @nielsvanvelzen
  • Add api and user context [PR #4116], by @thornbill
  • Tweak navigation sizing [PR #4162], by @Vankerkom
  • Adjust active devices in dashboard [PR #4161], by @Vankerkom
  • Add async loading of react pages [PR #4126], by @thornbill
  • Add Unreleased SeriesStatus to filters [PR #4120], by @nielsvanvelzen
  • Optimize restoring views [PR #4142], by @thornbill
  • Improve loading of date-fns [PR #4135], by @thornbill
  • Add react loading component [PR #4123], by @thornbill
  • Add device logos for Roku and Finamp [PR #4104], by @photonconvergence
  • Metadata loss warning while renaming libraries [PR #3944], by @Artiume
  • Update server and quick connect icons [PR #4080], by @thornbill
  • Change settings menu item name to "Euskara" [PR #4028], by @urtzai
  • Allow zero as MaxParentalRating value [PR #4033], by @Shadowghost
  • chore: add Basque display language option [PR #4003], by @cvium
  • automatically switch to LocalAddress when accessible [PR #3655], by @kookxiang
  • Add date episode added sorting [PR #3970], by @thornbill
  • Remove naive scaling of video playback controls [PR #3961], by @thornbill
  • Make book table of contents prettier [PR #3856], by @rourien
  • Use dynamic import for pdf.js [PR #3907], by @thornbill
  • Enable native subtitles for firefox [PR #3897], by @is343
  • Respect safe area (notch) of mobile devices [PR #3676], by @taku0
  • Add configurable IgnoreDts flag to M3U tuner [PR #3696], by @knackebrot
  • Update the Firefox icon [PR #3773], by @Nicryc
  • Add react router and migrate search page [PR #3706], by @thornbill
  • Show subtitle text color setting [PR #3549], by @Madh93
  • Add the ability to enable/disable the splashscreen [PR #3694], by @crobibero
  • Update dialog history handling [PR #3620], by @thornbill
  • Add shuffle button to movie collections [PR #3627], by @bernarden
  • Create option for bold subtitles [PR #3632], by @aivit
  • Append year to title of content in video playback. [PR #3621], by @jesse231
  • Make now playing bar use cursor pointer [PR #3564], by @JodliDev
  • Update home video library translation [PR #3546], by @thornbill
  • Use history for app router [PR #3563], by @thornbill
  • Change buttons that act as links to anchor tags [PR #3479], by @davidmurdoch

πŸ“ˆ General Changes

  • Fix now playing bar rendering under drawer [PR #5477], by @thornbill
  • Add missing ref fallback in publish action [PR #5472], by @thornbill
  • Fix branch ref in publish action [PR #5470], by @thornbill
  • Fix publish workflow for non-prs [PR #5471], by @thornbill
  • Show all Cast&Crew, not just Actors [PR #4361], by @bugfixin
  • Fix direct reference to mui theme [PR #5465], by @thornbill
  • Fix recently added for mixed libraries [PR #5463], by @thornbill
  • Add missing options for people metadata editor [PR #5251], by @scampower3
  • Update @jellyfin/sdk to 0.0.0-unstable.202405050501 [PR #5443], by @jellyfin-bot
  • Add permission check to playlist editor [PR #5453], by @thornbill
  • [en / i18n] grammar: less -> fewer [PR #5444], by @systemcrash
  • Add lyric settings to music library management [PR #5440], by @crobibero
  • Fix missing URL encoding for font name + fix typo [PR #5451], by @p0358
  • Add public access option when creating playlist [PR #5449], by @thornbill
  • User configurable codecs (DTS, TrueHD) [PR #5391], by @dmitrylyzo
  • Remove apiClient parameters on Playback Stopped callback in experimental layout [PR #5420], by @grafixeyehero
  • Show "99+" in unplayed indicator when more 100 or more new items [PR #5442], by @nvllsvm
  • Fix unplayed count styling when navigating back [PR #5441], by @nvllsvm
  • Update @jellyfin/sdk to 0.0.0-unstable.202405010501 [PR #5386], by @jellyfin-bot
  • Fix usages of item in location state [PR #5437], by @thornbill
  • Fix cards in emby-scroller being off-center from section titles [PR #5380], by @ConnorS1110
  • Fix playback errors [PR #5438], by @thornbill
  • Fix MP3 audio playback capability checking with HLS [PR #5419], by @gnattu
  • Redirect legacy URLs [PR #5424], by @nvllsvm
  • Change "setup" to "set up" in source language [PR #5432], by @systemcrash
  • Remove the blinking caret in full screen playback. [PR #4749], by @plafreniere
  • Fix client-side CSS not applied on page load [PR #5422], by @nielsvanvelzen
  • Fix id param when creating playlists [PR #5429], by @thornbill
  • Fix shuffling for shows [PR #5415], by @nvllsvm
  • Fix gap above backdrop on details screen in experimental layout [PR #5409], by @thornbill
  • Remove "Use ReplayGain Tags" option [PR #5413], by @Bond-009
  • Fix drawer covering now playing bar in experimental layout [PR #5414], by @thornbill
  • Remove nonexistent ItemField AudioInfo [PR #5410], by @Bond-009
  • Fix empty playlists tab in music libraries [PR #5408], by @thornbill
  • Prevent changing volume with mouse wheel when dialog is shown [PR #5401], by @gnattu
  • Fix Favorite button margin [PR #5371], by @dmitrylyzo
  • Remove OS check for VPP option [PR #5399], by @gnattu
  • Move mjpeg acceleration option into trickplay panel [PR #5331], by @gnattu
  • fix: use correct hls containers for audio [PR #5378], by @gnattu
  • Fix valDummyChapterDuration not populating in Dashboard>Libraries>Metadata [PR #5389], by @nielsvanvelzen
  • Update @jellyfin/sdk to 0.0.0-unstable.202404101900 [PR #5362], by @jellyfin-bot
  • Limit Video Level to 4.2 in fMP4 for iOS < 13 [PR #5322], by @Bond-009
  • Update @jellyfin/sdk to 0.0.0-unstable.202403310501 [PR #5356], by @jellyfin-bot
  • Add option to enable/disable libraries [PR #5215], by @btopherjohnson
  • Fix unreleased status missing in metadata editor [PR #5358], by @nielsvanvelzen
  • Update @jellyfin/sdk to 0.0.0-unstable.202403290501 [PR #5333], by @jellyfin-bot
  • Fix missing emby-collapse import in add plugin page [PR #5339], by @thornbill
  • Add titles to buttons on now playing bar [PR #5327], by @robert-hamilton36
  • Remove legacy codecs for VideoToolbox [PR #5325], by @gnattu
  • Update @jellyfin/sdk to 0.0.0-unstable.202403260501 [PR #5319], by @jellyfin-bot
  • Add help descriptions to allow/block tag sections in parental control settings [PR #5324], by @nielsvanvelzen
  • Add option to limit maximum supported video resolution [PR #5315], by @dmitrylyzo
  • Add option to enable smooth scroll [PR #5316], by @dmitrylyzo
  • Add "AllowedTags" option to parental controls [PR #4535], by @davidangel
  • Add more media playback error messages [PR #5274], by @thornbill
  • Fix mediainfo display for lyrics and non-video [PR #5312], by @crobibero
  • Migrate back from JASSUB to JavascriptSubtitlesOctopus [PR #5296], by @dmitrylyzo
  • Enable renovate dashboard [PR #5302], by @thornbill
  • Update @jellyfin/sdk to 0.0.0-unstable.202403240502 [PR #5286], by @jellyfin-bot
  • Fix searching in tv shows [PR #5293], by @scampower3
  • add catch for itemContextMenu.show [PR #5294], by @robert-hamilton36
  • Convert bump_version to bumper only [PR #5290], by @joshuaboniface
  • Remove legacy build utilities [PR #5287], by @crobibero
  • Update @jellyfin/sdk to 0.0.0-unstable.202403180216 [PR #5283], by @jellyfin-bot
  • Fix card issues in experimental layout [PR #5270], by @grafixeyehero
  • Add option to enable replaygain scanning [PR #4984], by @TelepathicWalrus
  • Update @jellyfin/sdk to 0.0.0-unstable.202403150501 [PR #5275], by @jellyfin-bot
  • Update VSCode ESLint config [PR #5276], by @felix920506
  • Update @jellyfin/sdk to 0.0.0-unstable.202403100501 [PR #5257], by @jellyfin-bot
  • Update editorconfig for yaml indentation [PR #5269], by @thornbill
  • Revert "Bump es5-ext from 0.10.53 to 0.10.64" [PR #5268], by @thornbill
  • Remove Azure pipelines CI [PR #5266], by @joshuaboniface
  • Convert list & card view to react. [PR #5166], by @grafixeyehero
  • Change webOS version needed for audioTracks to 4.0 [PR #5214], by @andrasmaroy
  • Remove DLNA configuration pages pages [PR #5255], by @thornbill
  • Update @jellyfin/sdk to 0.0.0-unstable.202403040506 [PR #5244], by @jellyfin-bot
  • Keep exact sdk version in package.json [PR #5253], by @thornbill
  • Update @jellyfin/sdk to 0.0.0-unstable.202402290502 [PR #5228], by @jellyfin-bot
  • Add commit sha as JF version in CI builds [PR #5236], by @thornbill
  • Update @jellyfin/sdk to 0.0.0-unstable.202402240501 [PR #5225], by @jellyfin-bot
  • Add GH action to update SDK dependency [PR #5223], by @thornbill
  • Migrate actionSheet & scrollHelper to TypeScript [PR #5212], by @terite
  • Fix: addToPlaylist [PR #5196], by @grafixeyehero
  • Update LabelCountry to ease the naming of controversial regions [PR #5194], by @nyanmisaka
  • Remove unused Id prop from access schedule list [PR #5154], by @NTARelix
  • Fix stylelint scss config to use main config file [PR #5174], by @thornbill
  • Remove unused elements from item details html [PR #5152], by @thornbill
  • Fix stable app crash due to missing nav components [PR #5167], by @thornbill
  • Add Rockchip MPP (RKMPP) as a new HWA type [PR #5056], by @nyanmisaka
  • Replace deprecated initEvent() [PR #5142], by @KasinSparks
  • Fix backdrop positioning in legacy layouts [PR #5140], by @thornbill
  • Fix handling of single click on the previous track button [PR #5146], by @dkacperski97
  • Fix line-clamping regression [PR #5143], by @thornbill
  • Disable network path field [PR #5098], by @thornbill
  • Update CollectionType values for new enum [PR #5048], by @TelepathicWalrus
  • Ignore missing api when fetching SyncPlay groups [PR #5096], by @thornbill
  • Fix queue next / last in session player [PR #5059], by @rasmuslos
  • Remove sync info from requested fields [PR #5093], by @thornbill
  • Migrate loading/loading to TypeScript [PR #5067], by @terite
  • Remove invalid SongCount field [PR #5083], by @crobibero
  • Remove unused sync code [PR #5082], by @nielsvanvelzen
  • Fix contributors list [PR #5075], by @thornbill
  • Fix iOS 12 crashing in scroller [PR #5070], by @thornbill
  • Update HLS.js to use upstream version [PR #5060], by @nyanmisaka
  • Add custom icon support for custom links [PR #5057], by @grhallenbeck
  • Enable DTS on webOS 23 [PR #5053], by @Noltari
  • Fix a typo in Chrome version check [PR #5061], by @nyanmisaka
  • Add self to Contributors [PR #5021], by @valius
  • Hide AppTabs component if path has no tab. [PR #4922], by @grafixeyehero
  • Replace markdown lib [PR #4995], by @rafma0
  • Remove core from CODEOWNERS file [PR #4989], by @Bond-009
  • Add abortable fetch polyfill [PR #4973], by @dmitrylyzo
  • Fix legacy [PR #4958], by @dmitrylyzo
  • Remove FLAC Audio in Video Support for Tizen [PR #4938], by @rafma0
  • Remove useless fragments [PR #4906], by @freakingeek
  • Remove H264 10bit support on Samsung TV (Tizen) (Backport #4797) [PR #4946], by @dmitrylyzo
  • Add check for quick connect enabled in menu [PR #4924], by @thornbill
  • Bump jellyfin-apiclient to v1.11.0 [PR #4931], by @thornbill
  • Use sort options based on view type [PR #4880], by @grafixeyehero
  • Fix jittering in emby-checkbox [PR #4929], by @rafma0
  • Fix quality check workflows [PR #4930], by @thornbill
  • Fix eslint comment action config [PR #4925], by @thornbill
  • Add eslint suggestions action [PR #4909], by @thornbill
  • Reduce cognitive complexity in Card Builder component [PR #4859], by @ddubson
  • Remove resource caching from service worker [PR #4885], by @nielsvanvelzen
  • Convert emby-ItemsContainer to react [PR #4874], by @grafixeyehero
  • Handle json parse error when testing urls [PR #4898], by @thornbill
  • Fix user menu shown when authenticated user is on select server page [PR #4850], by @elvinlai1
  • Snap card sliders to card boundaries [PR #4856], by @grhallenbeck
  • Return boolean through direct comparison [PR #4822], by @rnbr04
  • Album gain [PR #4741], by @TelepathicWalrus
  • Fix duplicate year in the series details page [PR #4873], by @scampower3
  • Remove unused Code [PR #4875], by @grafixeyehero
  • Add sort options to playback requests [PR #4786], by @v0idMrK
  • Enable no-undef-init lint rule [PR #4844], by @tehciolo
  • Fix language/subtitle switcher when using gamepad [PR #4860], by @cbe
  • Fix FilterMenu not saving simple filters [PR #4836], by @dmitrylyzo
  • Fix same year appears in - format under card. [PR #4869], by @scampower3
  • Fix libraries maybe not being displayed in TV layout [PR #4871], by @thornbill
  • Remove cache from docker images after installing packages [PR #4847], by @arminius-s
  • Add current branch to CF Pages publish job [PR #4870], by @thornbill
  • Fix PR publish in GH actions [PR #4867], by @thornbill
  • Update GH Actions [PR #4810], by @thornbill
  • Fix admin check in dashboard routes [PR #4861], by @thornbill
  • Refactor home screen [PR #4825], by @thornbill
  • Eliminates critical Cognitive Complexity issue in Card Builder component as detected by SonarCloud [PR #4829], by @ddubson
  • Remove unnecessary renaming [PR #4833], by @tehciolo
  • Remove duplicate card shape functions [PR #4819], by @thornbill
  • Refactor app layouts and common components [PR #4806], by @thornbill
  • Fix minimum npm version [PR #4817], by @thornbill
  • Relax node and npm version requirements [PR #4814], by @thornbill
  • Fix music artists page mode [PR #4811], by @grafixeyehero
  • Remove caching of main animated pages element [PR #4812], by @thornbill
  • Update node version in docker build [PR #4809], by @thornbill
  • Update to node 20 [PR #4802], by @Renari
  • Fix error on unmount in syncplay menu [PR #4793], by @thornbill
  • Fix homesections in legacy browser (Backport #4787) [PR #4800], by @dmitrylyzo
  • Fix slider step (Backport #4758) [PR #4801], by @dmitrylyzo
  • Remove unused quickConnect route [PR #4798], by @grafixeyehero
  • Backport #4632 (Improve keyboard control) [PR #4795], by @dmitrylyzo
  • Make screensaver names translateable [PR #4791], by @KucharczykL
  • Explain what LUFS scanning does. [PR #4792], by @KucharczykL
  • Add conditional build USE_SYSTEM_FONTS [PR #4781], by @dmitrylyzo
  • Add guest cast on episode detail page [PR #4507], by @fffrankieh
  • Remove unused private class members [PR #4775], by @thornbill
  • Add eslint rule to prevent "lonely" if statements [PR #4774], by @thornbill
  • Add eslint rule for consistent curly brackets [PR #4773], by @thornbill
  • Add webpack config for analyzing builds and improve ts speed [PR #4772], by @thornbill
  • fix-cast-with-localhost-server [PR #4746], by @Sky-High
  • Change regex for browser detection [PR #4748], by @minigt
  • Refactor alert js [PR #4730], by @freakingeek
  • Fix major code smells [PR #4731], by @freakingeek
  • Fix en-us string [PR #4770], by @felix920506
  • Add fMP4 playback support (HEVC, AV1) in HLS.js [PR #4762], by @nyanmisaka
  • enable airplay for audioplayer [PR #4483], by @stamatovg
  • Cleanup duplicate userSettings from libraryBrowser [PR #4724], by @grafixeyehero
  • Change Subtitle Sync slider to go from -300 to 300 [PR #4754], by @mkanilsson
  • Remove LUFS scan option from non music libraries [PR #4737], by @TelepathicWalrus
  • Update unused var rule to error [PR #4722], by @thornbill
  • Add encoder settings for ffmpeg's segment deletion [PR #4170], by @DomiStyle
  • Cleanup rename default class name based on file name [PR #4720], by @grafixeyehero
  • Cleanup network config [PR #4703], by @Shadowghost
  • Remove easy password/pin configuration [PR #4721], by @thornbill
  • Fix sending URLs instead of strings to jassub, leading to DataCloneErrors [PR #4702], by @ramidzkh
  • Update eslint config for sonar issues [PR #4704], by @thornbill
  • Fix scheduled task time limit key [PR #4692], by @hikaps
  • Remove unneeded comma from translation string [PR #4700], by @cewert
  • Dashboard activity [PR #4667], by @thornbill
  • refactor: suggestionview and genresview [PR #4675], by @grafixeyehero
  • Refactor routes to use layout elements [PR #4660], by @thornbill
  • Require passwords when creating an admin user in the startup wizard [PR #4674], by @thornbill
  • Add Music Videos listing to MusicArtist View [PR #4631], by @Killface1980
  • fix: update JASSUB [PR #4613], by @ThaUnknown
  • Fix some more code smells [PR #4641], by @freakingeek
  • Remove notifications pages from dashboard [PR #4621], by @thornbill
  • Remove trailing colons from dummy chapter strings [PR #4656], by @thornbill
  • Extract display mirror handling from component [PR #4615], by @thornbill
  • Fix collection management options display in context menu [PR #4655], by @Shadowghost
  • Fix Movies/Favorites crash when accessing the missing Shuffle button [PR #4646], by @dmitrylyzo
  • Audio normalization [PR #4318], by @TelepathicWalrus
  • Add addplugin.html to the list of plugin pages for the drawer [PR #4623], by @thornbill
  • Add missing translation string for AllowCollectionManagement [PR #4624], by @Shadowghost
  • Fix missing translation for Studio [PR #4618], by @thornbill
  • Use optional chaining in the home component [PR #4607], by @freakingeek
  • Refactor experimental layout user menu [PR #4612], by @thornbill
  • Fix experimental layout app icon url [PR #4606], by @thornbill
  • Fix config.json using cache when changed [PR #4605], by @thornbill
  • Fix scrolling in add library dialog [PR #4604], by @thornbill
  • Add drawer to experimental layout [PR #4595], by @thornbill
  • Add initial experimental layout with MUI components [PR #4584], by @thornbill
  • Add path checking for canGoBack [PR #4586], by @thornbill
  • Remove error logs for checks expected to fail [PR #4587], by @thornbill
  • Fix white background on video refresh [PR #4581], by @Xavier-Do
  • Add prefer string starts/ends with eslint rule [PR #4570], by @thornbill
  • Add enum for library tab values [PR #4583], by @thornbill
  • Add support for absolute imports [PR #4557], by @thornbill
  • Fix for position time bug for remote control player [PR #4577], by @hadicharara
  • Add eslint rules for promise issues [PR #4558], by @thornbill
  • Fix prefer for-of loop code smells [PR #4568], by @thornbill
  • Cleanup routes [PR #4556], by @thornbill
  • Refactor for loops to for-of loops [PR #4552], by @rqres
  • Unhide PlayNextEpisodeAutomatically on TV [PR #4563], by @dmitrylyzo
  • Fix bottom video controls don't auto-hide [PR #4564], by @dmitrylyzo
  • Fix getter return value bugs [PR #4559], by @thornbill
  • Use typescript eslint parser for all files [PR #4562], by @thornbill
  • Remove duplicated app elements [PR #4554], by @thornbill
  • Refactor backdrop and header to separate components [PR #4542], by @thornbill
  • Refactor app structure [PR #4547], by @thornbill
  • Fix eslint warnings [PR #4544], by @thornbill
  • Drop progressive transcoding in web client [PR #4536], by @thornbill
  • Add tonemap mode options [PR #4537], by @thornbill
  • Add Select context menu [PR #4446], by @robert-hamilton36
  • Fix indentation issues [PR #4512], by @thornbill
  • Remove babel typescript preset dependency [PR #4510], by @thornbill
  • Fix too long URLs on getItems() when too many ids are provided [PR #4221], by @dann-merlin
  • Fix centos docker build maybe [PR #4509], by @thornbill
  • Fix previousTrack click eventlistener to avoid erroneous calls [PR #4463], by @Sky-High
  • Show clock in TV layout [PR #4441], by @addamanth
  • Fix rewind and fast forward buttons not showing on audio books in mobile layout [PR #4497], by @FireGamer3
  • Fix missing invalid issue number for rebase failed comment [PR #4505], by @thornbill
  • Add indexes to simplify route imports [PR #4506], by @thornbill
  • Fix missing issue id for rebase failed comment [PR #4503], by @thornbill
  • Add comment when rebase command fails [PR #4501], by @thornbill
  • Update CODEOWNERS [PR #4502], by @thornbill
  • Move fetchLocal function to utils [PR #4500], by @thornbill
  • Allow json file imports in typescript files [PR #4499], by @thornbill
  • Add video volume change on mouse scroll [PR #4435], by @robert-hamilton36
  • Render navigation elements with react [PR #4490], by @thornbill
  • Update unstable sdk version [PR #4489], by @thornbill
  • Remove commented out code [PR #4471], by @Anantharajus
  • fix: dead link [PR #4485], by @brettpetch
  • Remove all trailing colons from translations [PR #4477], by @nadir-ishiguro
  • Update centos docker image from 8 to stream8 [PR #4464], by @cewert
  • Fix centos build [PR #4465], by @cewert
  • Update SyncPlay references to use plugin [PR #4423], by @thornbill
  • Use form validation to ensure required fields are filled on submission [PR #4425], by @1337joe
  • Update eslint rules for consistent styles [PR #4455], by @thornbill
  • Add Audio VBR setting [PR #4154], by @knackebrot
  • Fix the stale action removing the merge conflict label when not fixed [PR #4440], by @thornbill
  • Add font size and theme selection controls to EPUB reader [PR #4285], by @LokiLuciferase
  • Update stale action operations per run [PR #4439], by @thornbill
  • Add action to close PRs with merge conflicts [PR #4438], by @thornbill
  • Add merge conflict comment [PR #4437], by @thornbill
  • fix(hls): playback should work without bundling hls [PR #4408], by @ThibaultNocchi
  • Add random int utility function [PR #4413], by @thornbill
  • Add setting for collection management [PR #4199], by @Shadowghost
  • Add plugin types [PR #4401], by @thornbill
  • Remove NPM prepare script [PR #3800], by @nielsvanvelzen
  • Add eslint radix rule for parseInt [PR #4403], by @thornbill
  • Fix special feature subtext display [PR #4115], by @photonconvergence
  • Fix stuck text track cues for firefox [PR #4349], by @is343
  • Add eslint max-params rule with a max of 7 parameters [PR #4320], by @pl-ducharme
  • Remove old Emby (3.x) version checks [PR #4389], by @JRaspass
  • Fix Time Until Next Episode Text Overflow [PR #4394], by @robert-hamilton36
  • Allow setting DummyChapterCount to 0 to disable dummy chapters [PR #4381], by @Bond-009
  • Support markdown in item descriptions [PR #4391], by @nielsvanvelzen
  • Move public pages to react-router [PR #4387], by @thornbill
  • Reorganized sass files to be in src/styles instead of src/assets/css [PR #4378], by @pypp
  • Fix login page redirect [PR #4384], by @thornbill
  • Remove duplicated display of studios [PR #4351], by @1337joe
  • Add secondary subtitle support to html video player [PR #3906], by @is343
  • Respect server ordering of media sources [PR #4360], by @Bond-009
  • Babelify @jellyfin/libass-wasm [PR #4355], by @dmitrylyzo
  • Add option to allow extras to use embedded titles [PR #3652], by @1337joe
  • Updated 'Latest' sections to read 'Recently Added'. [PR #4344], by @bhvsh
  • Add toggle to show/hide remaining video time in video player [PR #4327], by @DVDAndroid
  • Chapter Image settings(front-end) [PR #3770], by @negulici-r-barnabas
  • Remove OS and Arch from dashboard [PR #4309], by @Bond-009
  • Fix html lang attribute [PR #4306], by @dmitrylyzo
  • Fixed scss problems in item detail pages [PR #4225], by @hadicharara
  • Update docs - gamepad requirement [PR #4301], by @KingIzzymon
  • Fix AlphaPicker movies library [PR #4303], by @Bond-009
  • Add stereo downmix setting [PR #4235], by @Shadowghost
  • Update README with new directories [PR #4271], by @thornbill
  • Adds TypeScript Checking to GitHub Actions [PR #4236], by @willkronberg
  • Enable Stylelint rules for vendor prefixes [PR #4220], by @edvwib
  • Add DownloadAll for season and series [PR #4016], by @Ongy
  • Enable seamless playback of multipart Movies. [PR #4210], by @farraherbg
  • Use unstable tag for sdk version [PR #4198], by @thornbill
  • Add eslint rules for sonar issues [PR #4215], by @thornbill
  • Convert emby-button and emby-scroller to react [PR #4173], by @grafixeyehero
  • Fix issues navigating home screen tabs [PR #4205], by @thornbill
  • Fix unlimited pagination [PR #4188], by @ChristopheVandePoel
  • Fix null being a valid parental control level [PR #4190], by @Shadowghost
  • Fix going to parent folder in directory browser [PR #4171], by @nielsvanvelzen
  • Fix SubtitleUploader [PR #4150], by @dmitrylyzo
  • Remove like/dislike filter [PR #4157], by @nielsvanvelzen
  • Migrate plugin config pages to react-router [PR #4143], by @thornbill
  • Fix subtitle uploader on TV layout [PR #4147], by @jsayol
  • Set minimum version of npm [PR #4131], by @brianjmurrell
  • Migrate admin routes to react router [PR #4132], by @thornbill
  • Fix resolving of the history back Promise [PR #4138], by @dmitrylyzo
  • Exclude location.state from effect dependencies [PR #4134], by @thornbill
  • Migrate all legacy user views to react router [PR #4095], by @thornbill
  • Convert Movies to react [PR #3792], by @grafixeyehero
  • Refactor ConnectionState to a shared enum [PR #4083], by @thornbill
  • Accept arbitrary precision for community rating [PR #4094], by @CrispyBaguette
  • Fix sdk dependencies in lockfile [PR #4113], by @thornbill
  • Fix chunk names [PR #4110], by @thornbill
  • Fix sdk import [PR #4109], by @grafixeyehero
  • Fix label creation for plugin search input (#4079) [PR #4103], by @darmiel
  • Add search bar for plugin catalogue [PR #4081], by @darmiel
  • Move castSenderApi to plugin directory [PR #4102], by @thornbill
  • Fix pointer events not propogating to dashboard pages [PR #4101], by @thornbill
  • Add search bar for installed plugins [PR #4079], by @darmiel
  • fix build Windows [PR #4099], by @dmitrylyzo
  • Fix AlphaPicker padding [PR #4098], by @dmitrylyzo
  • Update all documentation links to new website [PR #4086], by @nielsvanvelzen
  • Fix self.getOffset is not a function [PR #4088], by @grafixeyehero
  • Fix double routing of root path [PR #4084], by @thornbill
  • Add eslint no-shadow rule and fix violations [PR #4058], by @Aimekram
  • Add directory structure to README [PR #4075], by @thornbill
  • Add cross-env to fix windows builds [PR #4072], by @thornbill
  • Enable react strict mode [PR #4067], by @thornbill
  • Add toPercent utility for compatibility [PR #4057], by @thornbill
  • Remove string replaceAll implementations [PR #4054], by @thornbill
  • Fix button group position on ItemDetails [PR #4056], by @dmitrylyzo
  • Remove apiclient appstorage usage [PR #4052], by @thornbill
  • Add Initial support for RTL layouts [PR #3743], by @hadicharara
  • Replace apiclient event bus with local version [PR #4050], by @thornbill
  • Move skinBody class to root react element [PR #4036], by @thornbill
  • Enable eslint sonar prefer-object-literal [PR #4032], by @thornbill
  • Fix bundle names for packages under namespaces [PR #4031], by @thornbill
  • Add es-check to verify builds produce valid es5 code [PR #4026], by @thornbill
  • Fix sonarjs prefer-single-boolean-return [PR #4001], by @thornbill
  • Use setup-node built-in npm cache [PR #4027], by @thornbill
  • Fix sonarjs no-small-switch [PR #4014], by @thornbill
  • Enable eslint array-callback-return foreach checking [PR #4025], by @thornbill
  • Add Home Assistant to device images [PR #4020], by @ctalkington
  • Fix legacy browsers [PR #4009], by @dmitrylyzo
  • Fix sonarjs no-redundant-jump [PR #4013], by @thornbill
  • Add chapter markings to video player slider [PR #3745], by @Viperinius
  • Remove resizeObserver [PR #4010], by @dmitrylyzo
  • Fix sonarjs no-identical-functions [PR #4000], by @thornbill
  • Fix sonarjs no-duplicated-branches [PR #3999], by @thornbill
  • Add no-useless-constructor eslint rule and fix issues [PR #3989], by @thornbill
  • Fix "major" sonar issues [PR #3992], by @thornbill
  • Add no-return-assign eslint rule and fix issues [PR #3990], by @thornbill
  • Fix dialog closing flow [PR #3987], by @dmitrylyzo
  • Fix sonar issues [PR #3980], by @thornbill
  • Fix sonarjs no-collapsible-if [PR #3983], by @thornbill
  • Move SyncPlay code to a plugin [PR #3976], by @thornbill
  • Add sonarjs eslint plugin [PR #3974], by @thornbill
  • Upgrade to node 16 [PR #3972], by @thornbill
  • Only allow jsx in jsx/tsx files [PR #3968], by @thornbill
  • Add mini css plugin for production builds [PR #3966], by @thornbill
  • Fix styling issues in book readers [PR #3965], by @thornbill
  • Add epubjs theme support to the book player [PR #3942], by @carif
  • Defer loading of swiper until used [PR #3941], by @thornbill
  • Fix PDF reader dark theme [PR #3939], by @kristiankauffeld
  • Include collections in search [PR #3767], by @Viperinius
  • Fix failures to open secondary action sheet in html video player [PR #3900], by @is343
  • ComicsPlayer: Toggle buttons for page direction and double page view [PR #3898], by @meet-k-pandya
  • Update to @jellyfin/sdk package [PR #3908], by @thornbill
  • Add comic and book viewer to dark theme [PR #3855], by @rourien
  • Fix fullscreen scrobble not working for Audiobooks [PR #3899], by @Mystery14
  • Webpack build improvements [PR #3879], by @thornbill
  • Convert Home to react [PR #3567], by @grafixeyehero
  • Fix scroll buttons not showing on resize [PR #3870], by @leondeklerk
  • Fix loading indicator showing when loaded [PR #3865], by @thornbill
  • Set mp2 unsupported for android devices [PR #3859], by @lomion0815
  • Fix broken link for subtitles help [PR #3803], by @ireun
  • Use org default renovate config for nodejs [PR #3807], by @thornbill
  • Make comic page not overflow horizontally [PR #3777], by @rourien
  • Update lockfile [PR #3801], by @nielsvanvelzen
  • Update NPM lockfile to version 2 [PR #3799], by @nielsvanvelzen
  • Enable no-throw-literal eslint rule and fix errors [PR #3798], by @Stromwerk
  • Enable no-return-await eslint rule [PR #3796], by @Stromwerk
  • Remove unused underscore in fetchhelper.js [PR #3795], by @Stromwerk
  • Add random sorting to songs [PR #3762], by @murphy52589
  • Migrate to react router [PR #3733], by @grafixeyehero
  • Add shuffle to songs page [PR #3741], by @murphy52589
  • Fix unhandled rejection for invalid response [PR #3742], by @thornbill
  • Add vscode configuration to fix issues on saving [PR #3731], by @thornbill
  • Save series images under season, when browsing parent images for season [PR #3729], by @SenorSmartyPants
  • Fix resume not working on LG WebOS [PR #3724], by @samcon
  • Fix 6ch audio is disabled on AC3 supported browsers [PR #3722], by @nyanmisaka
  • Fix stream selection remembering [PR #3721], by @Shadowghost
  • Fix device logos for various clients [PR #3720], by @Shadowghost
  • Expose DoVi metadata and VideoRangeType [PR #3719], by @nyanmisaka
  • Add maximum allowed video resolution selector [PR #3717], by @dmitrylyzo
  • Recognize MIME for transcoded audio in streams [PR #3716], by @Orhideous
  • Expose VPP TM brightness/contrast gain options [PR #3714], by @nyanmisaka
  • Add VideoRangeType condition for web client [PR #3713], by @nyanmisaka
  • Cleanup and standardise Fedora build (web) [PR #3571], by @mihawk90
  • Fix empty avatar when upload same profile image [PR #3704], by @zhuangzhuang
  • Remove MPEG4 hwaccel from AMF [PR #3701], by @nyanmisaka
  • Remove unused Screenshot code [PR #3651], by @grafixeyehero
  • use import instead of global for ItemsByName & PlaylistViewer [PR #3615], by @grafixeyehero
  • Add random sorting [PR #3631], by @aivit
  • Remove hash bang paths [PR #3688], by @thornbill
  • Show PlaySettings button even if transcoding isn't supported [PR #3668], by @dmitrylyzo
  • Eslint no sequences [PR #3609], by @sancodes
  • Bump @jellyfin/libass-wasm from 4.1.0 to 4.1.1 [PR #3664], by @dmitrylyzo
  • Support searching for tv programs [PR #3662], by @1337joe
  • Enable Lint job on release branches [PR #3667], by @dmitrylyzo
  • Fix import [PR #3666], by @grafixeyehero
  • Fix import [PR #3661], by @jtcasper
  • Add workaround for channel card images [PR #3658], by @thornbill
  • Remove play button highlighting [PR #3657], by @dmitrylyzo
  • Disable "Automatically add to collection" by default [PR #3647], by @1337joe
  • Migrate to @jellyfin/[email protected] [PR #3644], by @dmitrylyzo
  • Resolve worker URLs [PR #3643], by @dmitrylyzo
  • Change CSS font-family by language preference [PR #3642], by @taku0
  • Add WebP to the page detection list for comics [PR #3637], by @carif
  • Add missing languages [PR #3639], by @rhld16
  • Fix SSA/ASS missing font [PR #3635], by @dmitrylyzo
  • Fix artists album lists [PR #3628], by @thornbill
  • Fix backdrop being used on large screens in mobile layout [PR #3618], by @thornbill
  • Restore external links on mobile [PR #3622], by @thornbill
  • Fix iPadOS icon [PR #3617], by @thornbill
  • Revert some poor translations [PR #3616], by @thornbill
  • Check undefined streamInfo.url [PR #3614], by @dmitrylyzo
  • Fix custom element creation [PR #3604], by @thornbill
  • Restore sort order and fix strm usecase [PR #3543], by @Shadowghost
  • add eslint no-nested-ternary rule and fix violations [PR #3603], by @ryan-hartzell
  • Refactoring duplicate code [PR #3076], by @grafixeyehero
  • Use text input in Quick Connect page [PR #3597], by @nielsvanvelzen
  • Fix SD filter state [PR #3577], by @thornbill
  • Remove functionality from app router [PR #3585], by @thornbill
  • Replace deprecated String.prototype.substr() [PR #3582], by @CommanderRoot
  • Fix card selector for tv layout [PR #3586], by @thornbill
  • Add support for MPEG-1 Layer II audio for Chrome and Firefox [PR #3414], by @knackebrot
  • Fix underline in card images [PR #3573], by @thornbill
  • Move backdrop transparency method to component [PR #3560], by @thornbill
  • Remove custom equality check functions [PR #3559], by @thornbill
  • Refactor NavigationDrawer to Es6-class [PR #3553], by @grafixeyehero
  • Fix 'resume' when clicking on item details poster [PR #3535], by @dmitrylyzo
  • Fix touch events in epub player [PR #3547], by @thornbill
  • Add linting for config files and scripts [PR #3562], by @thornbill
  • Fix styling in eslintrc.js [PR #3561], by @thornbill
  • add eslint novoid [PR #3509], by @sancodes
  • Add some tips for the enhanced NVDEC decoder [PR #3523], by @nyanmisaka
  • Use toBoolean from string utils [PR #3558], by @thornbill
  • Remove duplicate appRouter.param function [PR #3556], by @thornbill
  • Move utility files [PR #3554], by @thornbill
  • Fix url search in hash [PR #3551], by @thornbill
  • Correct Typo [PR #3525], by @whiteowl3
  • Fix rewatching next up status [PR #3527], by @thornbill
  • Escape HTML [PR #3519], by @dmitrylyzo
  • Add error catching when loading home screen tab [PR #3544], by @thornbill
  • Remove some functions from the global scope [PR #3548], by @thornbill
  • Disable renovate vulnerability PRs [PR #3545], by @thornbill
  • Move screensavermanager to scripts [PR #3538], by @thornbill
  • Add no-duplicate-imports rule and fix issue [PR #3539], by @thornbill
  • Remove setTitle function in app router [PR #3536], by @thornbill
  • Cleanup duplication in webpack dev config [PR #3534], by @thornbill
  • Update libraries comments that reference Vue migration [PR #3537], by @thornbill
  • Remove broken method of registering routes for plugins [PR #3531], by @thornbill