Commit Graph

29209 Commits

Author SHA1 Message Date
Marc Brooks 617ebf367f Fix path transversal exposure in Plugins
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-26 12:05:54 -05:00
cloudharps b9db4566a7 Translated using Weblate (Korean)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ko/
2026-06-26 04:51:39 +00:00
Joshua M. Boniface d71b17fcc7 Merge pull request #17153 from joshuaboniface/fix-FixIncorrectOwnerIdRelationships
Fix too many SQL variables in DeleteItem for large batch deletes
2026-06-26 00:51:36 -04:00
nextlooper42 987744529a Translated using Weblate (Slovak)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/sk/
2026-06-23 08:15:55 +00:00
engineer948 917244ab1d Translated using Weblate (Azerbaijani)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/az/
2026-06-23 07:55:24 +00:00
engineer948 7f2cd5cf57 Added translation using Weblate (Azerbaijani) 2026-06-22 21:09:26 +00:00
Jensen da2b994fff Translated using Weblate (English (United States))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/en_US/
2026-06-22 06:20:06 +00:00
Jensen 7f7e4dfa40 Added translation using Weblate (English (United States)) 2026-06-22 04:52:24 +00:00
Joshua M. Boniface b60c535c84 Add progress logging and batch deletion for logs
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-21 23:31:25 -04:00
Joshua M. Boniface 069eb40ebf Fix too many SQL variables in DeleteItem for large batch deletes
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-21 23:03:45 -04:00
Bond-009 4e80648fd3 Merge pull request #17146 from theguymadmax/fix-identify-search
Fix Identify returning wrong results
v12.0-rc1
2026-06-21 19:03:52 +02:00
Bond-009 f08a3f9fd9 Merge pull request #17090 from moontwister/fix/audio-sample-rate-non-opus-17026
Fix audio sample rate forced to 48 kHz for non-Opus codecs
2026-06-21 19:01:18 +02:00
Bond-009 083f9d291a Merge pull request #17094 from moontwister/fix/trailers-nullref-controllercontext-17065
Deprecate the redundant /Trailers endpoint
2026-06-21 19:00:23 +02:00
danne e4383493a9 Fix audio sample rate forced to 48 kHz for non-Opus codecs
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-21 09:43:31 +02:00
theguymadmax ce58e4400e Fix Identify returning wrong results 2026-06-20 22:30:52 -04:00
Bond-009 3741d71965 Merge pull request #17116 from theguymadmax/fix-root-folder-parsing 2026-06-21 00:10:26 +02:00
Žiga Ules 11f642594d Translated using Weblate (Slovenian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/sl/
2026-06-20 12:46:03 +00:00
AfmanS 8d15529df7 Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/pt_PT/
2026-06-20 12:46:03 +00:00
danne e75161c557 Deprecate the redundant /Trailers endpoint
GET /Trailers is a thin alias for GET /Items with includeItemTypes=Trailer;
it just forwards to the injected ItemsController. Per the PR review the agreed
direction is to deprecate it rather than keep maintaining the delegation.

Mark the action [Obsolete] so it is flagged as deprecated in the OpenAPI spec;
clients should use the GetItems operation with includeItemTypes=Trailer instead.

Re #17065
2026-06-19 07:03:58 +02:00
Bond-009 308981cc0d Merge pull request #14935 from JadedRain/master
Fixed "Deleting media that is still being watched in SyncPlay results in errors"
2026-06-18 17:46:33 +02:00
Bond-009 bebb7ce803 Merge pull request #17112 from theguymadmax/add-year-to-series-resolver
Fix series year lost during name parsing
2026-06-18 17:46:23 +02:00
Bond-009 1a6f019cfd Merge pull request #17121 from theguymadmax/fix-date-offset
Fix episode air date offset after initial scan
2026-06-18 17:46:07 +02:00
Bond-009 751b763838 Merge pull request #17099 from Bond-009/libraryimport
Follow native interoperability best practices
2026-06-18 17:45:55 +02:00
theguymadmax 64e02c0e28 Apply review feedback 2026-06-17 15:41:31 -04:00
Bond-009 49f8a96360 Merge pull request #17087 from dkanada/book-resolver
improve book resolution from filename
2026-06-17 20:54:49 +02:00
Bond-009 364f1e12c0 Merge pull request #17106 from Shadowghost/extend-transcoding-reason-reporting
Extend TranscodingReason reporting
2026-06-17 20:49:30 +02:00
Bond-009 ada11f5692 Always apply recursive when filters are requested (#17088) 2026-06-17 20:45:52 +02:00
Rant423 5036bf7db0 Fetch TV Shows creators from TMDB (#17107)
Fetch TV Shows creators from TMDB
2026-06-17 20:39:33 +02:00
Bond-009 1c4dea4b2c Merge pull request #17118 from jellyfin/renovate/sharpfuzz-2.x
Update dependency SharpFuzz to 2.3.0
2026-06-17 20:36:22 +02:00
theguymadmax e525fc7c4b Fix episode air date offset after initial scan 2026-06-16 18:02:26 -04:00
Darren 3307406ac8 Translated using Weblate (Indonesian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/id/
2026-06-16 16:23:01 +00:00
Bond_009 e86b502cbc Strip null-terminator 2026-06-16 17:54:23 +02:00
Bond_009 4c228eaf63 Make sure we don't include the null terminator 2026-06-16 17:45:22 +02:00
renovate[bot] 1176c2d329 Update dependency SharpFuzz to 2.3.0 2026-06-16 11:32:11 +00:00
theguymadmax b9271eb199 Skip parsing root-level folders in SeriesResolver 2026-06-15 19:37:39 -04:00
Rohith e2433e2c79 Translated using Weblate (Kannada)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/kn/
2026-06-15 20:31:51 +00:00
Bond_009 0022508889 Add regression test 2026-06-15 21:20:06 +02:00
Bond_009 a9a02719ab Fix type of length arguments 2026-06-15 21:01:28 +02:00
Bond_009 d50205cc9f Follow native interoperability best practices
https://learn.microsoft.com/en-us/dotnet/standard/native-interop/best-practices
2026-06-15 21:01:28 +02:00
Bond-009 e4edce9a70 Merge pull request #17074 from jellyfin/renovate/sharpcompress-0.x
Update dependency SharpCompress to 0.49.1
2026-06-15 20:56:39 +02:00
Bond_009 ac92da233b await instead of returning Task 2026-06-15 20:41:30 +02:00
Bond_009 f6bb086415 fix build errors 2026-06-15 18:52:20 +02:00
renovate[bot] 9375f31bd3 Update dependency SharpCompress to 0.49.1 2026-06-15 16:28:58 +00:00
Bond-009 a0862a4cb5 Merge pull request #17109 from jellyfin/renovate/serilog.settings.configuration-10.x
Update dependency Serilog.Settings.Configuration to 10.0.1
2026-06-15 18:23:06 +02:00
Bond-009 2d8ab1e2ec Merge pull request #17089 from Bond-009/sharpcompress
Replace usage of SharpCompress
2026-06-15 18:18:49 +02:00
theguymadmax 068bbb7981 Fix series year lost during parsing 2026-06-15 11:42:17 -04:00
Shadowghost f9644f24d2 Fix tests 2026-06-15 11:42:48 +02:00
renovate[bot] 8d0003533e Update dependency Serilog.Settings.Configuration to 10.0.1 2026-06-15 08:45:54 +00:00
Shadowghost 1dd5a85080 Extend TranscodingReason reporting 2026-06-15 09:29:24 +02:00
Franco Castillo f5c3e2c65a Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/es_AR/
2026-06-15 02:39:03 +00:00