aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Api/Controllers
AgeCommit message (Collapse)Author
3 daysMerge pull request #17299 from Speenah/fix/hls-subtitle-timingSpeenah
Fix fMP4 HLS subtitle timestamp map offset
9 daysReturn the created API key from POST /Auth/Keys (#17155)iven
* Return the created API key from POST /Auth/Keys * Keep the other API key fields in the DTO
11 daysBackport pull request #18300 from jellyfin/release-12.ztheopeuchlestrade
Use hvc1 for Dolby Vision profile 8 Original-merge: 173ee6947286d36cdb0ba86bbe9676770c57e27b Merged-by: crobibero <cody@robibe.ro> Backported-by: Cody Robibero <cody@robibe.ro>
11 daysBackport pull request #18280 from jellyfin/release-12.zShadowghost
Only propagate a changed rating to children that follow it Original-merge: 1d5590d02ac04d857e73a4e4406b0801589d3368 Merged-by: crobibero <cody@robibe.ro> Backported-by: Cody Robibero <cody@robibe.ro>
11 daysBackport pull request #18253 from jellyfin/release-12.ztheguymadmax
Update episode season name after editing the season name Original-merge: 22594525a453e48d6b410aaa5c7623a3d1244df1 Merged-by: crobibero <cody@robibe.ro> Backported-by: Cody Robibero <cody@robibe.ro>
11 daysBackport pull request #18236 from jellyfin/release-12.zz0rimo
Fix user preferences when renaming libraries Original-merge: 9203258175c32b44052d2a0fc5bae9815697c80b Merged-by: crobibero <cody@robibe.ro> Backported-by: Cody Robibero <cody@robibe.ro>
11 daysBackport pull request #18186 from jellyfin/release-12.zklizas
Fix segment cleaner deleting segments ahead of playback when remuxing MKV Original-merge: 3acc9c8443d7ee445c4fe015f2977a47d4ea57ac Merged-by: crobibero <cody@robibe.ro> Backported-by: Cody Robibero <cody@robibe.ro>
2026-09-27Backport pull request #18168 from jellyfin/release-12.zShadowghost
Serve graphical subtitles as raw files with range support Original-merge: 4acfd6eb2e19cb8d258b240b01c766229cb1314c Merged-by: crobibero <cody@robibe.ro> Backported-by: Cody Robibero <cody@robibe.ro>
2026-09-15Backport pull request #18006 from jellyfin/release-12.zorut34iop
Preserve active scans when requesting a background library refresh Original-merge: 949e0585a65a91f90644a2475c1e1009e5d51e90 Merged-by: crobibero <cody@robibe.ro> Backported-by: Cody Robibero <cody@robibe.ro>
2026-09-15Backport pull request #17898 from jellyfin/release-12.zShadowghost
Populate missing tags array in Filters2 Original-merge: 3d52fbe84e78d6447465bb831039dabb6142ca67 Merged-by: crobibero <cody@robibe.ro> Backported-by: Cody Robibero <cody@robibe.ro>
2026-09-15Backport pull request #17881 from jellyfin/release-12.zShadowghost
Fix /UserViews exhausting memory and reporting random child counts Original-merge: a838a06aa51eac388a76e9e6421f1a80873c417b Merged-by: crobibero <cody@robibe.ro> Backported-by: Cody Robibero <cody@robibe.ro>
2026-09-06Merge pull request #17794 from Shadowghost/plugin-install-fixesCody Robibero
Better handle timeouts on plugin operations
2026-09-06Merge pull request #17763 from Shadowghost/fix-refresh-queue-and-directory-cacheCody Robibero
Fix items being lost from the refresh queue and bound the directory service caches
2026-09-06Apply review suggestionsShadowghost
2026-09-05Do not resolve bundled plugins via reposShadowghost
2026-09-04Invalidate the singleton DirectoryService cache on filesystem changesShadowghost
2026-09-03Reduce commentsShadowghost
2026-09-02Optimize CachesShadowghost
Co-Authored-By: Cody Robibero <cody@robibe.ro>
2026-09-01fix: return fallback gracefully when requested fallback font is missingzerafachris
GetFallbackFont() called .First() on the font file sequence, which throws System.InvalidOperationException when no file matched the requested name, causing HTTP 500. Change to .FirstOrDefault() so a missing font falls through to the existing null guard and returns HTTP 200 OK (the empty response is intentional to avoid breaking SubtitlesOctopus). Fixes #17683. Prepared with AI assistance (Claude Code, Anthropic), reviewed for correctness before submission. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-08-31Merge pull request #17724 from Shadowghost/fix-by-name-item-countsCody Robibero
Fix item counts on the by-name endpoints
2026-08-30Merge commit from forkCody Robibero
Fix broken access control in session management
2026-08-30Merge commit from forkCody Robibero
Secure library paths
2026-08-27Fix By-Name item count handlingShadowghost
2026-08-25Secure library pathsShadowghost
2026-08-23Fix GHSA-9x85-gx46-6522Shadowghost
2026-08-23Fix person metadata not being fetched on demand or by the people taskShadowghost
2026-08-22Merge pull request #17584 from Shadowghost/safeguard-invalid-provider-idsCody Robibero
Safeguard against invalid provider ids
2026-08-22Additional fixesShadowghost
Co-Authored-By: Cody Robibero <cody@robibe.ro>
2026-08-20Normalize fix, apply in more placesCody Robibero
2026-08-14Require session ownership for additional users, capabilities and viewing reportsShadowghost
2026-08-07Merge pull request #17536 from gnattu/fix-concurrent-racingCody Robibero
Fix concurrent ffmpeg segment racing
2026-08-05Fix concurrent ffmpeg segment racinggnattu
This is a nasty one. The failure mode is: 1. Request A started FFmpeg and waited for a segment. 2. Request B requested an earlier or far away segment. 3. Jellyfin thought FFmpeg should to restart at a different position. 4. Request B killed the existing transcoding job. 5. Killing that job cancelled the same token request A was using. 6. The cancellation produced http 500 to request A. To fix this: we lock transcoding job state changes and segment handling per playlist, and use a thread safe counter to track how many http responses are still using each job’s segments. A job is only stopped or replaced once that counter reaches zero.
2026-08-02Merge remote-tracking branch 'upstream/master' into fix-byname-queriesShadowghost
2026-08-02Merge pull request #17298 from WizardOfYendor1/fix/livetv-published-stream-urlsCody Robibero
Fix Live TV returning unreachable "server-local" streaming URLs to clients.
2026-08-01Merge remote-tracking branch 'upstream/master' into fix-byname-queriesShadowghost
# Conflicts: # src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/Migrations/JellyfinDbModelSnapshot.cs
2026-08-01Merge pull request #17501 from alchemyyy/fix/skip-sidx-fmp4-hlsCody Robibero
Skip SIDX in fMP4 HLS segments
2026-07-30Skip SIDX in fMP4 HLS segmentsalchemyyy
Prevent FFmpeg's SIDX path from rewriting open-GOP boundary packet timestamps. HLS uses the media playlist for segment indexing and does not require the SIDX box.
2026-07-28Restrict people, genres, studios and artists to names backed by an item the ↵Shadowghost
user can access
2026-07-27Queue person metadata refresh instead of blocking the item request and fix ↵Shadowghost
ItemCounts
2026-07-21Merge pull request #16980 from ↵Cody Robibero
TheMelmacian/feature/library_specific_language_filter_values Improve language filters to only fetch language codes that match the requested items/libraries (follow up to #9787)
2026-07-21Merge pull request #17370 from zerafachris/fix/item-update-null-optional-fieldsCody Robibero
fix: don't throw ArgumentNullException on partial UpdateItem payloads (#17366)
2026-07-21Merge pull request #17369 from Shadowghost/harden-startup-wizardCody Robibero
Prevent unauthenticated re-run of the startup wizard on misconfiguration
2026-07-21Make ItemUpdateController.UpdateItem internal instead of reflectionzerafachris
Addresses review feedback from @Bond-009 on PR #17370: the test helper InvokeUpdateItem was invoking the private UpdateItem(BaseItemDto, BaseItem) method via reflection. Jellyfin.Api.csproj already grants InternalsVisibleTo("Jellyfin.Api.Tests"), so the method is changed to internal and the test now calls it directly, removing the GetMethod/Invoke boilerplate. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-21Merge remote-tracking branch 'upstream/master' into ↵Shadowghost
security-path-traversal-fixes # Conflicts: # Jellyfin.Api/Controllers/HlsSegmentController.cs # Jellyfin.Api/Controllers/PluginsController.cs
2026-07-20Merge pull request #17324 from damienmeur/refactor/generic-getorderbyCody Robibero
Make RequestHelpers.GetOrderBy generic and reuse it in ActivityLogController
2026-07-18fix code styleTheMelmacian
2026-07-17Merge pull request #17326 from theguymadmax/update-series-nameBond-009
Update season and episode SeriesName when renaming a series
2026-07-17Merge pull request #17280 from Shadowghost/remove-image-override-hackBond-009
Remove episode image override hack
2026-07-17Merge pull request #17191 from IDisposable/fix/handler-path-traversalBond-009
Fix path transversal exposure in Plugins
2026-07-17fix: don't throw ArgumentNullException on partial UpdateItem payloads (#17366)zerafachris
BaseItemDto.Genres, .Tags, and .ProviderIds are plain auto-properties with no default initializer, so they deserialize to null when a client omits them from a partial POST /Items/{itemId} body. The OpenAPI spec documents every BaseItemDto field as optional, but ItemUpdateController.UpdateItem fed these three properties straight into Distinct()/Select()/ToList() without a null check, so a request that (for example) only sets Tags throws ArgumentNullException("source") once it reaches the unguarded Genres line, before Tags is even processed. Guard all three assignments with the same "if (request.X is not null)" pattern already used for the neighboring Studios/Taglines/ProductionLocations fields in this method, so omitted fields are left unchanged instead of crashing the request. Adds ItemUpdateControllerTests covering the reported repro (only Tags supplied) and a companion case asserting existing Genres/ProviderIds are preserved when omitted from the payload. Signed-off-by: zerafachris <christopher.zerafa@blocklabs.io>