[PR #14591] [CLOSED] Fix Peoples to remove duplicates, Artists and Artists-like types, and treat Conductors and Composers like Artists #14039

Closed
opened 2026-02-07 07:23:21 +03:00 by OVERLORD · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/jellyfin/jellyfin/pull/14591
Author: @evan314159
Created: 8/6/2025
Status: Closed

Base: masterHead: fix-peoples


📝 Commits (4)

  • b203667 Fix Peoples to remove duplicates, Artists and Artists-like types, and treat Conductors and Composers like Artists
  • 99e1463 revert unintended change to ItemValueTypes
  • 863c6b6 style Array.Empty -> []
  • 82b448f Merge branch 'jellyfin:master' into fix-peoples

📊 Changes

15 files changed (+2096 additions, -192 deletions)

View changed files

📝 Emby.Server.Implementations/Dto/DtoService.cs (+12 -57)
📝 Jellyfin.Data/Enums/PersonKind.cs (+0 -20)
📝 Jellyfin.Server.Implementations/Item/BaseItemRepository.cs (+1 -1)
📝 Jellyfin.Server.Implementations/Item/PeopleRepository.cs (+106 -15)
📝 MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs (+1 -1)
📝 MediaBrowser.Controller/Entities/PeopleHelper.cs (+5 -0)
📝 MediaBrowser.Controller/Entities/PersonInfo.cs (+0 -1)
📝 MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs (+0 -15)
MediaBrowser.Model/Dto/BaseItemArtist.cs (+45 -0)
📝 MediaBrowser.Model/Dto/BaseItemDto.cs (+2 -2)
📝 MediaBrowser.Providers/MediaInfo/AudioFileProber.cs (+36 -35)
📝 MediaBrowser.Providers/Music/AlbumMetadataService.cs (+0 -36)
src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/Migrations/20250806062803_FixPeoples.Designer.cs (+1709 -0)
src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/Migrations/20250806062803_FixPeoples.cs (+176 -0)
📝 tests/Jellyfin.MediaEncoding.Tests/Probing/ProbeResultNormalizerTests.cs (+3 -9)

📄 Description

Changes
This change fixes:

  • Duplicate inserts into Peoples using an INSERT ON CONFLICT DO NOTHING-type approach
  • Stop creating Person records for Artists
  • Treat Composers and Conductors as Artists

Includes migration to:

  • Remap Conductors and Composers into Artists before removing from People
  • Remove duplicate and unlinked People
  • Add unique constraint index on Peoples.(Name, PersonType)
  • Remove unnecessary index on Peoples.Name

Conductors and Composers show up right away as Artists after the migration but requires a scan before they will appear in the web UI with their Artist picture.

Web UI changes in jellyfin/jellyfin-web#7069

Issues

I had 300k people in Peoples because on every run through it was inserting duplicates.
Fixes artists showing up as people with incorrect links to TMDB etc., no links to their albums.


🔄 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/14591 **Author:** [@evan314159](https://github.com/evan314159) **Created:** 8/6/2025 **Status:** ❌ Closed **Base:** `master` ← **Head:** `fix-peoples` --- ### 📝 Commits (4) - [`b203667`](https://github.com/jellyfin/jellyfin/commit/b2036674d0181bf51c15f9e6c5c0d66f968b0dac) Fix Peoples to remove duplicates, Artists and Artists-like types, and treat Conductors and Composers like Artists - [`99e1463`](https://github.com/jellyfin/jellyfin/commit/99e146387cab274867c98bc1660699e4c87c5386) revert unintended change to ItemValueTypes - [`863c6b6`](https://github.com/jellyfin/jellyfin/commit/863c6b6be62e2cc0148b62337efc0d8664d08453) style Array.Empty -> [] - [`82b448f`](https://github.com/jellyfin/jellyfin/commit/82b448f2c65ed498eb46471391741293e41410dc) Merge branch 'jellyfin:master' into fix-peoples ### 📊 Changes **15 files changed** (+2096 additions, -192 deletions) <details> <summary>View changed files</summary> 📝 `Emby.Server.Implementations/Dto/DtoService.cs` (+12 -57) 📝 `Jellyfin.Data/Enums/PersonKind.cs` (+0 -20) 📝 `Jellyfin.Server.Implementations/Item/BaseItemRepository.cs` (+1 -1) 📝 `Jellyfin.Server.Implementations/Item/PeopleRepository.cs` (+106 -15) 📝 `MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs` (+1 -1) 📝 `MediaBrowser.Controller/Entities/PeopleHelper.cs` (+5 -0) 📝 `MediaBrowser.Controller/Entities/PersonInfo.cs` (+0 -1) 📝 `MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs` (+0 -15) ➕ `MediaBrowser.Model/Dto/BaseItemArtist.cs` (+45 -0) 📝 `MediaBrowser.Model/Dto/BaseItemDto.cs` (+2 -2) 📝 `MediaBrowser.Providers/MediaInfo/AudioFileProber.cs` (+36 -35) 📝 `MediaBrowser.Providers/Music/AlbumMetadataService.cs` (+0 -36) ➕ `src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/Migrations/20250806062803_FixPeoples.Designer.cs` (+1709 -0) ➕ `src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/Migrations/20250806062803_FixPeoples.cs` (+176 -0) 📝 `tests/Jellyfin.MediaEncoding.Tests/Probing/ProbeResultNormalizerTests.cs` (+3 -9) </details> ### 📄 Description **Changes** This change fixes: - Duplicate inserts into Peoples using an INSERT ON CONFLICT DO NOTHING-type approach - Stop creating Person records for Artists - Treat Composers and Conductors as Artists Includes migration to: - Remap Conductors and Composers into Artists before removing from People - Remove duplicate and unlinked People - Add unique constraint index on Peoples.(Name, PersonType) - Remove unnecessary index on Peoples.Name Conductors and Composers show up right away as Artists after the migration but requires a scan before they will appear in the web UI with their Artist picture. Web UI changes in jellyfin/jellyfin-web#7069 <!-- Ensure your title is short, descriptive, and in the imperative mood (Fix X, Change Y, instead of Fixed X, Changed Y). For a good inspiration of what to write in commit messages and PRs please review https://chris.beams.io/posts/git-commit/ and our documentation. --> <!-- Describe your changes here in 1-5 sentences. --> **Issues** <!-- Tag any issues that this PR solves here. ex. Fixes # --> I had 300k people in Peoples because on every run through it was inserting duplicates. Fixes artists showing up as people with incorrect links to TMDB etc., no links to their albums. --- <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:23:21 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#14039