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

Add Lyrics API Endpoint #8381

Merged
merged 54 commits into from
Oct 7, 2022
Merged

Conversation

1hitsong
Copy link
Member

@1hitsong 1hitsong commented Sep 10, 2022

Changes
Adds an API endpoint to get lyrics for a requested item. The lyrics are sourced from local .LRC or .TXT files and returned as JSON for client consumption.

Lyric files must match the filenames for their corresponding item.

For example: The lyric file for 01 Death Eternal.mp3 must be 01 Death Eternal.lrc or 01 Death Eternal.txt

Sample Response

    "Results": [
        {
            "Start": 670200000,
            "Text": "'Cause it's a bittersweet symphony that's life."
        },
        {
            "Start": 780399999,
            "Text": "Trying to make ends meet,"
        },
        {
            "Start": 806700000,
            "Text": "you're a slave to money"
        }
    ]
}

Notes

This change uses a compiled version the NuGet package LrcParser.

@github-actions
Copy link

github-actions bot commented Sep 10, 2022

Changes in OpenAPI specification found. Expand to see details.

What's New


GET /Users/{userId}/Items/{itemId}/Lyrics

Gets an item's lyrics.

What's Changed


GET /Artists/{name}
Return Type:

Changed response : 200 OK

Artist returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Genres/{genreName}
Return Type:

Changed response : 200 OK

Genres returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

POST /Items/{itemId}
Request:

Changed content type : application/json

Updated BaseItemDto :

  • Added property HasLyrics (boolean)

Changed content type : text/json

Updated BaseItemDto :

  • Added property HasLyrics (boolean)

Changed content type : application/*+json

Updated BaseItemDto :

  • Added property HasLyrics (boolean)
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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

  • 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

  • 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed response : 200 OK

Live tv channel returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed response : 200 OK

Program returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed response : 200 OK

Recording returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /MusicGenres/{genreName}
Return Type:

Changed response : 200 OK

Success

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Persons/{name}
Return Type:

Changed response : 200 OK

Person returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Studios/{name}
Return Type:

Changed response : 200 OK

Studio returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Users/{userId}/Items/{itemId}
Return Type:

Changed response : 200 OK

Item returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Users/{userId}/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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

  • 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

  • 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Users/{userId}/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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

  • 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

  • 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Users/{userId}/Items/Latest
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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

  • 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

  • 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Users/{userId}/Items/Root
Return Type:

Changed response : 200 OK

Root folder returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Years/{year}
Return Type:

Changed response : 200 OK

Year returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Artists
Return Type:

Changed response : 200 OK

Artists returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Artists/AlbumArtists
Return Type:

Changed response : 200 OK

Album artists returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Channels
Return Type:

Changed response : 200 OK

Channels returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed response : 200 OK

Channel items returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Channels/Items/Latest
Return Type:

Changed response : 200 OK

Latest channel items returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Genres
Return Type:

Changed response : 200 OK

Genres returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed response : 200 OK

Instant playlist returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed response : 200 OK

Instant playlist returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Artists/InstantMix
Return Type:

Changed response : 200 OK

Instant playlist returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed response : 200 OK

Instant playlist returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed response : 200 OK

Instant playlist returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /MusicGenres/InstantMix
Return Type:

Changed response : 200 OK

Instant playlist returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed response : 200 OK

Instant playlist returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed response : 200 OK

Instant playlist returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Items
Return Type:

Changed response : 200 OK

Success

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Users/{userId}/Items
Return Type:

Changed response : 200 OK

Success

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Users/{userId}/Items/Resume
Return Type:

Changed response : 200 OK

Items returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed response : 200 OK

Similar items returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed response : 200 OK

Similar items returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed response : 200 OK

Critic reviews returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed response : 200 OK

Similar items returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed response : 200 OK

Theme songs returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed response : 200 OK

Theme videos returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Library/MediaFolders
Return Type:

Changed response : 200 OK

Media folders returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed response : 200 OK

Similar items returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed response : 200 OK

Similar items returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed response : 200 OK

Similar items returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /LiveTv/Channels
Return Type:

Changed response : 200 OK

Available live tv channels returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /LiveTv/Programs
Return Type:

Changed response : 200 OK

Live tv epgs returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

POST /LiveTv/Programs
Return Type:

Changed response : 200 OK

Live tv epgs returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /LiveTv/Programs/Recommended
Return Type:

Changed response : 200 OK

Recommended epgs returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /LiveTv/Recordings
Return Type:

Changed response : 200 OK

Live tv recordings returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /LiveTv/Recordings/Folders
Return Type:

Changed response : 200 OK

Recording folders returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /LiveTv/Recordings/Groups
Return Type:

Changed response : 200 OK

Recording groups returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /LiveTv/Recordings/Series
Return Type:

Changed response : 200 OK

Live tv recordings returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /LiveTv/Timers/{timerId}
Return Type:

Changed response : 200 OK

Timer returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head Changed property ProgramInfo (object)

Gets or sets the program information.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Changed property ProgramInfo (object)

Gets or sets the program information.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Changed property ProgramInfo (object)

Gets or sets the program information.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

POST /LiveTv/Timers/{timerId}
Request:

Changed content type : application/json

Updated TimerInfoDto :

  • Changed property ProgramInfo (object)

Gets or sets the program information.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

Changed content type : text/json

Updated TimerInfoDto :

  • Changed property ProgramInfo (object)

Gets or sets the program information.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

Changed content type : application/*+json

Updated TimerInfoDto :

  • Changed property ProgramInfo (object)

Gets or sets the program information.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Movies/Recommendations
Return Type:

Changed response : 200 OK

Movie recommendations returned.

  • Changed content type : application/json

Changed items (object):

openapi-base openapi-changes.md openapi-head Changed property Items (array)

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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed items (object):

openapi-base openapi-changes.md openapi-head Changed property Items (array)

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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed items (object):

openapi-base openapi-changes.md openapi-head Changed property Items (array)

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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /MusicGenres
Return Type:

Changed response : 200 OK

Music genres returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Persons
Return Type:

Changed response : 200 OK

Persons returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Playlists/{playlistId}/Items
Return Type:

Changed response : 200 OK

Original playlist returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

POST /Sessions/Playing
Request:

Changed content type : application/json

Updated PlaybackStartInfo :

  • Changed property Item (object)

Gets or sets the item.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

Changed content type : text/json

Updated PlaybackStartInfo :

  • Changed property Item (object)

Gets or sets the item.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

Changed content type : application/*+json

Updated PlaybackStartInfo :

  • Changed property Item (object)

Gets or sets the item.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

POST /Sessions/Playing/Progress
Request:

Changed content type : application/json

Updated PlaybackProgressInfo :

  • Changed property Item (object)

Gets or sets the item.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

Changed content type : text/json

Updated PlaybackProgressInfo :

  • Changed property Item (object)

Gets or sets the item.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

Changed content type : application/*+json

Updated PlaybackProgressInfo :

  • Changed property Item (object)

Gets or sets the item.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

POST /Sessions/Playing/Stopped
Request:

Changed content type : application/json

Updated PlaybackStopInfo :

  • Changed property Item (object)

Gets or sets the item.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

Changed content type : text/json

Updated PlaybackStopInfo :

  • Changed property Item (object)

Gets or sets the item.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

Changed content type : application/*+json

Updated PlaybackStopInfo :

  • Changed property Item (object)

Gets or sets the item.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Studios
Return Type:

Changed response : 200 OK

Studios returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Users/{userId}/Suggestions
Return Type:

Changed response : 200 OK

Suggestions returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Trailers
Return Type:

Changed response : 200 OK

Success

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Shows/{seriesId}/Episodes
Return Type:

Changed response : 200 OK

Success

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Shows/{seriesId}/Seasons
Return Type:

Changed response : 200 OK

Success

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Shows/NextUp
Return Type:

Changed response : 200 OK

Success

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Shows/Upcoming
Return Type:

Changed response : 200 OK

Success

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Users/{userId}/Items/{itemId}/Intros
Return Type:

Changed response : 200 OK

Intros returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Users/{userId}/Views
Return Type:

Changed response : 200 OK

User views returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Videos/{itemId}/AdditionalParts
Return Type:

Changed response : 200 OK

Additional parts returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Years
Return Type:

Changed response : 200 OK

Year query returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed response : 200 OK

Theme songs and videos returned.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head Changed property ThemeVideosResult (object)

Class ThemeMediaResult.

Updated ThemeMediaResult :
openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Changed property ThemeVideosResult (object)

Class ThemeMediaResult.

Updated ThemeMediaResult :
openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Changed property ThemeVideosResult (object)

Class ThemeMediaResult.

Updated ThemeMediaResult :
openapi-base openapi-changes.md openapi-head 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.

openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

POST /LiveTv/Timers
Request:

Changed content type : application/json

Updated TimerInfoDto :

  • Changed property ProgramInfo (object)

Gets or sets the program information.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

Changed content type : text/json

Updated TimerInfoDto :

  • Changed property ProgramInfo (object)

Gets or sets the program information.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

Changed content type : application/*+json

Updated TimerInfoDto :

  • Changed property ProgramInfo (object)

Gets or sets the program information.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /LiveTv/Timers
Return Type:

Changed response : 200 OK

Success

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head Changed property Items (array)

Gets or sets the items.

Changed items (object):

openapi-base openapi-changes.md openapi-head Changed property ProgramInfo (object)

Gets or sets the program information.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Changed property Items (array)

Gets or sets the items.

Changed items (object):

openapi-base openapi-changes.md openapi-head Changed property ProgramInfo (object)

Gets or sets the program information.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Changed property Items (array)

Gets or sets the items.

Changed items (object):

openapi-base openapi-changes.md openapi-head Changed property ProgramInfo (object)

Gets or sets the program information.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

GET /Sessions
Return Type:

Changed response : 200 OK

List of sessions returned.

  • Changed content type : application/json

Changed items (object):

Class SessionInfo.

openapi-base openapi-changes.md openapi-head Changed property NowPlayingItem (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.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed items (object):

Class SessionInfo.

openapi-base openapi-changes.md openapi-head Changed property NowPlayingItem (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.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

Changed items (object):

Class SessionInfo.

openapi-base openapi-changes.md openapi-head Changed property NowPlayingItem (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.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

POST /Users/{userId}/Authenticate
Return Type:

Changed response : 200 OK

User authenticated.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head Changed property SessionInfo (object)

Class SessionInfo.

Updated SessionInfo :
openapi-base openapi-changes.md openapi-head Changed property NowPlayingItem (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.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Changed property SessionInfo (object)

Class SessionInfo.

Updated SessionInfo :
openapi-base openapi-changes.md openapi-head Changed property NowPlayingItem (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.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Changed property SessionInfo (object)

Class SessionInfo.

Updated SessionInfo :
openapi-base openapi-changes.md openapi-head Changed property NowPlayingItem (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.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

POST /Users/AuthenticateByName
Return Type:

Changed response : 200 OK

User authenticated.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head Changed property SessionInfo (object)

Class SessionInfo.

Updated SessionInfo :
openapi-base openapi-changes.md openapi-head Changed property NowPlayingItem (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.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Changed property SessionInfo (object)

Class SessionInfo.

Updated SessionInfo :
openapi-base openapi-changes.md openapi-head Changed property NowPlayingItem (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.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Changed property SessionInfo (object)

Class SessionInfo.

Updated SessionInfo :
openapi-base openapi-changes.md openapi-head Changed property NowPlayingItem (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.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

POST /Users/AuthenticateWithQuickConnect
Return Type:

Changed response : 200 OK

User authenticated.

  • Changed content type : application/json

openapi-base openapi-changes.md openapi-head Changed property SessionInfo (object)

Class SessionInfo.

Updated SessionInfo :
openapi-base openapi-changes.md openapi-head Changed property NowPlayingItem (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.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Changed property SessionInfo (object)

Class SessionInfo.

Updated SessionInfo :
openapi-base openapi-changes.md openapi-head Changed property NowPlayingItem (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.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

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

openapi-base openapi-changes.md openapi-head Changed property SessionInfo (object)

Class SessionInfo.

Updated SessionInfo :
openapi-base openapi-changes.md openapi-head Changed property NowPlayingItem (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.

Updated BaseItemDto :
openapi-base openapi-changes.md openapi-head Added property HasLyrics (boolean)

Jellyfin.Api/Controllers/UserLibraryController.cs Outdated Show resolved Hide resolved
Jellyfin.Api/Controllers/UserLibraryController.cs Outdated Show resolved Hide resolved
Jellyfin.Api/Controllers/UserLibraryController.cs Outdated Show resolved Hide resolved
1hitsong and others added 3 commits September 9, 2022 21:08
Co-authored-by: Cody Robibero <cody@robibe.ro>
Co-authored-by: Cody Robibero <cody@robibe.ro>
Co-authored-by: Cody Robibero <cody@robibe.ro>
@nielsvanvelzen
Copy link
Member

I've looked at the API part only thinking how I would implement a lyrics feature in our Android apps. These are my findings:

  • Let the client know if there are any lyrics without calling the lyrics endpoint
    Just like with videos we know which video/audio/sub tracks are available before we start playback

  • Use proper nullability in API
    I'd imagine the start & text properties should never be null

  • Error for each line?
    If parsing the lyrics fails we should not respond instead of sending errors for each separate line

  • Document properties
    Are the lines always ordered by timestamp?
    Is the "start" in ticks/milliseconds/seconds?
    Can text be empty? Can it contains line breaks? HTML? Markdown?

  • ID tags
    According to Wikipedia lyric files may contain some metadata which we should also add to the response. I know a lot of my foobar_openlyrics files have this metadata.
    https://en.wikipedia.org/wiki/LRC_(file_format)

  • What happens to my lyric files without timestamps?
    Is everything a single "line" with start set to 0? Are the separate lines all with timestamp 0?

  • Enhanced format
    Some lrc files have "word time tags", how is that handled right now? (see Wikipedia page for example)

I think an API response might end up looking somewhat like this:

{
  "metadata": {
    "//": "Either a Dictionary<string,string> or a proper object with \"known\" id3 tags like Artist/Album etc",
    "artist": "Artist name",
    "title": "Track name",
  },
  "lines": [
    { "start": 0, "text": "Line 1" },
    { "start": 100, "text": "Line 2" },
    { "start": 300, "text": "Line 2" },
  ]
}

Some of the above mentioned stuff might be out of scope for this PR but these are my thoughts for now.

@1hitsong
Copy link
Member Author

Thanks for all the helpful comments y'all! I'll start working through these.

Co-authored-by: Neil Burrows <neil@pawprint.co.uk>
@1hitsong
Copy link
Member Author

Let the client know if there are any lyrics without calling the lyrics endpoint

Would this be satisfied by adding a HEAD endpoint that indicates whether or not lyrics are found?

Error for each line?

It'll be all or nothing. Either you get something back, or you get a 404 response.

Are the lines always ordered by timestamp?

Yes, they will be ordered in ascending order.

Is the "start" in ticks/milliseconds/seconds?

They will be ticks

Can text be empty? Can it contains line breaks? HTML? Markdown?

Yes across the board, but it will be encoded. Perhaps we could have an optional strip parameter to remove unwanted values (eg, strip HTML, string line breaks, etc.)

Example:

{
    "Results": [
        {
            "Start": 0,
            "Text": " <00:05.02>Some <00:07.23>lyrics"
        },
        {
            "Start": 75900000,
            "Text": ""
        },
        {
            "Start": 79400000,
            "Text": " Sing this song ##YELL!##"
        },
        {
            "Start": 150100000,
            "Text": " <strong>Yeah\\n\\r!</strong>"
        }
    ]
}

ID tags

I'll look into what it'll take to add ID data to the response.

What happens to my lyric files without timestamps?

What file format are they? Are the TXT or are they still LRC files?

Enhanced format

The line level timestamp will be used as the Start value in the JSON, and the word times will be passed as part of the Text value. This way clients are free to do with them as they please (use them, ignore them, etc.).

Example:

{
    "Start": 0,
    "Text": " <00:05.02>Some <00:07.23>lyrics"
},

@nielsvanvelzen
Copy link
Member

Would this be satisfied by adding a HEAD endpoint that indicates whether or not lyrics are found?

I was thinking adding it to the BaseItemDto in some way, there is a mediasources property where each source has mediastreams. lyrics could maybe be one of them, idk.

It'll be all or nothing. Either you get something back, or you get a 404 response.

So why is there an error property in the responses then?

What file format are they? Are the TXT or are they still LRC files?

lrc files but without timestamps at the start of each line. The Foobar2000 plugin UI slowly scrolls those lyrics.

@1hitsong
Copy link
Member Author

I was thinking adding it to the BaseItemDto in some way, there is a mediasources property where each source has mediastreams. lyrics could maybe be one of them, idk.

I'll take a look and see what I can come up with.

So why is there an error property in the responses then?

Originally I was returning an error description along with the NotFound(), but after code suggestions from Cody, it's no longer doing that. I'm updating the responses now and the error property will be removed.

lrc files but without timestamps at the start of each line. The Foobar2000 plugin UI slowly scrolls those lyrics.

Interesting. So essentially a TXT file in an LRC container. I'll take a look at it.

@ferferga
Copy link
Member

Thank you very much for this PR, been wanting to implement proper lyric support in Vue!

Two points though:

  • Why not also add compatibility for lyrics included in IDv3/FLAC (etc) tags? They are fetched by ffprobe during scan (and, in fact, they appear in JF logs), but they're not saved anywhere. Those are usually not synced, but at least we have something

  • I very much prefer @nielsvanvelzen proposed schema, as adding HTML tags to a response that will be served to multiple clients (not all of them web-based...) seems counterintuitive. I'd say just timestamps and strings should be present, all the other formatting should be handled by the client (which in the end is the one that knows how to show the info to the user), not server.

@1hitsong
Copy link
Member Author

Why not also add compatibility for lyrics included in IDv3/FLAC (etc) tags? They are fetched by ffprobe during scan (and, in fact, they appear in JF logs), but they're not saved anywhere. Those are usually not synced, but at least we have something

I'd like to keep the scope of this PR focused on local file support, but that sounds like a wonderful followup PR.

I very much prefer @nielsvanvelzen proposed schema...

I agree, so that's what I'm basing it on in the updated code. The server makes no assumptions about the data other than parsing meta and timestamps if present. Anything else in the text will get returned and clients can do what they want with it.

@1hitsong
Copy link
Member Author

I think I covered everything mentioned above.

Below is some sample output.

LRC File with MetaData

{
    "MetaData": {
        "ar": " The Verve",
        "ti": " Bitter Sweet Symphony",
        "al": " This Is Music",
        "by": " lcf1002",
        "id": " da_qblwhlsa"
    },
    "lyrics": [
        {
            "Start": 7800000,
            "Text": ""
        },
        {
            "Start": 670200000,
            "Text": "'Cause it's a bittersweet symphony that's life."
        },
        {
            "Start": 753700000,
            "Text": ""
        },
        {
            "Start": 780400000,
            "Text": "Trying to make ends meet,"
        },
        {
            "Start": 806700000,
            "Text": "you're a slave to money"
        },

LRC File without Metadata or TimeStamps

{
    "lyrics": [
        {
            "Text": "this"
        },
        {
            "Text": "is"
        },
        {
            "Text": "some"
        },
        {
            "Text": "lyrics"
        }
    ]
}

TXT File

{
    "lyrics": [
        {
            "Text": "This is a lyric"
        },
        {
            "Text": "so is this"
        }
    ]
}

@1hitsong
Copy link
Member Author

Additionally, I added the field HasLocalLyricsFile the get item API call. If a local lyric file is found and has a corresponding provider, this value will be true.

{
    "Name": "02 Voices of the Dead",
    "ServerId": "466d44350b294c0c888a93d77c3d5684",
    "Id": "f4c0097608894ff3bebaf802e596e03f",
    "Etag": "56beecb1e99461374e9d88a843c6a05f",
    "DateCreated": "2022-09-08T23:17:45.4225411Z",
    "CanDelete": true,
    "CanDownload": true,
    "HasLocalLyricsFile": true,
    ...

MediaBrowser.Model/Dto/BaseItemDto.cs Outdated Show resolved Hide resolved
Jellyfin.Api/Helpers/ItemHelper.cs Outdated Show resolved Hide resolved
Jellyfin.Api/Models/UserDtos/ILyricsProvider.cs Outdated Show resolved Hide resolved
Jellyfin.Api/Models/UserDtos/ILyricsProvider.cs Outdated Show resolved Hide resolved
Jellyfin.Api/Models/UserDtos/LrcLyricsProvider.cs Outdated Show resolved Hide resolved
This is adding those lyric providers to the DI pipeline along with a super simple implementation of how to use them in the controller method. Probably should be refactored into a lyric service of some sort that would have the providers injected into it.
Copy link
Member

@nielsvanvelzen nielsvanvelzen left a comment

Choose a reason for hiding this comment

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

API part looks good to me 👍

Co-authored-by: Claus Vium <cvium@users.noreply.github.com>
@crobibero crobibero requested a review from Bond-009 September 24, 2022 13:35
Copy link
Member

@Bond-009 Bond-009 left a comment

Choose a reason for hiding this comment

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

After these cosmetic changes it should be fine

MediaBrowser.Controller/Lyrics/LyricInfo.cs Outdated Show resolved Hide resolved
MediaBrowser.Providers/Lyric/LrcLyricProvider.cs Outdated Show resolved Hide resolved
MediaBrowser.Providers/Lyric/LrcLyricProvider.cs Outdated Show resolved Hide resolved
MediaBrowser.Providers/Lyric/TxtLyricProvider.cs Outdated Show resolved Hide resolved
1hitsong and others added 2 commits September 26, 2022 16:24
Co-authored-by: Bond-009 <bond.009@outlook.com>
@Chaphasilor
Copy link

Hi, I'm trying to start implementing client support for the new lyrics endpoints, but the endpoints don't seems to be in the unstable build of the server. There's also no mention of these endpoints in the OpenAPI doc for the unstable channel.
Am I looking in the wrong place? I assumed these changes were merged into master, and the unstable channel was built from master?

@nielsvanvelzen
Copy link
Member

The lyric stuff is definitely there

image

@Chaphasilor
Copy link

I found the problem. HasLyrics is not included when fetching multiple items (i.e. not specifying the itemId but only some filters like ParentId), even when including Fields: HasLyrics in the query parameters. I thought I'd tested that, but it seems like I got unlucky and used a song that didn't have lyrics (or at least the server hadn't picked them up yet).
Thanks for your help!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lyrics Issue related to lyrics release-highlight A major new feature for the next release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants