2492 Commits

Author SHA1 Message Date
evan314159
e753adac2c
fix ProbeProvider.HasChanged: if file date changed (#14674) 2025-08-27 17:34:51 -06:00
theguymadmax
8a8018f0de
Preserve interpunct (·) (#14543) 2025-07-27 20:09:50 -06:00
evan314159
6f49782b7b
fix file modification date comparisons (#14503) 2025-07-27 20:08:06 -06:00
Tim Eisele
a068f75623
Set DateLastSaved after running metadata savers (#14531) 2025-07-25 08:20:19 -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
Tim Eisele
c6e568692e
Fix modification checks and make sure to use UTC (#14347) 2025-06-26 17:50:37 -06:00
theguymadmax
7d18f3d6ed
Improve cast and crew handling (#14370) 2025-06-24 17:48:36 -06:00
Max Rumpf
9b8c12d433
Adapt LrcLyricParser to new LrcParser version (#14263) 2025-06-24 16:59:09 -06:00
theguymadmax
b528c1100f
Fix missing music genre metadata (#14332) 2025-06-23 08:30:59 -06:00
JPVenson
4cd0a2ed8d
Always set update action when item does not exist (#14304) 2025-06-15 15:19:57 -06:00
Tim Eisele
9f0f9a276f
Fix People Issues (#14284) 2025-06-12 05:21:01 -06:00
Tim Eisele
c22f24319b
Properly handle file access issues in some cases (#14272) 2025-06-11 17:31:14 -06:00
Niels van Velzen
c2cc27a8a9
Merge pull request #12908 from scampower3/search-for-missing-overrides-existing
Fix search for missing metadata overriding existing metadata
2025-06-07 21:56:46 +02:00
Niels van Velzen
f4bce38ddb
Merge pull request #14209 from theguymadmax/themoviedb-year-cache-key
Add year parameter to TMDB series cache key
2025-06-07 21:56:30 +02:00
theguymadmax
5d7ae6a134
Fix metadata not refreshing in negative UTC timezones (#14225) 2025-06-05 15:58:20 -06:00
Tim Eisele
e1a5c16404
Prune trickplay data on regenerate and scan (#14085) 2025-06-03 15:25:09 -06:00
theguymadmax
7ef3f73ce4 Add year parameter to TMDB series cache key 2025-06-03 11:04:43 -04:00
theguymadmax
a6a89f7953
Fix ArgumentNullException when downloading season logos (#14141) 2025-05-20 06:03:04 -06:00
gnattu
9d601f8e9b
Terminate at null char for audio tags (#14100) 2025-05-18 18:40:18 -06:00
theguymadmax
43659f011c
Fix ArgumentNullException in TmdbExternalUrlProvider (#14130) 2025-05-18 18:35:12 -06:00
Tim Eisele
1b34ebc0fc
Fix extracted data cleanup in cleanup post scan task (#14083) 2025-05-11 21:11:21 -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
49c6a99e00
Cleanup external item data cleanup (#14072) 2025-05-09 08:35:29 -06:00
Tim Eisele
d976f13970
Recognize file changes and remove data on change (#13839) 2025-05-04 21:21:44 -06:00
Tim Eisele
f576783ae1
Fix distinction queries (#14007) 2025-04-26 18:49:30 -06:00
JPVenson
5d65cfcd99
improved performance of save operations (#13889) 2025-04-26 09:32:12 -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
Alex
82a561b87d
Add API support for ELRC word-based lyrics (#12941)
* Add API support for ELRC word-based lyrics

Adds support for word-based timestamps from within ELRC files.

* Create TimeTags object

* redo TimeTag implementation

Change TimeTag to long, redo TimeTag implementation
Make timestamp not nullable
Update MediaBrowser.Model/Lyrics/LyricLine.cs
Make TimeTag list IReadOnlyList
Remove nullable Timestamp
Update TimeTag description

Co-Authored-By: Cody Robibero <cody@robibe.ro>

* Changes to LyricLineTimeTag

Moved TimeTag to LyricLineTimeTag
Change "timestamp" to "start" for consistency
Change plural "TimeTags" to "Cues"
Change comments

* Change LyricLineTimeTag to LyricLineCue, include info about end times

* Remove width

* Remove width tag

* Rewrite cue parser and add tests

---------

Co-authored-by: Cody Robibero <cody@robibe.ro>
2025-04-07 08:59:18 -06:00
JQ
fe79384cd5
Returns album artists apart from artist names when doing a lyrics search (#13852) 2025-04-06 14:18:39 -06:00
Tim Eisele
5769c398c6
Fix Tmdb external URL generation (#13817)
* Fix Tmdb external URL generation

* Update MediaBrowser.Providers/Plugins/Tmdb/TmdbExternalUrlProvider.cs
2025-03-31 17:44:06 -06:00
Bond-009
e9729a536f
Use pattern matching for null checks (#13793)
Fix the few that slipped through
2025-03-31 17:38:25 -06:00
Tim Eisele
3fc3b04daf
Rework parental ratings (#12615) 2025-03-30 21:51:54 -06:00
LJQ
c906c1ca0d rebase 2025-03-29 02:33:58 +08:00
Lampan-git
aabaf1a656 Backport pull request #13720 from jellyfin/release-10.10.z
Fix regression where "Search for missing metadata" not handling cast having multiple roles

Original-merge: 91ca81eca7d2c984a096a396cbd83d0111f41c9d

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

Backported-by: Bond_009 <bond.009@outlook.com>
2025-03-20 05:55:51 -04:00
theguymadmax
407935d181 Fix IMDb URL for People 2025-03-16 19:00:00 -04:00
Tim Eisele
0eed5ee79b
Fix build and tests (#13718) 2025-03-14 08:17:18 -06:00
Joshua M. Boniface
79437f85c5
Merge pull request #13175 from Shadowghost/external-url-providers
Migrate to IExternalUrlProvider
2025-03-13 21:08:18 -04: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: 9eb2044eae50c69be4cb3830887bdd5da15ee920

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

Backported-by: Bond_009 <bond.009@outlook.com>
2025-03-12 08:40:33 -04:00
Lampan-git
aad7506e85 Backport pull request #13618 from jellyfin/release-10.10.z
Include Role and SortOrder in MergePeople to fix "Search for missing metadata"

Original-merge: fcdef875a2b0e49bc0ebeec12797c91ddb8f9bdc

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

Backported-by: Bond_009 <bond.009@outlook.com>
2025-03-02 11:23:01 -05: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
Shadowghost
06be4998e1 Backport pull request #13611 from jellyfin/release-10.10.z
Remove empty ParentIndexNumber workaround

Original-merge: 1daf761aece5114a6ac3b7b938f114e70b83d99e

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

Backported-by: Bond_009 <bond.009@outlook.com>
2025-02-25 15:26:47 -05:00
Marc Brooks
114591c1aa Clean up usings and honor SortName 2025-02-25 01:51:38 -06:00
Tim Eisele
260f1323d8
Apply suggestions from code review
Co-authored-by: Cody Robibero <cody@robibe.ro>
2025-02-22 18:59:37 +01:00
Shadowghost
5ff2767012 Use TryGetProviderId where possible 2025-02-21 11:58:46 +01:00