Commit Graph

572 Commits

Author SHA1 Message Date
Shadowghost 3c9727d36c Always inherit from owner item and add tests 2026-07-25 17:17:30 +02:00
Shadowghost 6382563440 Prefer null checks over HasValue everywhere 2026-07-22 08:09:33 +02:00
dkanada 9e996d612c extract page count from archives and PDFs 2026-07-12 19:46:56 +09:00
theguymadmax c6c72f30ec Fix embedded lyrics not updating on replace-all refresh 2026-06-18 18:14:10 -04:00
Shadowghost dee63ef3f1 Fix data extraction for alternative versions 2026-06-07 23:06:48 +02:00
Gabriel Luci 6f2e42c20c Fix use of thread-unsafe List<T>.Sort() 2026-05-04 23:46:00 -04:00
Niels van Velzen d87e9f9622 Merge pull request #16695 from ExpctING/fix_dummy_chapter
Fix dummy chapter handling for videos with a single chapter or short duration.
2026-05-04 18:02:16 +02:00
Niels van Velzen b7d0301099 Merge pull request #16747 from MBR-0001/fix-ffprobe-subs
Fix FFProbeVideoInfo downloading subtitles without considering internal streams
2026-05-04 17:57:49 +02:00
Seven Rats f5f75ed2e1 feat/audiobook_chapters (#16518)
feat/audiobook_chapters
2026-05-03 12:18:20 +02:00
MBR#0001 19b756a507 Fix FFProbeVideoInfo downloading subtitles without considering internal streams
Currently "Skip if the video already contains embedded subtitles" and "Skip if the default audio track matches the download language" are ignored because the internal tracks are not loaded before downloading

This method is also triggered by the missing subtitles task (whenever a subtitle is downloaded) so if there are multiple languages configured, after first one is downloaded (valid) it runs it for other languages which might be internal
2026-05-02 21:07:13 +02:00
ExpctING 1dd8541ed5 fix ci failed
Co-authored-by: Copilot <copilot@github.com>
2026-04-25 21:10:47 +08:00
ExpctING 857e730168 Fix dummy chapter handling for videos with a single chapter. 2026-04-25 03:30:55 +08:00
MBR-0001 a2eff41d66 Merge branch 'master' into removeGlobalSubtitleConfiguration 2026-04-18 17:14:31 +02:00
KGT1 1d44899606 Remove global subtitle configuration (#14957) 2026-04-18 17:06:46 +02:00
MBR-0001 d4a46bc629 Fix comparison 2026-04-16 22:34:13 +02:00
Dominic DeMarco 22f0507258 Record missing information
Fixes tonemapping checks by recording previously missing information when gathering video stream information from videos in a BDMV structure
2026-04-10 00:21:52 -07:00
Joshua M. Boniface 8cecf53057 Fix GHSA-j2hf-x4q5-47j3 with improved sanitization
Co-Authored-By: Shadowghost <Ghost_of_Stone@web.de>
2026-04-06 11:37:45 +02:00
MBR#0001 73fd6721f6 Skip library if all subtitle providers are disabled 2025-11-22 17:39:43 +01:00
KGT1 41c1c5f7bf remove global subtitle configuration 2025-11-22 17:15:09 +01:00
IceStormNG 26ac2ccd74 Backport pull request #15441 from jellyfin/release-10.11.z
Fix System.NullReferenceException when people's role is null (10.11.z)

Original-merge: 5a9a8363f4

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

Backported-by: Bond_009 <bond.009@outlook.com>
2025-11-17 14:08:59 -05:00
gnattu 0a0aaefad5 Fix mka-style tagging key (#14936) 2025-10-02 17:33:31 -06:00
Corentin Malbet 71ebb1f456 Fixing the UFID field value giving a warning and not being correctly processed (#14851) 2025-09-26 14:24:59 -06:00
evan314159 e753adac2c fix ProbeProvider.HasChanged: if file date changed (#14674) 2025-08-27 17:34:51 -06:00
evan314159 6f49782b7b fix file modification date comparisons (#14503) 2025-07-27 20:08:06 -06:00
Nyanmisaka 25a362345d Fix refreshing the library cannot delete old attachments (#14461) 2025-07-14 18:40:37 -06:00
renovate[bot] 8629831658 Update dependency z440.atl.core to v7 (#14391) 2025-07-07 18:10:48 -06:00
Shane Powell 8dcb0bfecb Merge pull request #14309 from shanepowell/MediaInfoFixs
Fix PeopleHelper.AddPerson Exceptions due to bad meta-data extracts.
2025-07-04 19:22:27 +02:00
Evan a4231bf428 Read ALBUMARTISTS in preference to ARTISTS when PreferNonstandardArtistsTag set
Jellyfin implemented ARTISTS multivalue tag but did not implement the equivalent ALBUMARTISTS multivalue tag.  This change adds ALBUMARTISTS support.  If present and PreferNonstandardArtistsTag is set, ALBUMARTISTS will be used in preference to ALBUMARTIST.  As with ARTISTS, the intent is to offer support for multiple album artists without affecting software that does not read ALBUMARTIST as a multivalued tag.

Example album before/after:

    ALBUM           : Amici e Rivali
    ARTIST          : Lawrence Brownlee / Michael Spyres
    album_artist    : Lawrence Brownlee
    ARTISTS         : Lawrence Brownlee;Michael Spyres
    ALBUMARTISTS    : Lawrence Brownlee;Michael Spyres

Before ALBUMARTISTS support, Jellyfin reports:
    Album Artist: Lawrence Brownlee [hyperlinked]
    On each track Artist: Lawrence Brownlee, Michael Spyres

After ALBUMARTISTS support, Jellyfin reoprts:
    Album Artist: Lawrence Brownlee [hyperlinked], Michael Spyres [hyperlinked]
    On each track Artist: none shown (no other artists in source metadata)

This is ideal as both key artists are hyperlinkable from their albums.

References to other products implementing ALBUMARTISTS:
- Navidrome: https://www.navidrome.org/docs/usage/tagging-guidelines/#handling-multiple-artists-and-collaborations
- Kodi: https://kodi.wiki/view/Music_tagging#albumartists
- MusicBrainz Picard: https://picard-docs.musicbrainz.org/en/variables/variables_basic.html (_albumartists tag)
2025-07-02 07:55:24 +08:00
theguymadmax b528c1100f Fix missing music genre metadata (#14332) 2025-06-23 08:30:59 -06:00
gnattu 9d601f8e9b Terminate at null char for audio tags (#14100) 2025-05-18 18:40:18 -06:00
theguymadmax 6c57ad4772 Fix Blu-ray metadata processing: preserve external streams and language metadata (#14077) 2025-05-09 08:35:54 -06:00
gnattu 140de04f94 Reject invalid replaygain tag value (#14082) 2025-05-09 08:35:41 -06:00
Tim Eisele d976f13970 Recognize file changes and remove data on change (#13839) 2025-05-04 21:21:44 -06:00
Tim Eisele df5671263f Merge pull request #13847 from Shadowghost/rework-chapter-management
Rework chapter management
2025-04-26 14:01:12 +02:00
Tim Eisele 61cb53999e Safeguard against null value trimming in tag results (#13908) 2025-04-13 07:43:06 -06:00
Marc Brooks a5f3d942f6 Merge branch 'master' into sort-nfo-data 2025-03-12 10:33:27 -05:00
gnattu 237e7bd44b Backport pull request #13694 from jellyfin/release-10.10.z
Clone fallback audio tags instead of use ATL.Track.set

Original-merge: 9eb2044eae

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

Backported-by: Bond_009 <bond.009@outlook.com>
2025-03-12 08:40:33 -04:00
Dominik Krivohlavek 93dd5551df Add support for reading and storing Recording MBIDs from file metadata (#12173)
* Add recording metadata provider

* Add recording MBID

* Save recording MBID during probing

* Set recording ID in probe result normalizer

* Add recording external media type

* Reimplement after changes in upstream

* Rename variable

* Rename variable

* Revert "Set recording ID in probe result normalizer"

This reverts commit 9dd18c8aba3f970a5816a13a33acf3d58b0e440f.

* Fix setting provider ID

* Simplify code

* Fix comment

* Add missing using
2025-02-28 23:00:52 -07:00
Marc Brooks 114591c1aa Clean up usings and honor SortName 2025-02-25 01:51:38 -06:00
Cody Robibero 712908d53c Revert nullability of MediaStream.IsHearingImpaired (#13573) 2025-02-17 19:20:18 -07:00
choyakawa fb69b976bf Fix the issue where the external audio track always defaults. (#13132) 2025-02-13 20:24:39 -07:00
gnattu f4a2679177 Backport pull request #13490 from jellyfin/release-10.10.z
Correctly handle audio number tag fallbacks

Original-merge: 117d2082aa

Merged-by: joshuaboniface <joshua@boniface.me>

Backported-by: Bond_009 <bond.009@outlook.com>
2025-02-09 08:39:56 -05:00
Marc Brooks 4e64b261a8 Moved Trimmed to Jellyfin.Extensions.StringExtensions 2025-02-05 18:13:28 -06:00
Marc Brooks e8cbcde02e Merge branch 'master' into sort-nfo-data 2025-02-03 19:48:59 -06:00
gnattu 4c17498369 Backport pull request #13182 from jellyfin/release-10.10.z
Don't fall back to ffprobe results for multi-value audio tags

Original-merge: f97f38585b

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

Backported-by: Bond_009 <bond.009@outlook.com>
2025-02-03 16:55:56 -05:00
Bond-009 bcdffa74a8 Remove useless checks and dead code (#13405)
* Remove useless checks and dead code

* Enable adaptive bitrate streaming again

* Disable adaptive bitrate streaming by default
2025-01-28 11:29:22 +01:00
Josh Soref 40da2ccac5 Fix spelling (#13444)
* spelling: anamorphic

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: associated

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: channelinfo

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: eagerly

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: enumerable

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: greater than/less than

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: greater

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: lineup

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: logs out

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: names

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: paging

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: playlist

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: sanitized

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: saving

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

---------

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-01-28 11:27:34 +01:00
Bond_009 47f798827b Remove useless checks and dead code 2025-01-22 17:31:52 +01:00
JPVenson 56a4aa180b Fixed codesmell 2025-01-18 16:22:05 +00:00
JPVenson 2f306358c0 applied review comments 2025-01-18 16:17:26 +00:00