Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement multi-part audiobook support #11517

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

Samson50
Copy link

@Samson50 Samson50 commented May 9, 2024

Modify the server to handle audiobooks which are split into multiple audio files. This assumes all files for a single audiobook are in their own directory and each directory only contains files for a single audiobook.

By itself, the changes in this merge request allow the server to handle resolving multi-part audiobooks into a single parent AudioBook entity and serve to the client under the normal books view. Playback can be started from the beginning of the audiobook and continue through all chapters but cannot be "resumed" once the play session is stopped.

When combined with the changes in the web pull request, playback can be resumed from the most recent stopping point from the books list view or from the "Continue Listening" entry.

Changes

  • Changed AudioBook entity to a subclass of Folder - serving as a parent for the chapters/files of an audiobook
  • Added entity for AudioBookFile representing the individual playable media files of an audiobook
  • Added conditionals for AudioBook/AudioBookFiles to controllers/managers to enable expected playback behavior

Issues
Fixes #10668

@Samson50 Samson50 changed the title Implement multi-part audiobook support DRAFT: Implement multi-part audiobook support May 9, 2024
@gnattu gnattu marked this pull request as draft May 9, 2024 05:51
@jellyfin-bot
Copy link
Contributor

This pull request has merge conflicts. Please resolve the conflicts so the PR can be successfully reviewed and merged.

@jellyfin-bot jellyfin-bot added merge conflict Merge conflicts should be resolved before a merge and removed merge conflict Merge conflicts should be resolved before a merge labels May 15, 2024
@Samson50 Samson50 changed the title DRAFT: Implement multi-part audiobook support Implement multi-part audiobook support May 25, 2024
@Samson50 Samson50 marked this pull request as ready for review May 25, 2024 01:57
Copy link
Member

@cvium cvium left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know enough about audio books to review this properly. How are they generally structured? Are audio files chapters or can they be cut by length/size? Should we be agnostic about it?

It also sounds like an audio book is really just a playlist with some extra state (resume point). Have you explored that avenue?


if (audioFiles == 0 || nonAudioFiles / audioFiles > 1)
{
_logger.LogDebug("Less than half of the files in {0} were audio files, probably not an AudioBook directory", args.Path);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this check needed?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

By my understanding, resolvers are attempted until one succeeds. The priority value is high (low in sorted list) so it shouldn't come up often, but I didn't want to assume it would always only be resolving audiobooks. This catches cases where there is an unresolved directory which contains at least one file with an audio extension but mostly other files which I believe is unlikely for an audiobook. I imagine most cases will be a directory containing some number of audiobook files (chapters / parts) and maybe a text file or two with some arbitrary information.

@@ -756,6 +757,13 @@ private void OnPlaybackStart(User user, BaseItem item)
data.Played = false;
}

// When we start playing an AudioBookFile, mark all previous chapters as played, and
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't really do this for tv. I don't know if that is comparable though

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right. This is the behavior I think most people would be expecting from audiobook playback. It makes it easier to resume from your last location (if you want to skip ahead or start from somewhere in the middle of a book started elsewhere, etc.) and ensures "Continue Listening" has a single, intuitive point (index and ticks).

return [(this, MediaSourceType.Default)];
}

public void SetFilesPlayed(User user, IUserDataManager userDataManager)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know this is how it's done in the past, but we generally don't like having this much logic in the entities as "untangling" them becomes a big hassle. Entities should contain some state and operations on their own values, but bringing in other dependencies is too much.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point. Do you have any thoughts on where I should put this logic?

targetItem.Album = sourceItem.Album;
}

// TODO: Create and register provider specific to book information and AudioBook information
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is Google Books a good candidate for that?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like it might. I had thought it would require an API key, but not for basic search which I think is all that's required.

I was thinking of using openlibrary

@solidsnake1298
Copy link
Member

I don't know enough about audio books to review this properly. How are they generally structured? Are audio files chapters or can they be cut by length/size? Should we be agnostic about it?

It also sounds like an audio book is really just a playlist with some extra state (resume point). Have you explored that avenue?

I've seen audio books come in either singular large files with an accompanying .cue file with the chapter markers (Audible does this with .cue files). Or as 1 file per chapter (LibriVox does this).

In either situation the audio book file(s) should be in its own folder. Jellyfin does not currently read in the .cue file for monolithic audio books, so there is no way to skip chapters.

@Samson50
Copy link
Author

It also sounds like an audio book is really just a playlist with some extra state (resume point). Have you explored that avenue?

Not deeply. However, playlists do not have the continuation/resume behavior people expect from audiobooks so I would have to reimplement the AudioBook entity as a/similar to the Playlist entity or embed a Playlist within an AudioBook and use its methods for resolution and retrieval. I think this would get rid of some new code and potentially the entire AudioBookFiles class, but I don't know how it would get the same functionality out of the web interface. Currently, the web changes add logic to the playbackmanager to recognize "AudioBook" and "AudioBookFile" entities and do some stuff to set the playback state appropriately. Without the "AudioBookFile" class, I don't know how to get the web interface to set the state from the playbackmanger as it would only appear as the base "Audio" entity. If you're familiar with how the jellyfin-web works, I'd really appreciate any help understanding it so I could do something more sophisticated/long term.

Copy link

Changes in OpenAPI specification found. Expand to see details.

What's Changed


GET /Items/Filters
Parameters:

Changed: includeItemTypes in query

Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.

POST /Sessions/{sessionId}/Viewing
Parameters:

Changed: itemType in query

The type of item to browse to.

GET /Items/Filters2
Parameters:

Changed: includeItemTypes in query

Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.

GET /Artists/{name}
Return Type:

Changed response : 200 OK

Artist returned.

  • Changed content type : application/json

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

GET /Genres/{genreName}
Return Type:

Changed response : 200 OK

Genres returned.

  • Changed content type : application/json

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

GET /Items/{itemId}
Return Type:

Changed response : 200 OK

Item returned.

  • Changed content type : application/json

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

POST /Items/{itemId}
Request:

Changed content type : application/json

Updated BaseItemDto :

  • Changed property Type (string)

    The base item kind.

    Updated BaseItemKind :
    Added enum value:

    • AudioBookFile
      Added enum value:

    • AudioBookFile
      Changed content type : text/json

Updated BaseItemDto :

  • Changed property Type (string)

    The base item kind.

    Updated BaseItemKind :
    Added enum value:

    • AudioBookFile
      Added enum value:

    • AudioBookFile
      Changed content type : application/*+json

Updated BaseItemDto :

  • Changed property Type (string)

    The base item kind.

    Updated BaseItemKind :
    Added enum value:

    • AudioBookFile
      Added enum value:

    • AudioBookFile

GET /Items/{itemId}/Ancestors
Return Type:

Changed response : 200 OK

Item parents returned.

  • Changed content type : application/json

    Changed items (object):
    > This is strictly used as a data transfer object from the api layer.
    > This holds information about a BaseItem in a format that is convenient for the client.

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    Changed items (object):
    > This is strictly used as a data transfer object from the api layer.
    > This holds information about a BaseItem in a format that is convenient for the client.

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    Changed items (object):
    > This is strictly used as a data transfer object from the api layer.
    > This holds information about a BaseItem in a format that is convenient for the client.

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

GET /LiveTv/Channels/{channelId}
Return Type:

Changed response : 200 OK

Live tv channel returned.

  • Changed content type : application/json

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

GET /LiveTv/Programs/{programId}
Return Type:

Changed response : 200 OK

Program returned.

  • Changed content type : application/json

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

GET /LiveTv/Recordings/{recordingId}
Return Type:

Changed response : 200 OK

Recording returned.

  • Changed content type : application/json

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

GET /MusicGenres/{genreName}
Return Type:

Changed response : 200 OK

Success

  • Changed content type : application/json

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

GET /Persons/{name}
Return Type:

Changed response : 200 OK

Person returned.

  • Changed content type : application/json

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

GET /Search/Hints
Parameters:

Changed: includeItemTypes in query

If specified, only results with the specified item types are returned. This allows multiple, comma delimited.

Changed: excludeItemTypes in query

If specified, results with these item types are filtered out. This allows multiple, comma delimited.

Return Type:

Changed response : 200 OK

Search hint returned.

  • Changed content type : application/json

    • Changed property SearchHints (array)

      Gets the search hints.

      Changed items (object):
      > Class SearchHintResult.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property SearchHints (array)

      Gets the search hints.

      Changed items (object):
      > Class SearchHintResult.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property SearchHints (array)

      Gets the search hints.

      Changed items (object):
      > Class SearchHintResult.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /Studios/{name}
Return Type:

Changed response : 200 OK

Studio returned.

  • Changed content type : application/json

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

GET /Items/{itemId}/LocalTrailers
Return Type:

Changed response : 200 OK

An Microsoft.AspNetCore.Mvc.OkResult containing the item's local trailers.

  • Changed content type : application/json

    Changed items (object):
    > This is strictly used as a data transfer object from the api layer.
    > This holds information about a BaseItem in a format that is convenient for the client.

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    Changed items (object):
    > This is strictly used as a data transfer object from the api layer.
    > This holds information about a BaseItem in a format that is convenient for the client.

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    Changed items (object):
    > This is strictly used as a data transfer object from the api layer.
    > This holds information about a BaseItem in a format that is convenient for the client.

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

GET /Items/{itemId}/SpecialFeatures
Return Type:

Changed response : 200 OK

Special features returned.

  • Changed content type : application/json

    Changed items (object):
    > This is strictly used as a data transfer object from the api layer.
    > This holds information about a BaseItem in a format that is convenient for the client.

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    Changed items (object):
    > This is strictly used as a data transfer object from the api layer.
    > This holds information about a BaseItem in a format that is convenient for the client.

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    Changed items (object):
    > This is strictly used as a data transfer object from the api layer.
    > This holds information about a BaseItem in a format that is convenient for the client.

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

GET /Items/Latest
Parameters:

Changed: includeItemTypes in query

Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.

Return Type:

Changed response : 200 OK

Latest media returned.

  • Changed content type : application/json

    Changed items (object):
    > This is strictly used as a data transfer object from the api layer.
    > This holds information about a BaseItem in a format that is convenient for the client.

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    Changed items (object):
    > This is strictly used as a data transfer object from the api layer.
    > This holds information about a BaseItem in a format that is convenient for the client.

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    Changed items (object):
    > This is strictly used as a data transfer object from the api layer.
    > This holds information about a BaseItem in a format that is convenient for the client.

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

GET /Items/Root
Return Type:

Changed response : 200 OK

Root folder returned.

  • Changed content type : application/json

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

GET /Years/{year}
Return Type:

Changed response : 200 OK

Year returned.

  • Changed content type : application/json

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Type (string)

      The base item kind.

      Updated BaseItemKind :
      Added enum value:

      • AudioBookFile
        Added enum value:

      • AudioBookFile

GET /Artists
Parameters:

Changed: excludeItemTypes in query

Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.

Changed: includeItemTypes in query

Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.

Return Type:

Changed response : 200 OK

Artists returned.

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /Artists/AlbumArtists
Parameters:

Changed: excludeItemTypes in query

Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.

Changed: includeItemTypes in query

Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.

Return Type:

Changed response : 200 OK

Album artists returned.

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /Channels
Return Type:

Changed response : 200 OK

Channels returned.

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /Channels/{channelId}/Items
Return Type:

Changed response : 200 OK

Channel items returned.

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /Channels/Items/Latest
Return Type:

Changed response : 200 OK

Latest channel items returned.

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /Genres
Parameters:

Changed: excludeItemTypes in query

Optional. If specified, results will be filtered out based on item type. This allows multiple, comma delimited.

Changed: includeItemTypes in query

Optional. If specified, results will be filtered in based on item type. This allows multiple, comma delimited.

Return Type:

Changed response : 200 OK

Genres returned.

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /Albums/{itemId}/InstantMix
Return Type:

Changed response : 200 OK

Instant playlist returned.

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /Artists/{itemId}/InstantMix
Return Type:

Changed response : 200 OK

Instant playlist returned.

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /Artists/InstantMix
Return Type:

Changed response : 200 OK

Instant playlist returned.

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /Items/{itemId}/InstantMix
Return Type:

Changed response : 200 OK

Instant playlist returned.

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /MusicGenres/{name}/InstantMix
Return Type:

Changed response : 200 OK

Instant playlist returned.

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /MusicGenres/InstantMix
Return Type:

Changed response : 200 OK

Instant playlist returned.

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /Playlists/{itemId}/InstantMix
Return Type:

Changed response : 200 OK

Instant playlist returned.

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /Songs/{itemId}/InstantMix
Return Type:

Changed response : 200 OK

Instant playlist returned.

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /Items
Parameters:

Changed: excludeItemTypes in query

Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.

Changed: includeItemTypes in query

Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited.

Return Type:

Changed response : 200 OK

Success

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /UserItems/Resume
Parameters:

Changed: excludeItemTypes in query

Optional. If specified, results will be filtered based on item type. This allows multiple, comma delimited.

Changed: includeItemTypes in query

Optional. If specified, results will be filtered based on the item type. This allows multiple, comma delimited.

Return Type:

Changed response : 200 OK

Items returned.

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /Albums/{itemId}/Similar
Return Type:

Changed response : 200 OK

Similar items returned.

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /Artists/{itemId}/Similar
Return Type:

Changed response : 200 OK

Similar items returned.

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /Items/{itemId}/CriticReviews
Return Type:

Changed response : 200 OK

Critic reviews returned.

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /Items/{itemId}/Similar
Return Type:

Changed response : 200 OK

Similar items returned.

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /Items/{itemId}/ThemeSongs
Return Type:

Changed response : 200 OK

Theme songs returned.

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /Items/{itemId}/ThemeVideos
Return Type:

Changed response : 200 OK

Theme videos returned.

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /Library/MediaFolders
Return Type:

Changed response : 200 OK

Media folders returned.

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="PascalCase"

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

GET /Movies/{itemId}/Similar
Return Type:

Changed response : 200 OK

Similar items returned.

  • Changed content type : application/json

    • Changed property Items (array)

      Gets or sets the items.

      Changed items (object):
      > This is strictly used as a data transfer object from the api layer.
      > This holds information about a BaseItem in a format that is convenient for the client.

      • Changed property Type (string)

        The base item kind.

        Updated BaseItemKind :
        Added enum value:

        • AudioBookFile
          Added enum value:

        • AudioBookFile

  • Changed content type : application/json; profile="CamelCase"

    • Changed prop...[Comment body truncated]

@jellyfin-bot jellyfin-bot added the merge conflict Merge conflicts should be resolved before a merge label Jun 1, 2024
@jellyfin-bot
Copy link
Contributor

This pull request has merge conflicts. Please resolve the conflicts so the PR can be successfully reviewed and merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merge conflict Merge conflicts should be resolved before a merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Issue]: Multi-Part Audiobook being treated as folder with indivdual files instead of one book
4 participants