[PR #15970] Implement similarity providers #14486

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

📋 Pull Request Information

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

Base: masterHead: similarity


📝 Commits (1)

  • e3ab831 Implement Similarity providers

📊 Changes

36 files changed (+1824 additions, -61 deletions)

View changed files

📝 Emby.Server.Implementations/ApplicationHost.cs (+14 -0)
Emby.Server.Implementations/Library/SimilarItems/AudioSimilarItemsProvider.cs (+55 -0)
Emby.Server.Implementations/Library/SimilarItems/LiveTvProgramSimilarItemsProvider.cs (+94 -0)
Emby.Server.Implementations/Library/SimilarItems/MovieSimilarItemsProvider.cs (+79 -0)
Emby.Server.Implementations/Library/SimilarItems/MusicAlbumSimilarItemsProvider.cs (+55 -0)
Emby.Server.Implementations/Library/SimilarItems/MusicArtistSimilarItemsProvider.cs (+55 -0)
Emby.Server.Implementations/Library/SimilarItems/SeriesSimilarItemsProvider.cs (+54 -0)
Emby.Server.Implementations/Library/SimilarItems/SimilarItemsManager.cs (+405 -0)
📝 Jellyfin.Api/Controllers/LibraryController.cs (+30 -48)
📝 Jellyfin.Api/Models/LibraryDtos/LibraryTypeOptionsDto.cs (+9 -5)
📝 Jellyfin.Server.Implementations/Item/BaseItemRepository.cs (+11 -0)
📝 MediaBrowser.Controller/Entities/InternalItemsQuery.cs (+2 -0)
MediaBrowser.Controller/Library/ILocalSimilarItemsProvider.cs (+27 -0)
MediaBrowser.Controller/Library/IRemoteSimilarItemsProvider.cs (+26 -0)
MediaBrowser.Controller/Library/ISimilarItemsManager.cs (+50 -0)
MediaBrowser.Controller/Library/ISimilarItemsProvider.cs (+26 -0)
MediaBrowser.Controller/Library/SimilarItemReference.cs (+22 -0)
MediaBrowser.Controller/Library/SimilarItemsQuery.cs (+37 -0)
📝 MediaBrowser.Controller/Providers/IProviderManager.cs (+13 -0)
📝 MediaBrowser.Model/Configuration/MetadataPluginType.cs (+3 -1)

...and 16 more files

📄 Description

Similarity and recommendations are worse due to DB performance issues in 10.11.
This PR extracts similarity calculation to a provider based approach:

  • Local providers based on genre/tags as it is implemented right now
  • TMDB providers for TV series and Movies
  • ListenBrainz proivder for artists based on Labs API

🔄 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/15970 **Author:** [@Shadowghost](https://github.com/Shadowghost) **Created:** 1/8/2026 **Status:** 🔄 Open **Base:** `master` ← **Head:** `similarity` --- ### 📝 Commits (1) - [`e3ab831`](https://github.com/jellyfin/jellyfin/commit/e3ab83125bbf9a0c0ab33a9f77b331d495a0bd18) Implement Similarity providers ### 📊 Changes **36 files changed** (+1824 additions, -61 deletions) <details> <summary>View changed files</summary> 📝 `Emby.Server.Implementations/ApplicationHost.cs` (+14 -0) ➕ `Emby.Server.Implementations/Library/SimilarItems/AudioSimilarItemsProvider.cs` (+55 -0) ➕ `Emby.Server.Implementations/Library/SimilarItems/LiveTvProgramSimilarItemsProvider.cs` (+94 -0) ➕ `Emby.Server.Implementations/Library/SimilarItems/MovieSimilarItemsProvider.cs` (+79 -0) ➕ `Emby.Server.Implementations/Library/SimilarItems/MusicAlbumSimilarItemsProvider.cs` (+55 -0) ➕ `Emby.Server.Implementations/Library/SimilarItems/MusicArtistSimilarItemsProvider.cs` (+55 -0) ➕ `Emby.Server.Implementations/Library/SimilarItems/SeriesSimilarItemsProvider.cs` (+54 -0) ➕ `Emby.Server.Implementations/Library/SimilarItems/SimilarItemsManager.cs` (+405 -0) 📝 `Jellyfin.Api/Controllers/LibraryController.cs` (+30 -48) 📝 `Jellyfin.Api/Models/LibraryDtos/LibraryTypeOptionsDto.cs` (+9 -5) 📝 `Jellyfin.Server.Implementations/Item/BaseItemRepository.cs` (+11 -0) 📝 `MediaBrowser.Controller/Entities/InternalItemsQuery.cs` (+2 -0) ➕ `MediaBrowser.Controller/Library/ILocalSimilarItemsProvider.cs` (+27 -0) ➕ `MediaBrowser.Controller/Library/IRemoteSimilarItemsProvider.cs` (+26 -0) ➕ `MediaBrowser.Controller/Library/ISimilarItemsManager.cs` (+50 -0) ➕ `MediaBrowser.Controller/Library/ISimilarItemsProvider.cs` (+26 -0) ➕ `MediaBrowser.Controller/Library/SimilarItemReference.cs` (+22 -0) ➕ `MediaBrowser.Controller/Library/SimilarItemsQuery.cs` (+37 -0) 📝 `MediaBrowser.Controller/Providers/IProviderManager.cs` (+13 -0) 📝 `MediaBrowser.Model/Configuration/MetadataPluginType.cs` (+3 -1) _...and 16 more files_ </details> ### 📄 Description Similarity and recommendations are worse due to DB performance issues in 10.11. This PR extracts similarity calculation to a provider based approach: * Local providers based on genre/tags as it is implemented right now * TMDB providers for TV series and Movies * ListenBrainz proivder for artists based on [Labs API](https://labs.api.listenbrainz.org/similar-artists) --- <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:36 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#14486