Commit Graph

29543 Commits

Author SHA1 Message Date
WizardOfYendor1 3a4dff8cc4 Fix live stream consumer leak when PositionTicks is negative
When a stalled HLS client sends ReportPlaybackStopped with a negative
PositionTicks (e.g. HLS.js reporting position on buffer stall), the
ArgumentOutOfRangeException was thrown before GetSession was called,
causing CloseLiveStreamIfNeededAsync to never run. This left the
ILiveStream.ConsumerCount permanently incremented, permanently holding
a tuner open with no active viewer.

Fix by acquiring the session and performing live stream cleanup before
throwing the validation exception, so tuner resources are always freed
even when playback reporting fails with invalid position data.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 20:11:26 -04:00
Bond-009 e807575dc7 Merge pull request #16471 from jellyfin/renovate/swashbuckle-aspnetcore-monorepo
Update swashbuckle-aspnetcore monorepo to 10.1.7
2026-03-27 19:53:59 +01:00
Bond-009 ef83000b30 Merge pull request #16483 from jellyfin/renovate/pin-dependencies
Pin chrisdickinson/setup-yq action to fa3192e
2026-03-27 19:53:12 +01:00
Bond-009 6a20f948f4 Merge pull request #16222 from tyage/fix/filename-truncation-bracketed-tags
Fix filename truncation when bracketed tags appear mid-filename
2026-03-27 19:21:43 +01:00
Bond-009 bd6acb1686 Merge pull request #16442 from jellyfin/renovate/ci-deps
Update github/codeql-action action to v4.35.1
2026-03-27 19:16:25 +01:00
theguymadmax f33c039d1b Fix BoxSet parentId being ignored in item queries 2026-03-27 13:48:30 -04:00
renovate[bot] 40cadfca44 Update github/codeql-action action to v4.35.1 2026-03-27 17:36:22 +00:00
Joshua M. Boniface 0ba41754d8 Merge pull request #15841 from JanzenJohn/feat/fix-ipv6-crash
fix crashes on devices that don't support ipv6
2026-03-27 13:33:12 -04:00
renovate[bot] 6e154de954 Pin chrisdickinson/setup-yq action to fa3192e 2026-03-26 19:27:09 +00:00
Shadowghost 4fe3abdc0e Delete file-based playlists if empty/removed 2026-03-26 19:37:57 +01:00
Shadowghost 1219c5ec3b Add CACHEDIR.tag support 2026-03-26 13:14:42 +01:00
Shadowghost 2147f57df5 Fix triple digit episode number handling 2026-03-26 11:44:35 +01:00
Tim Eisele f793acc1aa Update Emby.Server.Implementations/Localization/LocalizationManager.cs
Co-authored-by: theguymadmax <theguymadmax@proton.me>
2026-03-26 10:06:50 +01:00
Lofuuzi 9c09e7113e Translated using Weblate (Chinese (Traditional Han script, Hong Kong))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/zh_Hant_HK/
2026-03-26 00:23:07 +00:00
Marc Brooks aa96ff42e6 Parse provider IDs from season and episode folder/file names
Season and episode directories/files can now include provider ID
attributes in their names (e.g. "Season 01 [tvdbid=22222]" or
"Show S01E01 [tmdbid=99999].mkv"), consistent with the existing
behavior for series folders.

Supported providers: imdbid, tvdbid, tvmazeid, tmdbid.

Adds TmdbSeasonExternalId and TmdbEpisodeExternalId so that
the TMDB season and episode IDs are surfaced in the metadata editor.

Seasons do not have their own IMDb IDs, so we don't support imdbid parsing
in SeasonResolver. Instead, generate IMDb season URLs via
ImdbExternalUrlProvider using the parent series' IMDb ID and the
season number, matching the IMDb URL format:
imdb.com/title/{seriesId}/episodes/?season={N}

Add tests for the ExternalUrlProviders.
2026-03-25 18:47:40 -05:00
renovate[bot] 5fa865f9e5 Update swashbuckle-aspnetcore monorepo to 10.1.7 2026-03-25 23:01:19 +00:00
Bond-009 bcc748e664 Update swashbuckle-aspnetcore monorepo to 10.1.6 (#16461)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-25 18:28:03 +01:00
Francisco Ernesto Planas Pestana e065015d6d Fix #16308: Community ratings not updating after changing .nfo file.
When "replace all metadata" was issued on a film, with the Web metadata
scrapers and "save to local metadata" disabled, after changing the
.nfo file, 'Community rating' was not updated in the server, remaining
the cached value.

Fixed by changing the flag on the 'MergeData' call
(line 809 - MetadataService.cs) to use the option defined by the
user and not the erroneous absolute 'false' value.

Also, in the .nfo parser an option for 'communityrating' was added
along with value conformity verifiers.

Validation tests were added.
2026-03-25 14:07:53 +00:00
dkanada 6b443bb2ec split openapi workflows between pull request and merge 2026-03-25 15:39:31 +09:00
Joshua M. Boniface fec78c8448 Lint for the Linter Gods 2026-03-24 22:31:17 -04:00
Joshua M. Boniface c22933260b Fix linting issue 2026-03-24 22:23:48 -04:00
renovate[bot] 8fc6f07d5a Update swashbuckle-aspnetcore monorepo to 10.1.6 2026-03-24 21:59:16 +00:00
scheilch 386c4cb723 Fix int32 overflow in QSV rate-control parameter computation (#16376)
Fix int32 overflow in QSV rate-control parameter computation
2026-03-24 18:02:00 +01:00
Joshua M. Boniface 965b602c68 Apply suggestions from code review
Co-authored-by: JPVenson <ger-delta-07@hotmail.de>
2026-03-23 23:09:56 -04:00
Joshua M. Boniface 8142bbd50e Properly define variable type 2026-03-23 17:22:35 -04:00
Joshua M. Boniface 418beafebb Update FolderStorageInfo record 2026-03-23 17:15:49 -04:00
Joshua M. Boniface 434ebc8b11 Ensure ResolvedPath is sent on error too 2026-03-23 17:11:29 -04:00
Joshua M. Boniface 300036c859 Fix FolderStorageInfo to show parent filesystem
A direct implementation using DriveInfo directly on a path does not work
as expected. The method will return a DriveInfo object with the given
path as both the Name and the RootDirectory, which is not helpful.

Instead, add parsing logic to find the best possible match out of all
filesystems on the system for the path, including handling edge cases
involving symlinked paths in the chain.

This ensures that the resulting DeviceId is a valid filesystem, allowing
it to be used in the UI to show a better description. It also includes
the new ResolvedPath which will show, if required, what the Path
resolved to after all symlinks are interpolated.

One possible issue here is that walking all drives as-is might become
slow(er) on a system with many partitions, but even on my
partition-heavy system with over a dozen ZVOLs and remote mounts, this
takes under 0.4 seconds including runup time for `dotnet run`, so I
imagine this should be fine.
2026-03-23 17:08:15 -04:00
theguymadmax 24ec04d89f Backport pull request #16449 from jellyfin/release-10.11.z
Fix NFO saver using wrong provider ID for collectionnumber

Original-merge: ce867f9834

Merged-by: Bond-009 <bond.009@outlook.com>

Backported-by: Bond_009 <bond.009@outlook.com>
2026-03-23 17:06:23 -04:00
nyanmisaka b82a2ced75 Backport pull request #16423 from jellyfin/release-10.11.z
Fix readrate options in FFmpeg 8.1

Original-merge: 29b2361857

Merged-by: Bond-009 <bond.009@outlook.com>

Backported-by: Bond_009 <bond.009@outlook.com>
2026-03-23 17:06:22 -04:00
Bond-009 568e26c534 Merge pull request #15593 from dkanada/book-provider-ids
include external IDs and URLs for book providers
2026-03-23 21:25:11 +01:00
lednurb f52005768a Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/nl/
2026-03-22 16:15:43 +00:00
dkanada a0d1e05696 migrate local comic providers to server codebase 2026-03-21 12:02:22 +09:00
Lofuuzi f6211a03dd Translated using Weblate (Chinese (Traditional Han script, Hong Kong))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/zh_Hant_HK/
2026-03-20 19:32:38 +00:00
Louis 995d56d5ff Recognize ".m4b", ".m4a", ".aac", ".flac", ".mp3", and ".opus" as an audio-book formats (#15377)
* Recognize ".m4b" as an audio-book format

- Has the resolver recognize the ".m4b" format as book
  - Jellyfin reverts to seeing the file as a music file without this check

* Recognize ".m4a", ".aac", ".flac", and ".mp3" as an audio-book formats

- All the formats supported in the docs will now be marked as type "Book"

* Add ".opus" as a supported Audiobook format

---------

Co-authored-by: Louis Sandoval <louis@sandoval.family>
2026-03-19 20:31:29 +01:00
Lofuuzi 63a7c71e77 Translated using Weblate (Chinese (Traditional Han script, Hong Kong))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/zh_Hant_HK/
2026-03-19 10:34:54 +00:00
Ärik dc4d3639e0 Translated using Weblate (Swedish)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/sv/
2026-03-18 00:45:21 +00:00
renovate[bot] d88dd1dd63 Update dependency coverlet.collector to 8.0.1 (#16428)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-17 19:28:30 +01:00
Lofuuzi a2fba38954 Translated using Weblate (Chinese (Traditional Han script, Hong Kong))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/zh_Hant_HK/
2026-03-17 15:29:40 +00:00
Lofuuzi 54856dc026 Translated using Weblate (Chinese (Traditional Han script, Hong Kong))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/zh_Hant_HK/
2026-03-17 00:49:12 +00:00
renovate[bot] dbd58dd666 Update CI dependencies (#16417)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-16 20:10:01 +01:00
Lofuuzi dbc42bb8e2 Translated using Weblate (Chinese (Traditional Han script, Hong Kong))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/zh_Hant_HK/
2026-03-15 15:48:06 +00:00
Lofuuzi f6a5b27efc Translated using Weblate (Chinese (Traditional Han script, Hong Kong))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/zh_Hant_HK/
2026-03-15 06:49:44 +00:00
Shadowghost ebc15d3e27 Handle removed alternates 2026-03-14 20:26:40 +01:00
Lofuuzi c0c4740215 Translated using Weblate (Chinese (Traditional Han script, Hong Kong))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/zh_Hant_HK/
2026-03-14 19:01:44 +00:00
Shadowghost 98bbc26c5e Add callback for segment data pruning to IMediaSegmentProvider 2026-03-14 19:58:43 +01:00
Shadowghost 4b48cad6f7 Don't throw if path is missing 2026-03-14 19:57:18 +01:00
Benjamin Lea d65960fe5d Translated using Weblate (Hebrew (Israel))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/he_IL/
2026-03-14 00:53:45 +00:00
Shadowghost 27d54c5b1c Fix IsResumable and IsPlayed filter 2026-03-13 22:46:42 +01:00
nyanmisaka 31adb5dcd1 Backport pull request #16392 from jellyfin/release-10.11.z
Fix filter detection in FFmpeg 8.1

Original-merge: 55c00d76bb

Merged-by: Bond-009 <bond.009@outlook.com>

Backported-by: Bond_009 <bond.009@outlook.com>
2026-03-13 15:33:08 -04:00