aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-06-27Merge pull request #17154 from joshuaboniface/enhance-startup-uxCody Robibero
Revamp startup UI for visual style and usability
2026-06-27Merge pull request #17134 from theguymadmax/replace-embedded-lyricsCody Robibero
Fix embedded lyrics not updating on replace all refresh
2026-06-27Merge pull request #17187 from Shadowghost/fix-localization-lookupCody Robibero
Fix localization lookup
2026-06-27Merge pull request #17178 from jellyfin/fix-livetv-sessionsCody Robibero
Fix Live TV tuner not releasing
2026-06-27Merge pull request #17188 from Shadowghost/fix-local-pluginsCody Robibero
Fix local Comic book plugin registration
2026-06-27Merge pull request #17182 from Shadowghost/vacuum-noscanCody Robibero
Don't run heavy DB tasks while scan is running
2026-06-27Translated using Weblate (Galician)Manuel Cid
Translation: Jellyfin/Jellyfin Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/gl/
2026-06-26Fix path transversal exposure in PluginsMarc Brooks
The request path is not validated to a valid path and could allow escaping the transcode path and downloading of any arbitrary file in GetHlsPlaylistLegacy . GetHlsAudioSegmentLegacy and GetHlsVideoSegmentLegacy have the same issue, and are NOT behind an Authorize so they are publicly exploitable. Added a ValidateTranscodePath that verifies that requested file paths start with the transcode path setting. Also ensure that all filename comparisons are OrdinalIgnoreCase because we might be running on a filesystem where filename-casing doesn't have to match. Switched from InvariantCulture because the underlying OS filename comparisons are always byte-wise (with case insensitivity here). Fixed a similar issue in GetPluginImage
2026-06-26Fix Book collections scanning all itemsMarc Brooks
Added static method GetBaseItemKindsForCollectionType in ItemsController (moved from ContentFolderImageProvider to be shared) Added AudioBook to GetRepresentativeItemTypes for CollectionType.books for consistency Added GetBooks to GetUserItems for CollectionType.books which gets BaseItemKind.Book and BaseItemKind.AudioBook Move GetBaseItemKindsForCollectionType to DtoExtensions Cleaned up the missing null checks and used new collection expressions. Associate Person to Book and AudioBook for related items.
2026-06-26Fix local plugin registrationShadowghost
2026-06-26Fix localization lookupShadowghost
2026-06-26Skip backups whens can is runningShadowghost
2026-06-26Translated using Weblate (Korean)cloudharps
Translation: Jellyfin/Jellyfin Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ko/
2026-06-26Merge pull request #17153 from ↵Joshua M. Boniface
joshuaboniface/fix-FixIncorrectOwnerIdRelationships Fix too many SQL variables in DeleteItem for large batch deletes
2026-06-26Update CI dependenciesrenovate[bot]
2026-06-25Only process items with tmdb idShadowghost
2026-06-25Don't run heavy DB tasks while scan is runningShadowghost
2026-06-25Set TMDb id in season providerShadowghost
2026-06-25Add TMDb missing episode providerShadowghost
2026-06-25Add a cancelable redirect handoff and drop the transitional migration statusJoshua M. Boniface
When the server finishes starting, show "Jellyfin started successfully" with a 5-second "Redirecting in N…" countdown and a Cancel button instead of reloading immediately. Cancel stops the countdown and the background refresh so the startup output can be reviewed, and offers a "Continue to Jellyfin" button to reload manually. The buttons use the web client's emby-button styling. Also drop the transitional "Applying migrations" activity: it only showed briefly while the pending migration set was read, or for the whole step when nothing was pending, so startup now goes from "Preparing migrations" straight into "Running migration X of Y".
2026-06-25Improve UX to fully match Jellyfin dashboardsJoshua M. Boniface
2026-06-24Fix Live TV tuner not releasingtheguymadmax
2026-06-23Use Convert.ToHexStringLower for Schedules Direct password hashBreno Alvim
2026-06-23Fix SonarCloud warnings854562
2026-06-23Rework bitrate reportingShadowghost
2026-06-23Update Microsoftrenovate[bot]
2026-06-23Translated using Weblate (Slovak)nextlooper42
Translation: Jellyfin/Jellyfin Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/sk/
2026-06-23Translated using Weblate (Azerbaijani)engineer948
Translation: Jellyfin/Jellyfin Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/az/
2026-06-22Batch duplicate-cleanup deletes in merge migrationsShadowghost
2026-06-22Added translation using Weblate (Azerbaijani)engineer948
2026-06-22Update swashbuckle-aspnetcore monorepo to 10.2.3renovate[bot]
2026-06-22Truncate ISO-639-2 language display names at first delimiter854562
Prevents raw ISO-639-2 values (e.g. "Greek, Modern (1453-)" from cluttering the audio and subtitle display names by truncating them at the first comma or semicolon ("Greek"). Applies to MediaStreamRepository and ProbeResultNormalizer.
2026-06-22Remove server version from page titleJoshua M. Boniface
This leaks additional information publicly, and is not really necessary/useful.
2026-06-22Translated using Weblate (English (United States))Jensen
Translation: Jellyfin/Jellyfin Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/en_US/
2026-06-22Added translation using Weblate (English (United States))Jensen
2026-06-22Make the startup log a bounded, soft-refreshing scrolling viewportJoshua M. Boniface
Order the startup log oldest-to-newest inside a height-bounded panel that scrolls internally and never extends past the bottom of the window. Refresh it with a background fetch that swaps the log list in place instead of reloading the whole page, preserving the user's scroll position and only following to the bottom when they are already there. A full page reload now happens only on the final transition to the running server or to the error state.
2026-06-22Restyle the startup UI and add a generic startup activity lineJoshua M. Boniface
Restyle the startup/migration holding page to match the Jellyfin dark theme, with the inline wordmark logo, a gradient spinner and a recolored startup log tree, and move the Morestachio template rendering into a reusable StartupUiRenderer. Add a curated, non-identifying "current activity" line to the always-visible header (for example "Initializing server" or "Running migration X of Y"), reported from the startup flow and the migration service so it never leaks server details to unauthenticated clients. Move the log download into a "Download logs" link in the log panel header, and show only the header, with no log hints, to non-local clients.
2026-06-21Add progress logging and batch deletion for logsJoshua M. Boniface
After resolving duplicates the migration deleted all items in one silent pass (per-id GetItemById plus a single DeleteItemsUnsafeFast), which looks hung for minutes on large libraries. Delete in batches of 500 and log progress per batch, which also avoids one oversized delete transaction.
2026-06-21Fix too many SQL variables in DeleteItem for large batch deletesJoshua M. Boniface
The FixIncorrectOwnerIdRelationships migration deletes all duplicate items in a single DeleteItemsUnsafeFast -> DeleteItem(ids) call. Inside DeleteItem, the owned-extras lookup used a raw HashSet.Contains, which EF inlines as one SQL variable per id and overflows SQLite's variable limit on large libraries. Use WhereOneOrMany so the id set is bound as a single json_each parameter, like the rest of the method, making bulk deletes work for unlimited library sizes.
2026-06-21Fix Identify returning wrong imagestheguymadmax
2026-06-21Merge pull request #17146 from theguymadmax/fix-identify-searchv12.0-rc1Bond-009
Fix Identify returning wrong results
2026-06-21Merge pull request #17090 from moontwister/fix/audio-sample-rate-non-opus-17026Bond-009
Fix audio sample rate forced to 48 kHz for non-Opus codecs
2026-06-21Merge pull request #17094 from ↵Bond-009
moontwister/fix/trailers-nullref-controllercontext-17065 Deprecate the redundant /Trailers endpoint
2026-06-21Fix audio sample rate forced to 48 kHz for non-Opus codecsdanne
GetProgressiveAudioFullCommandLine applied the libopus-only sample rate quantization to every codec except Opus, inverting the intended guard. A requested rate such as 44100 Hz was therefore snapped to 48000 Hz for AAC/MP3/FLAC, while Opus (which actually requires the quantization) was skipped entirely. Apply the quantization only when the output codec is Opus, and pass the requested sample rate through unchanged for all other codecs. Fixes #17026 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20Fix Identify returning wrong resultstheguymadmax
2026-06-21Merge pull request #17116 from theguymadmax/fix-root-folder-parsingBond-009
2026-06-20Translated using Weblate (Slovenian)Žiga Ules
Translation: Jellyfin/Jellyfin Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/sl/
2026-06-20Translated using Weblate (Portuguese (Portugal))AfmanS
Translation: Jellyfin/Jellyfin Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/pt_PT/
2026-06-19Reorder ValidatePeopletheguymadmax
2026-06-19Surface the played version for resumeShadowghost