[PR #15974] fix: artist metadata not saving properly #14482

Open
opened 2026-02-07 07:30:33 +03:00 by OVERLORD · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/jellyfin/jellyfin/pull/15974
Author: @Almamu
Created: 1/8/2026
Status: 🔄 Open

Base: masterHead: master


📝 Commits (2)

  • 87dbeb0 fix: revert DtoService.cs changes on 5a6d9180fe, fixes editing artists on metadata from #15283
  • 2226f9a fix: make artist creation happen on item save

📊 Changes

5 files changed (+40 additions, -76 deletions)

View changed files

📝 Emby.Server.Implementations/Dto/DtoService.cs (+3 -62)
📝 Emby.Server.Implementations/Library/LibraryManager.cs (+27 -2)
📝 Jellyfin.Api/Controllers/ItemsController.cs (+3 -11)
📝 Jellyfin.Server.Implementations/Item/BaseItemRepository.cs (+1 -1)
📝 MediaBrowser.Controller/Library/ILibraryManager.cs (+6 -0)

📄 Description

Changes
Partially reverted commit 5a6d9180fe which introduced a regression in artist creation.

Issues
Fixes metadata edition from #15283

Some questions regarding this metadata
The way artist creation is handled is really confusing. As it is right now, artists are added to the BaseItems table when an Item containing unknown Artists is returned by the API. This was done for both Album Artists and Artists, but on 5a6d9180fe the code that was handling that was changed to prevent duplication. Judging by the changes made in that commit, this change wasn't actually necessary and should come back, although in the future I feel like the artist should be added to the database on creation instead of when it's returned by any API endpoint? Maybe I can work on that next if no one is working on it?

During the investigation of this issue I also came across three ways of saving Artist and Album Artists, which sounds a bit backwards to me. One is in the BaseItems table, another in each BaseItems record (there's an Artist and AlbumArtist field that contains a list of them separated by |) and another table ItemValues (joined to ItemValuesMap) that has the artist info again, maybe we should look into consolidating this into just one?


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/jellyfin/jellyfin/pull/15974 **Author:** [@Almamu](https://github.com/Almamu) **Created:** 1/8/2026 **Status:** 🔄 Open **Base:** `master` ← **Head:** `master` --- ### 📝 Commits (2) - [`87dbeb0`](https://github.com/jellyfin/jellyfin/commit/87dbeb0520ec51455526d3079e1dda4f3ac2b069) fix: revert DtoService.cs changes on 5a6d9180fed81a30cb91ef3fed30176cd4402116, fixes editing artists on metadata from #15283 - [`2226f9a`](https://github.com/jellyfin/jellyfin/commit/2226f9a1493ceb7920f2843243290c30c21ac696) fix: make artist creation happen on item save ### 📊 Changes **5 files changed** (+40 additions, -76 deletions) <details> <summary>View changed files</summary> 📝 `Emby.Server.Implementations/Dto/DtoService.cs` (+3 -62) 📝 `Emby.Server.Implementations/Library/LibraryManager.cs` (+27 -2) 📝 `Jellyfin.Api/Controllers/ItemsController.cs` (+3 -11) 📝 `Jellyfin.Server.Implementations/Item/BaseItemRepository.cs` (+1 -1) 📝 `MediaBrowser.Controller/Library/ILibraryManager.cs` (+6 -0) </details> ### 📄 Description **Changes** Partially reverted commit 5a6d9180fed81a30cb91ef3fed30176cd4402116 which introduced a regression in artist creation. **Issues** Fixes metadata edition from #15283 **Some questions regarding this metadata** The way artist creation is handled is really confusing. As it is right now, artists are added to the BaseItems table when an Item containing unknown Artists is returned by the API. This was done for both Album Artists and Artists, but on 5a6d9180fed81a30cb91ef3fed30176cd4402116 the code that was handling that was changed to prevent duplication. Judging by the changes made in that commit, this change wasn't actually necessary and should come back, although in the future I feel like the artist should be added to the database on creation instead of when it's returned by any API endpoint? Maybe I can work on that next if no one is working on it? During the investigation of this issue I also came across three ways of saving Artist and Album Artists, which sounds a bit backwards to me. One is in the BaseItems table, another in each BaseItems record (there's an Artist and AlbumArtist field that contains a list of them separated by ```|```) and another table ItemValues (joined to ItemValuesMap) that has the artist info again, maybe we should look into consolidating this into just one? --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
OVERLORD added the pull-request label 2026-02-07 07:30:33 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#14482