diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs
index 6ff480e3f8..5e0bfca971 100644
--- a/MediaBrowser.Api/UserLibrary/ItemsService.cs
+++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs
@@ -82,9 +82,12 @@ namespace MediaBrowser.Api.UserLibrary
/// Gets or sets the studios.
///
/// The studios.
- [ApiMember(Name = "Artists", Description = "Optional. If specified, results will be filtered based on studio. This allows multiple, pipe delimeted.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
+ [ApiMember(Name = "Artists", Description = "Optional. If specified, results will be filtered based on artist. This allows multiple, pipe delimeted.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
public string Artists { get; set; }
+ [ApiMember(Name = "Albums", Description = "Optional. If specified, results will be filtered based on album. This allows multiple, pipe delimeted.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
+ public string Albums { get; set; }
+
///
/// Limit results to items containing specific years
///
@@ -452,6 +455,38 @@ namespace MediaBrowser.Api.UserLibrary
});
}
+ // Albums
+ if (!string.IsNullOrEmpty(request.Albums))
+ {
+ var albums = request.Albums.Split('|');
+
+ items = items.Where(i =>
+ {
+ var audio = i as Audio;
+
+ if (audio != null)
+ {
+ return albums.Any(a => string.Equals(a, audio.Album, StringComparison.OrdinalIgnoreCase));
+ }
+
+ var album = i as MusicAlbum;
+
+ if (album != null)
+ {
+ return albums.Any(a => string.Equals(a, album.Name, StringComparison.OrdinalIgnoreCase));
+ }
+
+ var musicVideo = i as MusicVideo;
+
+ if (musicVideo != null)
+ {
+ return albums.Any(a => string.Equals(a, musicVideo.Album, StringComparison.OrdinalIgnoreCase));
+ }
+
+ return false;
+ });
+ }
+
if (!string.IsNullOrEmpty(request.AdjacentTo))
{
var item = DtoBuilder.GetItemByClientId(request.AdjacentTo, _userManager, _libraryManager);
diff --git a/MediaBrowser.Providers/TV/RemoteSeriesProvider.cs b/MediaBrowser.Providers/TV/RemoteSeriesProvider.cs
index 1905bbddb8..307094d190 100644
--- a/MediaBrowser.Providers/TV/RemoteSeriesProvider.cs
+++ b/MediaBrowser.Providers/TV/RemoteSeriesProvider.cs
@@ -495,7 +495,7 @@ namespace MediaBrowser.Providers.TV
foreach (XmlNode node in nodes)
{
var n = node.SelectSingleNode("./SeriesName");
- if (n != null && GetComparableName(n.InnerText) == comparableName)
+ if (n != null && string.Equals(GetComparableName(n.InnerText), comparableName, StringComparison.OrdinalIgnoreCase))
{
n = node.SelectSingleNode("./seriesid");
if (n != null)