< Summary - Jellyfin

Information
Class: Jellyfin.Api.Controllers.InstantMixController
Assembly: Jellyfin.Api
File(s): /srv/git/jellyfin/Jellyfin.Api/Controllers/InstantMixController.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 92
Coverable lines: 92
Total lines: 403
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 30
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100 9/14/2025 - 12:09:49 AM Line coverage: 0% (0/99) Branch coverage: 0% (0/30) Total lines: 41012/1/2025 - 12:11:46 AM Line coverage: 0% (0/92) Branch coverage: 0% (0/30) Total lines: 403 9/14/2025 - 12:09:49 AM Line coverage: 0% (0/99) Branch coverage: 0% (0/30) Total lines: 41012/1/2025 - 12:11:46 AM Line coverage: 0% (0/92) Branch coverage: 0% (0/30) Total lines: 403

Metrics

File(s)

/srv/git/jellyfin/Jellyfin.Api/Controllers/InstantMixController.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using System.Collections.Immutable;
 4using System.ComponentModel.DataAnnotations;
 5using System.Linq;
 6using Jellyfin.Api.Extensions;
 7using Jellyfin.Api.Helpers;
 8using Jellyfin.Api.ModelBinders;
 9using Jellyfin.Database.Implementations.Entities;
 10using Jellyfin.Extensions;
 11using MediaBrowser.Controller.Dto;
 12using MediaBrowser.Controller.Entities;
 13using MediaBrowser.Controller.Library;
 14using MediaBrowser.Controller.Playlists;
 15using MediaBrowser.Model.Dto;
 16using MediaBrowser.Model.Entities;
 17using MediaBrowser.Model.Querying;
 18using Microsoft.AspNetCore.Authorization;
 19using Microsoft.AspNetCore.Http;
 20using Microsoft.AspNetCore.Mvc;
 21
 22namespace Jellyfin.Api.Controllers;
 23
 24/// <summary>
 25/// The instant mix controller.
 26/// </summary>
 27[Route("")]
 28[Authorize]
 29public class InstantMixController : BaseJellyfinApiController
 30{
 31    private readonly IUserManager _userManager;
 32    private readonly IDtoService _dtoService;
 33    private readonly ILibraryManager _libraryManager;
 34    private readonly IMusicManager _musicManager;
 35
 36    /// <summary>
 37    /// Initializes a new instance of the <see cref="InstantMixController"/> class.
 38    /// </summary>
 39    /// <param name="userManager">Instance of the <see cref="IUserManager"/> interface.</param>
 40    /// <param name="dtoService">Instance of the <see cref="IDtoService"/> interface.</param>
 41    /// <param name="musicManager">Instance of the <see cref="IMusicManager"/> interface.</param>
 42    /// <param name="libraryManager">Instance of the <see cref="ILibraryManager"/> interface.</param>
 043    public InstantMixController(
 044        IUserManager userManager,
 045        IDtoService dtoService,
 046        IMusicManager musicManager,
 047        ILibraryManager libraryManager)
 48    {
 049        _userManager = userManager;
 050        _dtoService = dtoService;
 051        _musicManager = musicManager;
 052        _libraryManager = libraryManager;
 053    }
 54
 55    /// <summary>
 56    /// Creates an instant playlist based on a given song.
 57    /// </summary>
 58    /// <param name="itemId">The item id.</param>
 59    /// <param name="userId">Optional. Filter by user id, and attach user data.</param>
 60    /// <param name="limit">Optional. The maximum number of records to return.</param>
 61    /// <param name="fields">Optional. Specify additional fields of information to return in the output.</param>
 62    /// <param name="enableImages">Optional. Include image information in output.</param>
 63    /// <param name="enableUserData">Optional. Include user data.</param>
 64    /// <param name="imageTypeLimit">Optional. The max number of images to return, per image type.</param>
 65    /// <param name="enableImageTypes">Optional. The image types to include in the output.</param>
 66    /// <response code="200">Instant playlist returned.</response>
 67    /// <response code="404">Item not found.</response>
 68    /// <returns>A <see cref="QueryResult{BaseItemDto}"/> with the playlist items.</returns>
 69    [HttpGet("Songs/{itemId}/InstantMix")]
 70    [ProducesResponseType(StatusCodes.Status200OK)]
 71    [ProducesResponseType(StatusCodes.Status404NotFound)]
 72    public ActionResult<QueryResult<BaseItemDto>> GetInstantMixFromSong(
 73        [FromRoute, Required] Guid itemId,
 74        [FromQuery] Guid? userId,
 75        [FromQuery] int? limit,
 76        [FromQuery, ModelBinder(typeof(CommaDelimitedCollectionModelBinder))] ItemFields[] fields,
 77        [FromQuery] bool? enableImages,
 78        [FromQuery] bool? enableUserData,
 79        [FromQuery] int? imageTypeLimit,
 80        [FromQuery, ModelBinder(typeof(CommaDelimitedCollectionModelBinder))] ImageType[] enableImageTypes)
 81    {
 082        userId = RequestHelpers.GetUserId(User, userId);
 083        var user = userId.IsNullOrEmpty()
 084            ? null
 085            : _userManager.GetUserById(userId.Value);
 086        var item = _libraryManager.GetItemById<BaseItem>(itemId, user);
 087        if (item is null)
 88        {
 089            return NotFound();
 90        }
 91
 092        var dtoOptions = new DtoOptions { Fields = fields }
 093            .AddAdditionalDtoOptions(enableImages, enableUserData, imageTypeLimit, enableImageTypes);
 094        var items = _musicManager.GetInstantMixFromItem(item, user, dtoOptions);
 095        return GetResult(items, user, limit, dtoOptions);
 96    }
 97
 98    /// <summary>
 99    /// Creates an instant playlist based on a given album.
 100    /// </summary>
 101    /// <param name="itemId">The item id.</param>
 102    /// <param name="userId">Optional. Filter by user id, and attach user data.</param>
 103    /// <param name="limit">Optional. The maximum number of records to return.</param>
 104    /// <param name="fields">Optional. Specify additional fields of information to return in the output.</param>
 105    /// <param name="enableImages">Optional. Include image information in output.</param>
 106    /// <param name="enableUserData">Optional. Include user data.</param>
 107    /// <param name="imageTypeLimit">Optional. The max number of images to return, per image type.</param>
 108    /// <param name="enableImageTypes">Optional. The image types to include in the output.</param>
 109    /// <response code="200">Instant playlist returned.</response>
 110    /// <response code="404">Item not found.</response>
 111    /// <returns>A <see cref="QueryResult{BaseItemDto}"/> with the playlist items.</returns>
 112    [HttpGet("Albums/{itemId}/InstantMix")]
 113    [ProducesResponseType(StatusCodes.Status200OK)]
 114    [ProducesResponseType(StatusCodes.Status404NotFound)]
 115    public ActionResult<QueryResult<BaseItemDto>> GetInstantMixFromAlbum(
 116        [FromRoute, Required] Guid itemId,
 117        [FromQuery] Guid? userId,
 118        [FromQuery] int? limit,
 119        [FromQuery, ModelBinder(typeof(CommaDelimitedCollectionModelBinder))] ItemFields[] fields,
 120        [FromQuery] bool? enableImages,
 121        [FromQuery] bool? enableUserData,
 122        [FromQuery] int? imageTypeLimit,
 123        [FromQuery, ModelBinder(typeof(CommaDelimitedCollectionModelBinder))] ImageType[] enableImageTypes)
 124    {
 0125        userId = RequestHelpers.GetUserId(User, userId);
 0126        var user = userId.IsNullOrEmpty()
 0127            ? null
 0128            : _userManager.GetUserById(userId.Value);
 0129        var item = _libraryManager.GetItemById<BaseItem>(itemId, user);
 0130        if (item is null)
 131        {
 0132            return NotFound();
 133        }
 134
 0135        var dtoOptions = new DtoOptions { Fields = fields }
 0136            .AddAdditionalDtoOptions(enableImages, enableUserData, imageTypeLimit, enableImageTypes);
 0137        var items = _musicManager.GetInstantMixFromItem(item, user, dtoOptions);
 0138        return GetResult(items, user, limit, dtoOptions);
 139    }
 140
 141    /// <summary>
 142    /// Creates an instant playlist based on a given playlist.
 143    /// </summary>
 144    /// <param name="itemId">The item id.</param>
 145    /// <param name="userId">Optional. Filter by user id, and attach user data.</param>
 146    /// <param name="limit">Optional. The maximum number of records to return.</param>
 147    /// <param name="fields">Optional. Specify additional fields of information to return in the output.</param>
 148    /// <param name="enableImages">Optional. Include image information in output.</param>
 149    /// <param name="enableUserData">Optional. Include user data.</param>
 150    /// <param name="imageTypeLimit">Optional. The max number of images to return, per image type.</param>
 151    /// <param name="enableImageTypes">Optional. The image types to include in the output.</param>
 152    /// <response code="200">Instant playlist returned.</response>
 153    /// <response code="404">Item not found.</response>
 154    /// <returns>A <see cref="QueryResult{BaseItemDto}"/> with the playlist items.</returns>
 155    [HttpGet("Playlists/{itemId}/InstantMix")]
 156    [ProducesResponseType(StatusCodes.Status200OK)]
 157    [ProducesResponseType(StatusCodes.Status404NotFound)]
 158    public ActionResult<QueryResult<BaseItemDto>> GetInstantMixFromPlaylist(
 159        [FromRoute, Required] Guid itemId,
 160        [FromQuery] Guid? userId,
 161        [FromQuery] int? limit,
 162        [FromQuery, ModelBinder(typeof(CommaDelimitedCollectionModelBinder))] ItemFields[] fields,
 163        [FromQuery] bool? enableImages,
 164        [FromQuery] bool? enableUserData,
 165        [FromQuery] int? imageTypeLimit,
 166        [FromQuery, ModelBinder(typeof(CommaDelimitedCollectionModelBinder))] ImageType[] enableImageTypes)
 167    {
 0168        userId = RequestHelpers.GetUserId(User, userId);
 0169        var user = userId.IsNullOrEmpty()
 0170            ? null
 0171            : _userManager.GetUserById(userId.Value);
 0172        var item = _libraryManager.GetItemById<Playlist>(itemId, user);
 0173        if (item is null)
 174        {
 0175            return NotFound();
 176        }
 177
 0178        var dtoOptions = new DtoOptions { Fields = fields }
 0179            .AddAdditionalDtoOptions(enableImages, enableUserData, imageTypeLimit, enableImageTypes);
 0180        var items = _musicManager.GetInstantMixFromItem(item, user, dtoOptions);
 0181        return GetResult(items, user, limit, dtoOptions);
 182    }
 183
 184    /// <summary>
 185    /// Creates an instant playlist based on a given genre.
 186    /// </summary>
 187    /// <param name="name">The genre name.</param>
 188    /// <param name="userId">Optional. Filter by user id, and attach user data.</param>
 189    /// <param name="limit">Optional. The maximum number of records to return.</param>
 190    /// <param name="fields">Optional. Specify additional fields of information to return in the output.</param>
 191    /// <param name="enableImages">Optional. Include image information in output.</param>
 192    /// <param name="enableUserData">Optional. Include user data.</param>
 193    /// <param name="imageTypeLimit">Optional. The max number of images to return, per image type.</param>
 194    /// <param name="enableImageTypes">Optional. The image types to include in the output.</param>
 195    /// <response code="200">Instant playlist returned.</response>
 196    /// <returns>A <see cref="QueryResult{BaseItemDto}"/> with the playlist items.</returns>
 197    [HttpGet("MusicGenres/{name}/InstantMix")]
 198    [ProducesResponseType(StatusCodes.Status200OK)]
 199    public ActionResult<QueryResult<BaseItemDto>> GetInstantMixFromMusicGenreByName(
 200        [FromRoute, Required] string name,
 201        [FromQuery] Guid? userId,
 202        [FromQuery] int? limit,
 203        [FromQuery, ModelBinder(typeof(CommaDelimitedCollectionModelBinder))] ItemFields[] fields,
 204        [FromQuery] bool? enableImages,
 205        [FromQuery] bool? enableUserData,
 206        [FromQuery] int? imageTypeLimit,
 207        [FromQuery, ModelBinder(typeof(CommaDelimitedCollectionModelBinder))] ImageType[] enableImageTypes)
 208    {
 0209        userId = RequestHelpers.GetUserId(User, userId);
 0210        var user = userId.IsNullOrEmpty()
 0211            ? null
 0212            : _userManager.GetUserById(userId.Value);
 0213        var dtoOptions = new DtoOptions { Fields = fields }
 0214            .AddAdditionalDtoOptions(enableImages, enableUserData, imageTypeLimit, enableImageTypes);
 0215        var items = _musicManager.GetInstantMixFromGenres(new[] { name }, user, dtoOptions);
 0216        return GetResult(items, user, limit, dtoOptions);
 217    }
 218
 219    /// <summary>
 220    /// Creates an instant playlist based on a given artist.
 221    /// </summary>
 222    /// <param name="itemId">The item id.</param>
 223    /// <param name="userId">Optional. Filter by user id, and attach user data.</param>
 224    /// <param name="limit">Optional. The maximum number of records to return.</param>
 225    /// <param name="fields">Optional. Specify additional fields of information to return in the output.</param>
 226    /// <param name="enableImages">Optional. Include image information in output.</param>
 227    /// <param name="enableUserData">Optional. Include user data.</param>
 228    /// <param name="imageTypeLimit">Optional. The max number of images to return, per image type.</param>
 229    /// <param name="enableImageTypes">Optional. The image types to include in the output.</param>
 230    /// <response code="200">Instant playlist returned.</response>
 231    /// <response code="404">Item not found.</response>
 232    /// <returns>A <see cref="QueryResult{BaseItemDto}"/> with the playlist items.</returns>
 233    [HttpGet("Artists/{itemId}/InstantMix")]
 234    [ProducesResponseType(StatusCodes.Status200OK)]
 235    [ProducesResponseType(StatusCodes.Status404NotFound)]
 236    public ActionResult<QueryResult<BaseItemDto>> GetInstantMixFromArtists(
 237        [FromRoute, Required] Guid itemId,
 238        [FromQuery] Guid? userId,
 239        [FromQuery] int? limit,
 240        [FromQuery, ModelBinder(typeof(CommaDelimitedCollectionModelBinder))] ItemFields[] fields,
 241        [FromQuery] bool? enableImages,
 242        [FromQuery] bool? enableUserData,
 243        [FromQuery] int? imageTypeLimit,
 244        [FromQuery, ModelBinder(typeof(CommaDelimitedCollectionModelBinder))] ImageType[] enableImageTypes)
 245    {
 0246        userId = RequestHelpers.GetUserId(User, userId);
 0247        var user = userId.IsNullOrEmpty()
 0248            ? null
 0249            : _userManager.GetUserById(userId.Value);
 0250        var item = _libraryManager.GetItemById<BaseItem>(itemId, user);
 0251        if (item is null)
 252        {
 0253            return NotFound();
 254        }
 255
 0256        var dtoOptions = new DtoOptions { Fields = fields }
 0257            .AddAdditionalDtoOptions(enableImages, enableUserData, imageTypeLimit, enableImageTypes);
 0258        var items = _musicManager.GetInstantMixFromItem(item, user, dtoOptions);
 0259        return GetResult(items, user, limit, dtoOptions);
 260    }
 261
 262    /// <summary>
 263    /// Creates an instant playlist based on a given item.
 264    /// </summary>
 265    /// <param name="itemId">The item id.</param>
 266    /// <param name="userId">Optional. Filter by user id, and attach user data.</param>
 267    /// <param name="limit">Optional. The maximum number of records to return.</param>
 268    /// <param name="fields">Optional. Specify additional fields of information to return in the output.</param>
 269    /// <param name="enableImages">Optional. Include image information in output.</param>
 270    /// <param name="enableUserData">Optional. Include user data.</param>
 271    /// <param name="imageTypeLimit">Optional. The max number of images to return, per image type.</param>
 272    /// <param name="enableImageTypes">Optional. The image types to include in the output.</param>
 273    /// <response code="200">Instant playlist returned.</response>
 274    /// <response code="404">Item not found.</response>
 275    /// <returns>A <see cref="QueryResult{BaseItemDto}"/> with the playlist items.</returns>
 276    [HttpGet("Items/{itemId}/InstantMix")]
 277    [ProducesResponseType(StatusCodes.Status200OK)]
 278    [ProducesResponseType(StatusCodes.Status404NotFound)]
 279    public ActionResult<QueryResult<BaseItemDto>> GetInstantMixFromItem(
 280        [FromRoute, Required] Guid itemId,
 281        [FromQuery] Guid? userId,
 282        [FromQuery] int? limit,
 283        [FromQuery, ModelBinder(typeof(CommaDelimitedCollectionModelBinder))] ItemFields[] fields,
 284        [FromQuery] bool? enableImages,
 285        [FromQuery] bool? enableUserData,
 286        [FromQuery] int? imageTypeLimit,
 287        [FromQuery, ModelBinder(typeof(CommaDelimitedCollectionModelBinder))] ImageType[] enableImageTypes)
 288    {
 0289        userId = RequestHelpers.GetUserId(User, userId);
 0290        var user = userId.IsNullOrEmpty()
 0291            ? null
 0292            : _userManager.GetUserById(userId.Value);
 0293        var item = _libraryManager.GetItemById<BaseItem>(itemId, user);
 0294        if (item is null)
 295        {
 0296            return NotFound();
 297        }
 298
 0299        var dtoOptions = new DtoOptions { Fields = fields }
 0300            .AddAdditionalDtoOptions(enableImages, enableUserData, imageTypeLimit, enableImageTypes);
 0301        var items = _musicManager.GetInstantMixFromItem(item, user, dtoOptions);
 0302        return GetResult(items, user, limit, dtoOptions);
 303    }
 304
 305    /// <summary>
 306    /// Creates an instant playlist based on a given artist.
 307    /// </summary>
 308    /// <param name="id">The item id.</param>
 309    /// <param name="userId">Optional. Filter by user id, and attach user data.</param>
 310    /// <param name="limit">Optional. The maximum number of records to return.</param>
 311    /// <param name="fields">Optional. Specify additional fields of information to return in the output.</param>
 312    /// <param name="enableImages">Optional. Include image information in output.</param>
 313    /// <param name="enableUserData">Optional. Include user data.</param>
 314    /// <param name="imageTypeLimit">Optional. The max number of images to return, per image type.</param>
 315    /// <param name="enableImageTypes">Optional. The image types to include in the output.</param>
 316    /// <response code="200">Instant playlist returned.</response>
 317    /// <response code="404">Item not found.</response>
 318    /// <returns>A <see cref="QueryResult{BaseItemDto}"/> with the playlist items.</returns>
 319    [HttpGet("Artists/InstantMix")]
 320    [ProducesResponseType(StatusCodes.Status200OK)]
 321    [ProducesResponseType(StatusCodes.Status404NotFound)]
 322    [Obsolete("Use GetInstantMixFromArtists")]
 323    public ActionResult<QueryResult<BaseItemDto>> GetInstantMixFromArtists2(
 324        [FromQuery, Required] Guid id,
 325        [FromQuery] Guid? userId,
 326        [FromQuery] int? limit,
 327        [FromQuery, ModelBinder(typeof(CommaDelimitedCollectionModelBinder))] ItemFields[] fields,
 328        [FromQuery] bool? enableImages,
 329        [FromQuery] bool? enableUserData,
 330        [FromQuery] int? imageTypeLimit,
 331        [FromQuery, ModelBinder(typeof(CommaDelimitedCollectionModelBinder))] ImageType[] enableImageTypes)
 332    {
 333        return GetInstantMixFromArtists(
 334            id,
 335            userId,
 336            limit,
 337            fields,
 338            enableImages,
 339            enableUserData,
 340            imageTypeLimit,
 341            enableImageTypes);
 342    }
 343
 344    /// <summary>
 345    /// Creates an instant playlist based on a given genre.
 346    /// </summary>
 347    /// <param name="id">The item id.</param>
 348    /// <param name="userId">Optional. Filter by user id, and attach user data.</param>
 349    /// <param name="limit">Optional. The maximum number of records to return.</param>
 350    /// <param name="fields">Optional. Specify additional fields of information to return in the output.</param>
 351    /// <param name="enableImages">Optional. Include image information in output.</param>
 352    /// <param name="enableUserData">Optional. Include user data.</param>
 353    /// <param name="imageTypeLimit">Optional. The max number of images to return, per image type.</param>
 354    /// <param name="enableImageTypes">Optional. The image types to include in the output.</param>
 355    /// <response code="200">Instant playlist returned.</response>
 356    /// <response code="404">Item not found.</response>
 357    /// <returns>A <see cref="QueryResult{BaseItemDto}"/> with the playlist items.</returns>
 358    [HttpGet("MusicGenres/InstantMix")]
 359    [ProducesResponseType(StatusCodes.Status200OK)]
 360    [ProducesResponseType(StatusCodes.Status404NotFound)]
 361    public ActionResult<QueryResult<BaseItemDto>> GetInstantMixFromMusicGenreById(
 362        [FromQuery, Required] Guid id,
 363        [FromQuery] Guid? userId,
 364        [FromQuery] int? limit,
 365        [FromQuery, ModelBinder(typeof(CommaDelimitedCollectionModelBinder))] ItemFields[] fields,
 366        [FromQuery] bool? enableImages,
 367        [FromQuery] bool? enableUserData,
 368        [FromQuery] int? imageTypeLimit,
 369        [FromQuery, ModelBinder(typeof(CommaDelimitedCollectionModelBinder))] ImageType[] enableImageTypes)
 370    {
 0371        userId = RequestHelpers.GetUserId(User, userId);
 0372        var user = userId.IsNullOrEmpty()
 0373            ? null
 0374            : _userManager.GetUserById(userId.Value);
 0375        var item = _libraryManager.GetItemById<BaseItem>(id, user);
 0376        if (item is null)
 377        {
 0378            return NotFound();
 379        }
 380
 0381        var dtoOptions = new DtoOptions { Fields = fields }
 0382            .AddAdditionalDtoOptions(enableImages, enableUserData, imageTypeLimit, enableImageTypes);
 0383        var items = _musicManager.GetInstantMixFromItem(item, user, dtoOptions);
 0384        return GetResult(items, user, limit, dtoOptions);
 385    }
 386
 387    private QueryResult<BaseItemDto> GetResult(IReadOnlyList<BaseItem> items, User? user, int? limit, DtoOptions dtoOpti
 388    {
 0389        var totalCount = items.Count;
 390
 0391        if (limit.HasValue && limit < items.Count)
 392        {
 0393            items = items.Take(limit.Value).ToArray();
 394        }
 395
 0396        var result = new QueryResult<BaseItemDto>(
 0397            0,
 0398            totalCount,
 0399            _dtoService.GetBaseItemDtos(items, dtoOptions, user));
 400
 0401        return result;
 402    }
 403}

Methods/Properties

.ctor(MediaBrowser.Controller.Library.IUserManager,MediaBrowser.Controller.Dto.IDtoService,MediaBrowser.Controller.Library.IMusicManager,MediaBrowser.Controller.Library.ILibraryManager)
GetInstantMixFromSong(System.Guid,System.Nullable`1<System.Guid>,System.Nullable`1<System.Int32>,MediaBrowser.Model.Querying.ItemFields[],System.Nullable`1<System.Boolean>,System.Nullable`1<System.Boolean>,System.Nullable`1<System.Int32>,MediaBrowser.Model.Entities.ImageType[])
GetInstantMixFromAlbum(System.Guid,System.Nullable`1<System.Guid>,System.Nullable`1<System.Int32>,MediaBrowser.Model.Querying.ItemFields[],System.Nullable`1<System.Boolean>,System.Nullable`1<System.Boolean>,System.Nullable`1<System.Int32>,MediaBrowser.Model.Entities.ImageType[])
GetInstantMixFromPlaylist(System.Guid,System.Nullable`1<System.Guid>,System.Nullable`1<System.Int32>,MediaBrowser.Model.Querying.ItemFields[],System.Nullable`1<System.Boolean>,System.Nullable`1<System.Boolean>,System.Nullable`1<System.Int32>,MediaBrowser.Model.Entities.ImageType[])
GetInstantMixFromMusicGenreByName(System.String,System.Nullable`1<System.Guid>,System.Nullable`1<System.Int32>,MediaBrowser.Model.Querying.ItemFields[],System.Nullable`1<System.Boolean>,System.Nullable`1<System.Boolean>,System.Nullable`1<System.Int32>,MediaBrowser.Model.Entities.ImageType[])
GetInstantMixFromArtists(System.Guid,System.Nullable`1<System.Guid>,System.Nullable`1<System.Int32>,MediaBrowser.Model.Querying.ItemFields[],System.Nullable`1<System.Boolean>,System.Nullable`1<System.Boolean>,System.Nullable`1<System.Int32>,MediaBrowser.Model.Entities.ImageType[])
GetInstantMixFromItem(System.Guid,System.Nullable`1<System.Guid>,System.Nullable`1<System.Int32>,MediaBrowser.Model.Querying.ItemFields[],System.Nullable`1<System.Boolean>,System.Nullable`1<System.Boolean>,System.Nullable`1<System.Int32>,MediaBrowser.Model.Entities.ImageType[])
GetInstantMixFromMusicGenreById(System.Guid,System.Nullable`1<System.Guid>,System.Nullable`1<System.Int32>,MediaBrowser.Model.Querying.ItemFields[],System.Nullable`1<System.Boolean>,System.Nullable`1<System.Boolean>,System.Nullable`1<System.Int32>,MediaBrowser.Model.Entities.ImageType[])
GetResult(System.Collections.Generic.IReadOnlyList`1<MediaBrowser.Controller.Entities.BaseItem>,Jellyfin.Database.Implementations.Entities.User,System.Nullable`1<System.Int32>,MediaBrowser.Controller.Dto.DtoOptions)