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 )
OpenAPI / OpenAPI - HEAD (push) Waiting to run
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
2025-06-26 17:50:37 -06:00
theguymadmax
7d18f3d6ed
Improve cast and crew handling ( #14370 )
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
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 )
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
2025-06-12 05:21:01 -06:00
Tim Eisele
c22f24319b
Properly handle file access issues in some cases ( #14272 )
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
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 )
Merge Conflict Labeler / Labeling (push) Has been cancelled
CodeQL / Analyze (csharp) (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled
2025-05-20 06:03:04 -06:00
gnattu
9d601f8e9b
Terminate at null char for audio tags ( #14100 )
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
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 )
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
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 )
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
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 )
...
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
* 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 )
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
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 )
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
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: 91ca81eca7
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 )
CodeQL / Analyze (csharp) (push) Waiting to run
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
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
...
OpenAPI / OpenAPI - HEAD (push) Waiting to run
OpenAPI / OpenAPI - BASE (push) Waiting to run
OpenAPI / OpenAPI - Difference (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Unstable Spec (push) Blocked by required conditions
OpenAPI / OpenAPI - Publish Stable Spec (push) Blocked by required conditions
Tests / run-tests (macos-latest) (push) Waiting to run
Tests / run-tests (ubuntu-latest) (push) Waiting to run
Tests / run-tests (windows-latest) (push) Waiting to run
Project Automation / Project board (push) Waiting to run
Merge Conflict Labeler / Labeling (push) Waiting to run
CodeQL / Analyze (csharp) (push) Has been cancelled
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
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: fcdef875a2
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 9dd18c8aba .
* 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: 1daf761aec
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
Shadowghost
5303445c9b
Migrate to IExternalUrlProvider
2025-02-20 10:13:27 +01: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
Bond-009
69784b2f17
Backport pull request #13439 from jellyfin/release-10.10.z
...
Fall back to calculating mime type from path when needed
Original-merge: 8aa4e2e320
Merged-by: crobibero <cody@robibe.ro >
Backported-by: Bond_009 <bond.009@outlook.com >
2025-02-09 08:39:54 -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