diff --git a/Emby.Server.Implementations/Library/UserDataManager.cs b/Emby.Server.Implementations/Library/UserDataManager.cs
index 72c8d7a9d2..45a5e1ef94 100644
--- a/Emby.Server.Implementations/Library/UserDataManager.cs
+++ b/Emby.Server.Implementations/Library/UserDataManager.cs
@@ -236,12 +236,16 @@ namespace Emby.Server.Implementations.Library
}
///
- public UserItemData? GetUserData(User user, BaseItem item)
+ public UserItemData GetUserData(User user, BaseItem item)
{
- return item.UserData?.Where(e => e.UserId.Equals(user.Id)).Select(Map).FirstOrDefault() ?? new UserItemData()
- {
- Key = item.GetUserDataKeys()[0],
- };
+ var cacheKey = GetCacheKey(user.InternalId, item.Id);
+ return _cache.GetOrAdd(
+ cacheKey,
+ (k, i) => i.UserData?.Where(e => e.UserId.Equals(user.Id)).Select(Map).FirstOrDefault() ?? new UserItemData()
+ {
+ Key = i.GetUserDataKeys()[0],
+ },
+ item);
}
///