This is the multi-page printable view of this section. Click here to print.
Responses
- 1: AlbumID3
- 2: AlbumID3WithSongs
- 3: albumInfo
- 4: albumList
- 5: albumList2
- 6: artist
- 7: ArtistID3
- 8: artistInfo
- 9: artistInfo2
- 10: ArtistsID3
- 11: bookmark
- 12: bookmarks
- 13: chatMessage
- 14: chatMessages
- 15: Child
- 16: Contributor
- 17: directory
- 18: DiscTitle
- 19: error
- 20: genre
- 21: genres
- 22: Index
- 23: indexes
- 24: IndexID3
- 25: internetRadioStation
- 26: internetRadioStations
- 27: ItemDate
- 28: ItemGenre
- 29: jukeboxPlaylist
- 30: jukeboxStatus
- 31: license
- 32: line
- 33: lyrics
- 34: lyricsList
- 35: musicFolder
- 36: musicFolders
- 37: newestPodcasts
- 38: nowPlaying
- 39: NowPlayingEntry
- 40: OpenSubsonicExtension
- 41: playlist
- 42: playlists
- 43: playlistWithSongs
- 44: PlayQueue
- 45: podcasts
- 46: randomSongs
- 47: RecordLabel
- 48: ReplayGain
- 49: scanStatus
- 50: searchResult
- 51: searchResult2
- 52: searchResult3
- 53: share
- 54: shares
- 55: similarSongs
- 56: similarSongs2
- 57: song
- 58: songsByGenre
- 59: starred
- 60: starred2
- 61: structuredLyrics
- 62: subsonic-response
- 63: tokenInfo
- 64: topSongs
- 65: user
- 66: users
- 67: videoInfo
- 68: videos
1 - AlbumID3
{
"id": "ad0f112b6dcf83de5e9cae85d07f0d35",
"name": "8-bit lagerfeuer",
"artist": "pornophonique",
"year": 2007,
"coverArt": "al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8",
"starred": "2023-03-22T01:51:06Z",
"duration": 1954,
"playCount": 97,
"genre": "Hip-Hop",
"created": "2023-03-10T02:19:35.784818075Z",
"artistId": "91c3901ac465b9efc439e4be4270c2b6",
"songCount": 8,
"played": "2023-03-28T00:45:13Z",
"userRating": 4,
"recordLabels": [
{
"name": "Sony"
}
],
"musicBrainzId": "189002e7-3285-4e2e-92a3-7f6c30d407a2",
"genres": [
{
"name": "Hip-Hop"
},
{
"name": "East coast"
}
],
"artists": [
{
"id": "ar-1",
"name": "Artist 1"
},
{
"id": "ar-2",
"name": "Artist 2"
}
],
"displayArtist": "Artist 1 feat. Artist 2",
"releaseTypes": [
"Album",
"Remixes"
],
"moods": [
"slow",
"cool"
],
"sortName": "lagerfeuer (8-bit)",
"originalReleaseDate": {
"year": 2001,
"month": 3,
"day": 10
},
"releaseDate": {
"year": 2001,
"month": 3,
"day": 10
},
"isCompilation": false,
"discTitles": [
{
"disc": 0,
"title": "Disc 0 title"
},
{
"disc": 2,
"title": "Disc 1 title"
}
]
}
{
"id": "ad0f112b6dcf83de5e9cae85d07f0d35",
"name": "8-bit lagerfeuer",
"artist": "pornophonique",
"year": 2007,
"coverArt": "al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8",
"starred": "2023-03-22T01:51:06Z",
"duration": 1954,
"playCount": 97,
"genre": "Hip-Hop",
"created": "2023-03-10T02:19:35.784818075Z",
"artistId": "91c3901ac465b9efc439e4be4270c2b6",
"songCount": 8
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
id |
string |
Yes | The id of the album | |
name |
string |
Yes | The album name. | |
artist |
string |
No | Artist name. | |
artistId |
string |
No | The id of the artist | |
coverArt |
string |
No | A covertArt id. | |
songCount |
int |
Yes | Number of songs | |
duration |
int |
Yes | Total duration of the album in seconds | |
playCount |
long |
No | Number of play of the album | |
created |
string |
Yes | Date the album was added. [ISO 8601] | |
starred |
string |
No | Date the album was starred. [ISO 8601] | |
year |
int |
No | The album year | |
genre |
string |
No | The album genre | |
played |
string |
No | Yes | Date the album was last played. [ISO 8601] |
userRating |
int |
No | Yes | The user rating of the album. [1-5] |
recordLabels |
Array of RecordLabel |
No | Yes | The labels producing the album. |
musicBrainzId |
string |
No | Yes | The album MusicBrainzID. |
genres |
Array of ItemGenre |
No | Yes | The list of all genres of the album. |
artists |
Array of ArtistID3 |
No | Yes | The list of all album artists of the album. (Note: Only the required ArtistID3 fields should be returned by default) |
displayArtist |
string |
No | Yes | The single value display artist. |
releaseTypes |
Array of string |
No | Yes | The types of this album release. (Album, Compilation, EP, Remix, …). |
moods |
Array of string |
No | Yes | The list of all moods of the album. |
sortName |
string |
No | Yes | The album sort name. |
originalReleaseDate |
ItemDate |
No | Yes | Date the album was originally released. |
releaseDate |
ItemDate |
No | Yes | Date the specific edition of the album was released. Note: for files using ID3 tags, releaseDate should generally be read from the TDRL tag. Servers that use a different source for this field should document the behavior. |
isCompilation |
boolean |
No | Yes | True if the album is a compilation. |
discTitles |
Array of DiscTitle |
No | Yes | The list of all disc titles of the album. |
OpenSubsonic
New fields are added:
played
userRating
recordLabels
musicBrainzId
genres
artists
displayArtist
releaseType
moods
sortName
originalReleaseDate
isCompilation
discTitles
Note: All OpenSubsonic added fields are optionals. But if a server support a field it must return it with an empty / default value when not present in it’s database so that clients knows what the server supports.
Note: Even if some added fields may looks duplicated, it’s important to still return the legacy data for compatibility reasons.
2 - AlbumID3WithSongs
{
"id": "ad0f112b6dcf83de5e9cae85d07f0d35",
"name": "8-bit lagerfeuer",
"artist": "pornophonique",
"year": 2007,
"coverArt": "al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8",
"starred": "2023-03-22T01:51:06Z",
"duration": 1954,
"playCount": 97,
"genre": "Hip-Hop",
"created": "2023-03-10T02:19:35.784818075Z",
"artistId": "91c3901ac465b9efc439e4be4270c2b6",
"songCount": 8,
"played": "2023-03-28T00:45:13Z",
"userRating": 4,
"recordLabels": [
{
"name": "Sony"
}
],
"musicBrainzId": "189002e7-3285-4e2e-92a3-7f6c30d407a2",
"genres": [
{
"name": "Hip-Hop"
},
{
"name": "East coast"
}
],
"artists": [
{
"id": "ar-1",
"name": "Artist 1"
},
{
"id": "ar-2",
"name": "Artist 2"
}
],
"displayArtist": "Artist 1 feat. Artist 2",
"releaseTypes": [
"Album",
"Remixes"
],
"moods": [
"slow",
"cool"
],
"sortName": "lagerfeuer (8-bit)",
"originalReleaseDate": {
"year": 2001,
"month": 3,
"day": 10
},
"releaseDate": {
"year": 2001,
"month": 3,
"day": 10
},
"isCompilation": false,
"discTitles": [
{
"disc": 0,
"title": "Disc 0 title"
},
{
"disc": 2,
"title": "Disc 1 title"
}
],
"song": [
{
"id": "300000116",
"parent": "200000021",
"title": "Can I Help U?",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000021",
"album": "Forget and Remember",
"artistId": "100000036",
"artist": "Comfort Fit",
"coverArt": "300000116",
"duration": 103,
"bitRate": 216,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"track": 1,
"year": 2005,
"genre": "Hip-Hop",
"size": 2811819,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "user/Comfort Fit/Forget And Remember/1 - Can I Help U?.mp3"
},
{
"id": "300000121",
"parent": "200000021",
"title": "Planetary Picknick",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000021",
"album": "Forget and Remember",
"artistId": "100000036",
"artist": "Comfort Fit",
"coverArt": "300000121",
"duration": 358,
"bitRate": 238,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"track": 2,
"year": 2005,
"genre": "Hip-Hop",
"size": 10715592,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "user/Comfort Fit/Forget And Remember/2 - Planetary Picknick.mp3"
}
]
}
{
"id": "200000021",
"parent": "100000036",
"album": "Forget and Remember",
"title": "Forget and Remember",
"name": "Forget and Remember",
"isDir": true,
"coverArt": "al-200000021",
"songCount": 20,
"created": "2021-07-22T02:09:31+00:00",
"duration": 4248,
"playCount": 0,
"artistId": "100000036",
"artist": "Comfort Fit",
"year": 2005,
"genre": "Hip-Hop",
"song": [
{
"id": "300000116",
"parent": "200000021",
"title": "Can I Help U?",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000021",
"album": "Forget and Remember",
"artistId": "100000036",
"artist": "Comfort Fit",
"coverArt": "300000116",
"duration": 103,
"bitRate": 216,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"track": 1,
"year": 2005,
"genre": "Hip-Hop",
"size": 2811819,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "user/Comfort Fit/Forget And Remember/1 - Can I Help U?.mp3"
},
{
"id": "300000121",
"parent": "200000021",
"title": "Planetary Picknick",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000021",
"album": "Forget and Remember",
"artistId": "100000036",
"artist": "Comfort Fit",
"coverArt": "300000121",
"duration": 358,
"bitRate": 238,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"track": 2,
"year": 2005,
"genre": "Hip-Hop",
"size": 10715592,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "user/Comfort Fit/Forget And Remember/2 - Planetary Picknick.mp3"
}
]
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
id |
string |
Yes | The id of the album | |
name |
string |
Yes | The album name. | |
artist |
string |
No | Artist name. | |
artistId |
string |
No | The id of the artist | |
coverArt |
string |
No | A covertArt id. | |
songCount |
int |
Yes | Number of songs | |
duration |
int |
Yes | Total duration of the album in seconds | |
playCount |
long |
No | Number of play of the album | |
created |
string |
Yes | Date the album was added. [ISO 8601] | |
starred |
string |
No | Date the album was starred. [ISO 8601] | |
year |
int |
No | The album year | |
genre |
string |
No | The album genre | |
played |
string |
No | Yes | Date the album was last played. [ISO 8601] |
userRating |
int |
No | Yes | The user rating of the album. [1-5] |
recordLabels |
Array of RecordLabel |
No | Yes | The labels producing the album. |
musicBrainzId |
string |
No | Yes | The album MusicBrainzID. |
genres |
Array of ItemGenre |
No | Yes | The list of all genres of the album. |
artists |
Array of ArtistID3 |
No | Yes | The list of all album artists of the album. |
displayArtist |
string |
No | Yes | The single value display artist. |
releaseTypes |
Array of string |
No | Yes | The types of this album release. (Album, Compilation, EP, Remix, …). |
moods |
Array of string |
No | Yes | The list of all moods of the album. |
sortName |
string |
No | Yes | The album sort name. |
originalReleaseDate |
ItemDate |
No | Yes | Date the album was originally released. |
releaseDate |
ItemDate |
No | Yes | Date the specific edition of the album was released. Note: for files using ID3 tags, releaseDate should generally be read from the TDRL tag. Servers that use a different source for this field should document the behavior. |
isCompilation |
boolean |
No | Yes | True if the album is a compilation. |
discTitles |
Array of DiscTitle |
No | Yes | The list of all disc titles of the album. |
song |
Array of Child |
No | The list of songs |
OpenSubsonic
New fields are added:
played
userRating
recordLabels
musicBrainzId
genres
artists
displayArtist
releaseType
moods
sortName
originalReleaseDate
isCompilation
discTitles
Note: All OpenSubsonic added fields are optionals. But if a server support a field it must return it with an empty / default value when not present in it’s database so that clients knows what the server supports.
Note: Even if some added fields may looks duplicated, it’s important to still return the legacy data for compatibility reasons.
3 - albumInfo
{
"notes": "Download the full release here (creative commons). These cripsy beats are ripe with thumping funk and techno influences, sample wizardry and daring shuffles. Composed with the help of unique sound plugins which were especially programmed to measure Comfort Fit’s needs and wishes, we think the chances aren’t bad that you’ll fall for the unique sound signature, bounce and elegance of this unusual Hip Hop production. Ltj bukem / Good looking Rec., UK: \"Really love this music.\" Velanche / XLR8R, UK: \"Awesome job he's done... overall production is dope.\" Kwesi / BBE Music, UK: \"Wooooooowwwww... WHAT THE FUCK! THIS IS WHAT",
"musicBrainzId": "6e1d48f7-717c-416e-af35-5d2454a13af2",
"smallImageUrl": "http://localhost:8989/play/art/0f8c3cbd6b0b22c3b5402141351ac812/album/21/thumb34.jpg",
"mediumImageUrl": "http://localhost:8989/play/art/41b16680dc1b3aaf5dfba24ddb6a1712/album/21/thumb64.jpg",
"largeImageUrl": "http://localhost:8989/play/art/e6fd8d4e0d35c4436e56991892bfb27b/album/21/thumb174.jpg"
}
{
"notes": "Download the full release here (creative commons). These cripsy beats are ripe with thumping funk and techno influences, sample wizardry and daring shuffles. Composed with the help of unique sound plugins which were especially programmed to measure Comfort Fit’s needs and wishes, we think the chances aren’t bad that you’ll fall for the unique sound signature, bounce and elegance of this unusual Hip Hop production. Ltj bukem / Good looking Rec., UK: \"Really love this music.\" Velanche / XLR8R, UK: \"Awesome job he's done... overall production is dope.\" Kwesi / BBE Music, UK: \"Wooooooowwwww... WHAT THE FUCK! THIS IS WHAT",
"musicBrainzId": "6e1d48f7-717c-416e-af35-5d2454a13af2",
"smallImageUrl": "http://localhost:8989/play/art/0f8c3cbd6b0b22c3b5402141351ac812/album/21/thumb34.jpg",
"mediumImageUrl": "http://localhost:8989/play/art/41b16680dc1b3aaf5dfba24ddb6a1712/album/21/thumb64.jpg",
"largeImageUrl": "http://localhost:8989/play/art/e6fd8d4e0d35c4436e56991892bfb27b/album/21/thumb174.jpg"
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
notes |
string |
No | Album notes | |
musicBrainzId |
string |
No | Album musicBrainzId | |
lastFmUrl |
string |
No | Album lastFmUrl | |
smallImageUrl |
string |
No | Album smallImageUrl | |
mediumImageUrl |
string |
No | Album mediumImageUrl | |
largeImageUrl |
string |
No | Album largeImageUrl |
4 - albumList
{
"album": [
{
"id": "200000021",
"parent": "100000036",
"album": "Forget and Remember",
"title": "Forget and Remember",
"name": "Forget and Remember",
"isDir": true,
"coverArt": "al-200000021",
"created": "2021-07-22T02:09:31+00:00",
"duration": 4248,
"playCount": 0,
"artistId": "100000036",
"artist": "Comfort Fit",
"year": 2005,
"genre": "Hip-Hop"
},
{
"id": "200000012",
"parent": "100000019",
"album": "Buried in Nausea",
"title": "Buried in Nausea",
"name": "Buried in Nausea",
"isDir": true,
"coverArt": "al-200000012",
"created": "2021-02-24T01:44:21+00:00",
"duration": 1879,
"playCount": 0,
"artistId": "100000019",
"artist": "Various Artists",
"year": 2012,
"genre": "Punk"
}
]
}
{
"album": [
{
"id": "200000021",
"parent": "100000036",
"album": "Forget and Remember",
"title": "Forget and Remember",
"name": "Forget and Remember",
"isDir": true,
"coverArt": "al-200000021",
"created": "2021-07-22T02:09:31+00:00",
"duration": 4248,
"playCount": 0,
"artistId": "100000036",
"artist": "Comfort Fit",
"year": 2005,
"genre": "Hip-Hop"
},
{
"id": "200000012",
"parent": "100000019",
"album": "Buried in Nausea",
"title": "Buried in Nausea",
"name": "Buried in Nausea",
"isDir": true,
"coverArt": "al-200000012",
"created": "2021-02-24T01:44:21+00:00",
"duration": 1879,
"playCount": 0,
"artistId": "100000019",
"artist": "Various Artists",
"year": 2012,
"genre": "Punk"
}
]
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
album |
Array of Child |
No | Artist albums |
5 - albumList2
{
"album": [
{
"id": "200000021",
"album": "Forget and Remember",
"title": "Forget and Remember",
"name": "Forget and Remember",
"coverArt": "al-200000021",
"songCount": 20,
"created": "2021-07-22T02:09:31+00:00",
"duration": 4248,
"playCount": 0,
"artistId": "100000036",
"artist": "Comfort Fit",
"year": 2005,
"genre": "Hip-Hop"
},
{
"id": "200000012",
"album": "Buried in Nausea",
"title": "Buried in Nausea",
"name": "Buried in Nausea",
"coverArt": "al-200000012",
"songCount": 9,
"created": "2021-02-24T01:44:21+00:00",
"duration": 1879,
"playCount": 0,
"artistId": "100000019",
"artist": "Various Artists",
"year": 2012,
"genre": "Punk"
}
]
}
{
"album": [
{
"id": "200000021",
"album": "Forget and Remember",
"title": "Forget and Remember",
"name": "Forget and Remember",
"coverArt": "al-200000021",
"songCount": 20,
"created": "2021-07-22T02:09:31+00:00",
"duration": 4248,
"playCount": 0,
"artistId": "100000036",
"artist": "Comfort Fit",
"year": 2005,
"genre": "Hip-Hop"
},
{
"id": "200000012",
"album": "Buried in Nausea",
"title": "Buried in Nausea",
"name": "Buried in Nausea",
"coverArt": "al-200000012",
"songCount": 9,
"created": "2021-02-24T01:44:21+00:00",
"duration": 1879,
"playCount": 0,
"artistId": "100000019",
"artist": "Various Artists",
"year": 2012,
"genre": "Punk"
}
]
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
album |
Array of AlbumID3 |
No | Artist albums |
6 - artist
{
"id": "100000002",
"name": "Synthetic",
"coverArt": "ar-100000002",
"albumCount": 1,
"starred": "2021-02-22T05:54:18Z"
}
{
"id": "100000002",
"name": "Synthetic",
"coverArt": "ar-100000002",
"albumCount": 1,
"starred": "2021-02-22T05:54:18Z"
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
id |
string |
Yes | Artist id | |
name |
string |
Yes | Artist name | |
artistImageUrl |
string |
No | Artist image url | |
starred |
string |
No | Artist starred date [ISO 8601] | |
userRating |
int |
No | Artist rating [1-5] | |
averageRating |
number |
No | Artist average rating [1.0-5.0] | |
album |
Array of AlbumID3 |
No | Artist albums |
7 - ArtistID3
{
"id": "37ec820ca7193e17040c98f7da7c4b51",
"name": "2 Mello",
"coverArt": "ar-37ec820ca7193e17040c98f7da7c4b51_0",
"albumCount": 1,
"userRating": 5,
"artistImageUrl": "https://demo.org/image.jpg",
"starred": "2017-04-11T10:42:50.842Z",
"musicBrainzId": "189002e7-3285-4e2e-92a3-7f6c30d407a2",
"sortName": "Mello (2)",
"roles": [
"artist",
"albumartist",
"composer"
]
}
{
"id": "37ec820ca7193e17040c98f7da7c4b51",
"name": "2 Mello",
"coverArt": "ar-37ec820ca7193e17040c98f7da7c4b51_0",
"albumCount": 1,
"userRating": 5,
"artistImageUrl": "https://demo.org/image.jpg",
"starred": "2017-04-11T10:42:50.842Z"
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
id |
string |
Yes | The id of the arist | |
name |
string |
Yes | The artist name. | |
coverArt |
string |
No | A covertArt id. | |
artistImageUrl |
string |
No | An url to an external image source. | |
albumCount |
int |
No | Artist album count. | |
starred |
string |
No | Date the artist was starred. [ISO 8601] | |
musicBrainzId |
string |
No | Yes | The artist MusicBrainzID. |
sortName |
string |
No | Yes | The artist sort name. |
roles |
Array of string |
No | Yes | The list of all roles this artist have in the library. |
OpenSubsonic
New fields are added:
musicBrainzId
sortName
roles
Note: All OpenSubsonic added fields are optionals. But if a server support a field it must return it with an empty / default value when not present in it’s database so that clients knows what the server supports.
Note: Even if some added fields may looks duplicated, it’s important to still return the legacy data for compatibility reasons.
8 - artistInfo
{
"biography": {},
"musicBrainzId": "1",
"smallImageUrl": "http://localhost:8989/play/art/f20070e8e11611cc53542a38801d60fa/artist/2/thumb34.jpg",
"mediumImageUrl": "http://localhost:8989/play/art/2b9b6c057cd4bf21089ce7572e7792b6/artist/2/thumb64.jpg",
"largeImageUrl": "http://localhost:8989/play/art/e18287c23a75e263b64c31b3d64c1944/artist/2/thumb174.jpg"
}
{
"biography": {},
"musicBrainzId": "1",
"smallImageUrl": "http://localhost:8989/play/art/f20070e8e11611cc53542a38801d60fa/artist/2/thumb34.jpg",
"mediumImageUrl": "http://localhost:8989/play/art/2b9b6c057cd4bf21089ce7572e7792b6/artist/2/thumb64.jpg",
"largeImageUrl": "http://localhost:8989/play/art/e18287c23a75e263b64c31b3d64c1944/artist/2/thumb174.jpg"
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
biography |
string |
No | Artist biography | |
musicBrainzId |
string |
No | Artist musicBrainzId | |
lastFmUrl |
string |
No | Artist lastFmUrl | |
smallImageUrl |
string |
No | Artist smallImageUrl | |
mediumImageUrl |
string |
No | Artist mediumImageUrl | |
largeImageUrl |
string |
No | Artist largeImageUrl | |
similarArtist |
Array of artist |
No | Similar Artists |
9 - artistInfo2
{
"biography": {},
"musicBrainzId": "1",
"smallImageUrl": "http://localhost:8989/play/art/f20070e8e11611cc53542a38801d60fa/artist/2/thumb34.jpg",
"mediumImageUrl": "http://localhost:8989/play/art/2b9b6c057cd4bf21089ce7572e7792b6/artist/2/thumb64.jpg",
"largeImageUrl": "http://localhost:8989/play/art/e18287c23a75e263b64c31b3d64c1944/artist/2/thumb174.jpg"
}
{
"biography": {},
"musicBrainzId": "1",
"smallImageUrl": "http://localhost:8989/play/art/f20070e8e11611cc53542a38801d60fa/artist/2/thumb34.jpg",
"mediumImageUrl": "http://localhost:8989/play/art/2b9b6c057cd4bf21089ce7572e7792b6/artist/2/thumb64.jpg",
"largeImageUrl": "http://localhost:8989/play/art/e18287c23a75e263b64c31b3d64c1944/artist/2/thumb174.jpg"
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
biography |
string |
No | Artist biography | |
musicBrainzId |
string |
No | Artist musicBrainzId | |
lastFmUrl |
string |
No | Artist lastFmUrl | |
smallImageUrl |
string |
No | Artist smallImageUrl | |
mediumImageUrl |
string |
No | Artist mediumImageUrl | |
largeImageUrl |
string |
No | Artist largeImageUrl | |
similarArtist |
Array of ArtistID3 |
No | Similar Artists |
10 - ArtistsID3
{
"ignoredArticles": "The An A Die Das Ein Eine Les Le La",
"index": [
{
"name": "C",
"artist": [
{
"id": "100000016",
"name": "CARNÚN",
"coverArt": "ar-100000016",
"albumCount": 1
},
{
"id": "100000027",
"name": "Chi.Otic",
"coverArt": "ar-100000027",
"albumCount": 0
}
]
},
{
"name": "I",
"artist": [
{
"id": "100000013",
"name": "IOK-1",
"coverArt": "ar-100000013",
"albumCount": 1
}
]
}
]
}
{
"ignoredArticles": "The An A Die Das Ein Eine Les Le La",
"index": [
{
"name": "C",
"artist": [
{
"id": "100000016",
"name": "CARNÚN",
"coverArt": "ar-100000016",
"albumCount": 1
},
{
"id": "100000027",
"name": "Chi.Otic",
"coverArt": "ar-100000027",
"albumCount": 0
}
]
},
{
"name": "I",
"artist": [
{
"id": "100000013",
"name": "IOK-1",
"coverArt": "ar-100000013",
"albumCount": 1
}
]
}
]
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
ignoredArticles |
string |
Yes | List of ignored articles space separated | |
index |
Array of IndexID3 |
Yes | Index list |
11 - bookmark
{
"entry": {
"id": "113bf5989ad15ce2cf1834ba9622983f",
"parent": "b87a936c682c49d4494c7ccb08c22d23",
"isDir": false,
"title": "Stay Out Here",
"album": "Shaking The Habitual",
"artist": "The Knife",
"track": 11,
"year": 2013,
"genre": "Electronic",
"coverArt": "al-b87a936c682c49d4494c7ccb08c22d23_0",
"size": 21096309,
"contentType": "audio/mp4",
"suffix": "m4a",
"duration": 642,
"bitRate": 257,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"path": "The Knife/Shaking The Habitual/11 - Stay Out Here.m4a",
"created": "2023-03-13T16:30:35Z",
"albumId": "b87a936c682c49d4494c7ccb08c22d23",
"artistId": "b29e9a9d780cb0e133f3add5662771b9",
"type": "music",
"isVideo": false,
"bookmarkPosition": 129000
},
"position": 129000,
"username": "demo",
"comment": "",
"created": "2023-03-13T16:30:35Z",
"changed": "2023-03-13T16:30:35Z"
}
{
"entry": {
"id": "113bf5989ad15ce2cf1834ba9622983f",
"parent": "b87a936c682c49d4494c7ccb08c22d23",
"isDir": false,
"title": "Stay Out Here",
"album": "Shaking The Habitual",
"artist": "The Knife",
"track": 11,
"year": 2013,
"genre": "Electronic",
"coverArt": "al-b87a936c682c49d4494c7ccb08c22d23_0",
"size": 21096309,
"contentType": "audio/mp4",
"suffix": "m4a",
"duration": 642,
"bitRate": 257,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"path": "The Knife/Shaking The Habitual/11 - Stay Out Here.m4a",
"created": "2023-03-13T16:30:35Z",
"albumId": "b87a936c682c49d4494c7ccb08c22d23",
"artistId": "b29e9a9d780cb0e133f3add5662771b9",
"type": "music",
"isVideo": false,
"bookmarkPosition": 129000
},
"position": 129000,
"username": "demo",
"comment": "",
"created": "2023-03-13T16:30:35Z",
"changed": "2023-03-13T16:30:35Z"
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
position |
long |
Yes | Bookmark position in seconds | |
username |
string |
Yes | Username | |
comment |
string |
No | Bookmark comment | |
created |
string |
Yes | Bookmark creation date [ISO 8601] | |
changed |
string |
Yes | Bookmark last updated date [ISO 8601] | |
entry |
Child |
Yes | The bookmark file |
12 - bookmarks
{
"bookmark": [
{
"entry": {
"id": "113bf5989ad15ce2cf1834ba9622983f",
"parent": "b87a936c682c49d4494c7ccb08c22d23",
"isDir": false,
"title": "Stay Out Here",
"album": "Shaking The Habitual",
"artist": "The Knife",
"track": 11,
"year": 2013,
"genre": "Electronic",
"coverArt": "al-b87a936c682c49d4494c7ccb08c22d23_0",
"size": 21096309,
"contentType": "audio/mp4",
"suffix": "m4a",
"duration": 642,
"bitRate": 257,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"path": "The Knife/Shaking The Habitual/11 - Stay Out Here.m4a",
"created": "2023-03-13T16:30:35Z",
"albumId": "b87a936c682c49d4494c7ccb08c22d23",
"artistId": "b29e9a9d780cb0e133f3add5662771b9",
"type": "music",
"isVideo": false,
"bookmarkPosition": 129000
},
"position": 129000,
"username": "demo",
"comment": "",
"created": "2023-03-13T16:30:35Z",
"changed": "2023-03-13T16:30:35Z"
},
{
"entry": {
"id": "2b42782333450d02b177823e729664af",
"parent": "dc8d8889a6fe08d8da7698c7ee1de61c",
"isDir": false,
"title": "Ill with the Skills",
"album": "First Words",
"artist": "The Polish Ambassador",
"track": 17,
"year": 2014,
"coverArt": "mf-2b42782333450d02b177823e729664af_641edeb3",
"size": 6219581,
"contentType": "audio/mpeg",
"suffix": "mp3",
"duration": 255,
"bitRate": 194,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"path": "The Polish Ambassador/First Words/17 - Ill with the Skills.mp3",
"playCount": 1,
"played": "2023-03-15T15:23:37Z",
"created": "2023-03-25T11:44:51Z",
"albumId": "dc8d8889a6fe08d8da7698c7ee1de61c",
"artistId": "64e1f796b283545d329cdf6a31a31dbe",
"type": "music",
"isVideo": false,
"bookmarkPosition": 7000
},
"position": 7000,
"username": "demo",
"comment": "playSub bookmark",
"created": "2023-03-25T11:44:51Z",
"changed": "2023-03-25T11:44:51Z"
}
]
}
{
"bookmark": [
{
"entry": {
"id": "113bf5989ad15ce2cf1834ba9622983f",
"parent": "b87a936c682c49d4494c7ccb08c22d23",
"isDir": false,
"title": "Stay Out Here",
"album": "Shaking The Habitual",
"artist": "The Knife",
"track": 11,
"year": 2013,
"genre": "Electronic",
"coverArt": "al-b87a936c682c49d4494c7ccb08c22d23_0",
"size": 21096309,
"contentType": "audio/mp4",
"suffix": "m4a",
"duration": 642,
"bitRate": 257,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"path": "The Knife/Shaking The Habitual/11 - Stay Out Here.m4a",
"created": "2023-03-13T16:30:35Z",
"albumId": "b87a936c682c49d4494c7ccb08c22d23",
"artistId": "b29e9a9d780cb0e133f3add5662771b9",
"type": "music",
"isVideo": false,
"bookmarkPosition": 129000
},
"position": 129000,
"username": "demo",
"comment": "",
"created": "2023-03-13T16:30:35Z",
"changed": "2023-03-13T16:30:35Z"
},
{
"entry": {
"id": "2b42782333450d02b177823e729664af",
"parent": "dc8d8889a6fe08d8da7698c7ee1de61c",
"isDir": false,
"title": "Ill with the Skills",
"album": "First Words",
"artist": "The Polish Ambassador",
"track": 17,
"year": 2014,
"coverArt": "mf-2b42782333450d02b177823e729664af_641edeb3",
"size": 6219581,
"contentType": "audio/mpeg",
"suffix": "mp3",
"duration": 255,
"bitRate": 194,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"path": "The Polish Ambassador/First Words/17 - Ill with the Skills.mp3",
"playCount": 1,
"played": "2023-03-15T15:23:37Z",
"created": "2023-03-25T11:44:51Z",
"albumId": "dc8d8889a6fe08d8da7698c7ee1de61c",
"artistId": "64e1f796b283545d329cdf6a31a31dbe",
"type": "music",
"isVideo": false,
"bookmarkPosition": 7000
},
"position": 7000,
"username": "demo",
"comment": "playSub bookmark",
"created": "2023-03-25T11:44:51Z",
"changed": "2023-03-25T11:44:51Z"
}
]
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
bookmark |
Array of bookmark |
No | List of bookmark |
13 - chatMessage
{
"username": "user",
"time": 1678935699000,
"message": "Api Script Testing"
}
{
"username": "user",
"time": 1678935699000,
"message": "Api Script Testing"
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
username |
string |
Yes | Username | |
time |
long |
Yes | Time in millis since Jan 1 1970 | |
message |
string |
Yes | The message |
14 - chatMessages
{
"chatMessage": [
{
"username": "admin",
"time": 1678935707000,
"message": "Api Script Testing"
},
{
"username": "user",
"time": 1678935699000,
"message": "Api Script Testing"
}
]
}
{
"chatMessage": [
{
"username": "admin",
"time": 1678935707000,
"message": "Api Script Testing"
},
{
"username": "user",
"time": 1678935699000,
"message": "Api Script Testing"
}
]
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
chatMessage |
Array of chatMessage |
No | List of chatMessage |
15 - Child
{
"id": "082f435a363c32c57d5edb6a678a28d4",
"parent": "e8a0685e3f3ec6f251649af2b58b8617",
"isDir": false,
"title": "\"polar expedition\"",
"album": "Live at The Casbah - 2005-04-29",
"artist": "The New Deal",
"track": 4,
"year": 2005,
"coverArt": "mf-082f435a363c32c57d5edb6a678a28d4_6410b3ce",
"size": 19866778,
"contentType": "audio/flac",
"suffix": "flac",
"starred": "2023-03-27T09:45:27Z",
"duration": 178,
"bitRate": 880,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"path": "The New Deal/Live at The Casbah - 2005-04-29/04 - \"polar expedition\".flac",
"playCount": 8,
"played": "2023-03-26T22:27:46Z",
"discNumber": 1,
"created": "2023-03-14T17:51:22.112827504Z",
"albumId": "e8a0685e3f3ec6f251649af2b58b8617",
"artistId": "97e0398acf63f9fb930d7d4ce209a52b",
"type": "music",
"mediaType": "song",
"isVideo": false,
"bpm": 134,
"comment": "This is a song comment",
"sortName": "Polar expedition",
"musicBrainzId": "189002e7-3285-4e2e-92a3-7f6c30d407a2",
"genres": [
{
"name": "Hip-Hop"
},
{
"name": "East coast"
}
],
"artists": [
{
"id": "ar-1",
"name": "Artist 1"
},
{
"id": "ar-2",
"name": "Artist 2"
}
],
"displayArtist": "Artist 1 feat. Artist 2",
"albumArtists": [
{
"id": "ar-6",
"name": "Artist 6"
},
{
"id": "ar-7",
"name": "Artist 7"
}
],
"displayAlbumArtist": "Artist 6 & Artist 7",
"contributors": [
{
"role": "composer",
"artist": {
"id": "ar-3",
"name": "Artist 3"
}
},
{
"role": "composer",
"artist": {
"id": "ar-4",
"name": "Artist 4"
}
},
{
"role": "lyricist",
"artist": {
"id": "ar-5",
"name": "Artist 5"
}
},
{
"role": "performer",
"subRole": "Bass",
"artist": {
"id": "ar-5",
"name": "Artist 5"
}
}
],
"displayComposer": "Artist 3, Artist 4",
"moods": [
"slow",
"cool"
],
"replayGain": {
"trackGain": 0.1,
"albumGain": 1.1,
"trackPeak": 9.2,
"albumPeak": 9,
"baseGain": 0
}
}
{
"id": "082f435a363c32c57d5edb6a678a28d4",
"parent": "e8a0685e3f3ec6f251649af2b58b8617",
"isDir": false,
"title": "\"polar expedition\"",
"album": "Live at The Casbah - 2005-04-29",
"artist": "The New Deal",
"track": 4,
"year": 2005,
"coverArt": "mf-082f435a363c32c57d5edb6a678a28d4_6410b3ce",
"size": 19866778,
"contentType": "audio/flac",
"suffix": "flac",
"starred": "2023-03-27T09:45:27Z",
"duration": 178,
"bitRate": 880,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"path": "The New Deal/Live at The Casbah - 2005-04-29/04 - \"polar expedition\".flac",
"playCount": 8,
"discNumber": 1,
"created": "2023-03-14T17:51:22.112827504Z",
"albumId": "e8a0685e3f3ec6f251649af2b58b8617",
"artistId": "97e0398acf63f9fb930d7d4ce209a52b",
"type": "music",
"isVideo": false
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
id |
string |
Yes | The id of the media | |
parent |
string |
No | The id of the parent (folder/album) | |
isDir |
boolean |
Yes | The media is a directory | |
title |
string |
Yes | The media name. | |
album |
string |
No | The album name. | |
artist |
string |
No | The artist name. | |
track |
int |
No | The track number. | |
year |
int |
No | The media year. | |
genre |
string |
No | The media genre | |
coverArt |
string |
No | A covertArt id. | |
size |
long |
No | A file size of the media. | |
contentType |
string |
No | The mimeType of the media. | |
suffix |
string |
No | The file suffix of the media. | |
transcodedContentType |
string |
No | The transcoded mediaType if transcoding should happen. | |
transcodedSuffix |
string |
No | The file suffix of the transcoded media. | |
duration |
int |
No | The duration of the media in seconds. | |
bitRate |
int |
No | The bitrate of the media. | |
bitDepth |
int |
No | Yes | The bit depth of the media. |
samplingRate |
int |
No | Yes | The sampling rate of the media. |
channelCount |
int |
No | Yes | The number of channels of the media. |
path |
string |
No | The full path of the media. | |
isVideo |
boolean |
No | Media is a video | |
userRating |
int |
No | The user rating of the media [1-5] | |
averageRating |
number |
No | The average rating of the media [1.0-5.0] | |
playCount |
long |
No | The play count. | |
discNumber |
int |
No | The disc number. | |
created |
string |
No | Date the media was created. [ISO 8601] | |
starred |
string |
No | Date the media was starred. [ISO 8601] | |
albumId |
string |
No | The corresponding album id | |
artistId |
string |
No | The corresponding artist id | |
type |
string |
No | The generic type of media [music/podcast/audiobook/video] | |
mediaType |
string |
No | Yes | The actual media type [song/album/artist] Note: If you support musicBrainzId you must support this field to ensure clients knows what the ID refers to. |
bookmarkPosition |
long |
No | The bookmark position in seconds | |
originalWidth |
int |
No | The video original Width | |
originalHeight |
int |
No | The video original Height | |
played |
string |
No | Yes | Date the album was last played. [ISO 8601] |
bpm |
int |
No | Yes | The BPM of the song. |
comment |
string |
No | Yes | The comment tag of the song. |
sortName |
string |
No | Yes | The song sort name. |
musicBrainzId |
string |
No | Yes | The track MusicBrainzID. |
genres |
Array of ItemGenre |
No | Yes | The list of all genres of the song. |
artists |
Array of ArtistID3 |
No | Yes | The list of all song artists of the song. (Note: Only the required ArtistID3 fields should be returned by default) |
displayArtist |
string |
No | Yes | The single value display artist. |
albumArtists |
Array of ArtistID3 |
No | Yes | The list of all album artists of the song. (Note: Only the required ArtistID3 fields should be returned by default) |
displayAlbumArtist |
string |
No | Yes | The single value display album artist. |
contributors |
Array of Contributor |
No | Yes | The list of all contributor artists of the song. |
displayComposer |
string |
No | Yes | The single value display composer. |
moods |
Array of string |
No | Yes | The list of all moods of the song. |
replayGain |
ReplayGain |
No | Yes | The replaygain data of the song. |
OpenSubsonic
New fields are added:
played
bpm
comment
sortName
musicBrainzId
genres
artists
displayArtist
albumArtists
displayAlbumArtist
contributors
displayComposer
moods
replayGain
Note: All OpenSubsonic added fields are optionals. But if a server support a field it must return it with an empty / default value when not present in it’s database so that clients knows what the server supports.
Note: Even if some added fields may looks duplicated, it’s important to still return the legacy data for compatibility reasons.
16 - Contributor
{
"role": "performer",
"subRole": "Bass",
"artist": {
"id": "ar-1",
"name": "Artist 1"
}
}
Does not exist.
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
role |
string |
Yes | Yes | The contributor role. |
subRole |
string |
No | Yes | The subRole for roles that may require it. Ex: The instrument for the performer role (TMCL/performer tags). Note: For consistency between different tag formats, the TIPL sub roles should be directly exposed in the role field. |
artist |
ArtistID3 |
Yes | Yes | The artist taking on the role. (Note: Only the required ArtistID3 fields should be returned by default) |
OpenSubsonic
This is a new OpenSubsonic response type.17 - directory
{
"id": "1",
"name": "music",
"child": [
{
"id": "100000016",
"parent": "1",
"isDir": true,
"title": "CARNÚN",
"artist": "CARNÚN",
"coverArt": "ar-100000016"
},
{
"id": "100000027",
"parent": "1",
"isDir": true,
"title": "Chi.Otic",
"artist": "Chi.Otic",
"coverArt": "ar-100000027"
}
]
}
{
"id": "1",
"name": "music",
"child": [
{
"id": "100000016",
"parent": "1",
"isDir": true,
"title": "CARNÚN",
"artist": "CARNÚN",
"coverArt": "ar-100000016"
},
{
"id": "100000027",
"parent": "1",
"isDir": true,
"title": "Chi.Otic",
"artist": "Chi.Otic",
"coverArt": "ar-100000027"
}
]
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
id |
string |
Yes | The id | |
parent |
string |
No | Parent item | |
name |
string |
Yes | The directory name | |
starred |
string |
No | Starred date [ISO 8601] | |
userRating |
int |
No | The user rating [1-5] | |
averageRating |
number |
No | The average rating [1.0-5.0] | |
playCount |
long |
No | The play count | |
child |
Array of Child |
No | The directory content |
18 - DiscTitle
{
"disc": 0,
"title": "The disc title"
}
Does not exist.
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
disc |
int |
Yes | Yes | The disc numer. |
title |
string |
Yes | Yes | The name of the disc. |
OpenSubsonic
This is a new OpenSubsonic response type.19 - error
{
"code": 42,
"message": "Authentication mechanism not supported. Use API keys",
"helpUrl": "https://example.org/users/apiKey"
}
{
"code": 40,
"message": "Wrong username or password"
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
code |
int |
Yes | The error code | |
message |
string |
No | The optional error message | |
helpUrl |
string |
No | Yes | A URL (documentation, configuration, etc) which may provide additional context for the error) |
The following error codes are defined:
Code | Description |
---|---|
0 | A generic error. |
10 | Required parameter is missing. |
20 | Incompatible Subsonic REST protocol version. Client must upgrade. |
30 | Incompatible Subsonic REST protocol version. Server must upgrade. |
40 | Wrong username or password. |
41 | Token authentication not supported for LDAP users. |
42 | Provided authentication mechanism not supported. |
43 | Multiple conflicting authentication mechanisms provided. |
44 | Invalid API key. |
50 | User is not authorized for the given operation. |
60 | The trial period for the Subsonic server is over. Please upgrade to Subsonic Premium. Visit subsonic.org for details. |
70 | The requested data was not found. |
20 - genre
{
"songCount": 6,
"albumCount": 1,
"value": "Noise"
}
{
"songCount": 6,
"albumCount": 1,
"value": "Noise"
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
value |
string |
Yes | Genre name | |
songCount |
int |
Yes | Genre song count | |
albumCount |
int |
Yes | Genre album count |
21 - genres
{
"genre": [
{
"songCount": 1,
"albumCount": 1,
"value": "Punk"
},
{
"songCount": 4,
"albumCount": 1,
"value": "Dark Ambient"
},
{
"songCount": 6,
"albumCount": 1,
"value": "Noise"
},
{
"songCount": 11,
"albumCount": 1,
"value": "Electronica"
},
{
"songCount": 11,
"albumCount": 1,
"value": "Dance"
},
{
"songCount": 12,
"albumCount": 1,
"value": "Electronic"
},
{
"songCount": 20,
"albumCount": 1,
"value": "Hip-Hop"
}
]
}
{
"genre": [
{
"songCount": 1,
"albumCount": 1,
"value": "Punk"
},
{
"songCount": 4,
"albumCount": 1,
"value": "Dark Ambient"
},
{
"songCount": 6,
"albumCount": 1,
"value": "Noise"
},
{
"songCount": 11,
"albumCount": 1,
"value": "Electronica"
},
{
"songCount": 11,
"albumCount": 1,
"value": "Dance"
},
{
"songCount": 12,
"albumCount": 1,
"value": "Electronic"
},
{
"songCount": 20,
"albumCount": 1,
"value": "Hip-Hop"
}
]
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
genre |
Array of genre |
No | List of genre |
22 - Index
{
"name": "C",
"artist": [
{
"id": "100000016",
"name": "CARNÚN",
"coverArt": "ar-100000016",
"albumCount": 1
},
{
"id": "100000027",
"name": "Chi.Otic",
"coverArt": "ar-100000027",
"albumCount": 0
}
]
}
{
"name": "C",
"artist": [
{
"id": "100000016",
"name": "CARNÚN",
"coverArt": "ar-100000016",
"albumCount": 1
},
{
"id": "100000027",
"name": "Chi.Otic",
"coverArt": "ar-100000027",
"albumCount": 0
}
]
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
name |
string |
Yes | Index name | |
artist |
Array of Artist |
Yes | Artist list |
23 - indexes
{
"shortcut": [
{
"id": "11",
"name": "Audio books"
},
{
"id": "10",
"name": "Podcasts"
}
],
"index": [
{
"artist": [
{
"id": "1",
"name": "ABBA"
},
{
"id": "2",
"name": "Alanis Morisette"
},
{
"id": "3",
"name": "Alphaville",
"starred": "2013-11-02T12:30:00"
}
],
"name": "A"
},
{
"artist": {
"name": "Bob Dylan",
"id": "4"
},
"name": "B"
}
],
"child": [
{
"id": "111",
"parent": "11",
"title": "Dancing Queen",
"isDir": "false",
"album": "Arrival",
"artist": "ABBA",
"track": "7",
"year": "1978",
"genre": "Pop",
"coverArt": "24",
"size": "8421341",
"contentType": "audio/mpeg",
"suffix": "mp3",
"duration": "146",
"bitRate": "128",
"path": "ABBA/Arrival/Dancing Queen.mp3"
},
{
"id": "112",
"parent": "11",
"title": "Money, Money, Money",
"isDir": "false",
"album": "Arrival",
"artist": "ABBA",
"track": "7",
"year": "1978",
"genre": "Pop",
"coverArt": "25",
"size": "4910028",
"contentType": "audio/flac",
"suffix": "flac",
"transcodedContentType": "audio/mpeg",
"transcodedSuffix": "mp3",
"duration": "208",
"bitRate": "128",
"path": "ABBA/Arrival/Money, Money, Money.mp3"
}
],
"lastModified": "237462836472342",
"ignoredArticles": "The El La Los Las Le Les"
}
<indexes lastModified="237462836472342" ignoredArticles="The El La Los Las Le Les">
<shortcut id="11" name="Audio books"/>
<shortcut id="10" name="Podcasts"/>
<index name="A">
<artist id="1" name="ABBA"/>
<artist id="2" name="Alanis Morisette"/>
<artist id="3" name="Alphaville" starred="2013-11-02T12:30:00"/>
</index>
<index name="B">
<artist name="Bob Dylan" id="4"/>
</index>
<child id="111" parent="11" title="Dancing Queen" isDir="false" album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="24" size="8421341" contentType="audio/mpeg" suffix="mp3" duration="146" bitRate="128" path="ABBA/Arrival/Dancing Queen.mp3"/>
<child id="112" parent="11" title="Money, Money, Money" isDir="false" album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="25" size="4910028" contentType="audio/flac" suffix="flac" transcodedContentType="audio/mpeg" transcodedSuffix="mp3" duration="208" bitRate="128" path="ABBA/Arrival/Money, Money, Money.mp3"/>
</indexes>
{
"shortcut": [
{
"id": "11",
"name": "Audio books"
},
{
"id": "10",
"name": "Podcasts"
}
],
"index": [
{
"artist": [
{
"id": "1",
"name": "ABBA"
},
{
"id": "2",
"name": "Alanis Morisette"
},
{
"id": "3",
"name": "Alphaville",
"starred": "2013-11-02T12:30:00"
}
],
"name": "A"
},
{
"artist": {
"name": "Bob Dylan",
"id": "4"
},
"name": "B"
}
],
"child": [
{
"id": "111",
"parent": "11",
"title": "Dancing Queen",
"isDir": "false",
"album": "Arrival",
"artist": "ABBA",
"track": "7",
"year": "1978",
"genre": "Pop",
"coverArt": "24",
"size": "8421341",
"contentType": "audio/mpeg",
"suffix": "mp3",
"duration": "146",
"bitRate": "128",
"path": "ABBA/Arrival/Dancing Queen.mp3"
},
{
"id": "112",
"parent": "11",
"title": "Money, Money, Money",
"isDir": "false",
"album": "Arrival",
"artist": "ABBA",
"track": "7",
"year": "1978",
"genre": "Pop",
"coverArt": "25",
"size": "4910028",
"contentType": "audio/flac",
"suffix": "flac",
"transcodedContentType": "audio/mpeg",
"transcodedSuffix": "mp3",
"duration": "208",
"bitRate": "128",
"path": "ABBA/Arrival/Money, Money, Money.mp3"
}
],
"lastModified": "237462836472342",
"ignoredArticles": "The El La Los Las Le Les"
}
<indexes lastModified="237462836472342" ignoredArticles="The El La Los Las Le Les">
<shortcut id="11" name="Audio books"/>
<shortcut id="10" name="Podcasts"/>
<index name="A">
<artist id="1" name="ABBA"/>
<artist id="2" name="Alanis Morisette"/>
<artist id="3" name="Alphaville" starred="2013-11-02T12:30:00"/>
</index>
<index name="B">
<artist name="Bob Dylan" id="4"/>
</index>
<child id="111" parent="11" title="Dancing Queen" isDir="false" album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="24" size="8421341" contentType="audio/mpeg" suffix="mp3" duration="146" bitRate="128" path="ABBA/Arrival/Dancing Queen.mp3"/>
<child id="112" parent="11" title="Money, Money, Money" isDir="false" album="Arrival" artist="ABBA" track="7" year="1978" genre="Pop" coverArt="25" size="4910028" contentType="audio/flac" suffix="flac" transcodedContentType="audio/mpeg" transcodedSuffix="mp3" duration="208" bitRate="128" path="ABBA/Arrival/Money, Money, Money.mp3"/>
</indexes>
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
ignoredArticles |
string |
Yes | The ignored articles | |
lastModified |
long |
Yes | Last time the index was modified in milliseconds after January 1, 1970 UTC | |
shortcut |
Array of Artist |
No | Shortcut | |
child |
Array of Child |
No | Array of children | |
index |
Array of Index |
No | Indexed artists |
24 - IndexID3
{
"name": "C",
"artist": [
{
"id": "100000016",
"name": "CARNÚN",
"coverArt": "ar-100000016",
"albumCount": 1
},
{
"id": "100000027",
"name": "Chi.Otic",
"coverArt": "ar-100000027",
"albumCount": 0
}
]
}
{
"name": "C",
"artist": [
{
"id": "100000016",
"name": "CARNÚN",
"coverArt": "ar-100000016",
"albumCount": 1
},
{
"id": "100000027",
"name": "Chi.Otic",
"coverArt": "ar-100000027",
"albumCount": 0
}
]
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
name |
string |
Yes | Index name | |
artist |
Array of Artist |
Yes | Artist list |
25 - internetRadioStation
{
"id": "2",
"name": "HBR1.com - I.D.M. Tranceponder",
"streamUrl": "http://ubuntu.hbr1.com:19800/trance.ogg",
"homepageUrl": "http://www.hbr1.com/"
}
{
"id": "2",
"name": "HBR1.com - I.D.M. Tranceponder",
"streamUrl": "http://ubuntu.hbr1.com:19800/trance.ogg",
"homepageUrl": "http://www.hbr1.com/"
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
id |
string |
Yes | The Id | |
name |
string |
Yes | The name | |
streamUrl |
string |
Yes | The radio url | |
homePageUrl |
string |
No | Genre name |
26 - internetRadioStations
{
"internetRadioStation": [
{
"id": "1",
"name": "HBR1.com - Dream Factory",
"streamUrl": "http://ubuntu.hbr1.com:19800/ambient.aac",
"homepageUrl": "http://www.hbr1.com/"
},
{
"id": "2",
"name": "HBR1.com - I.D.M. Tranceponder",
"streamUrl": "http://ubuntu.hbr1.com:19800/trance.ogg",
"homepageUrl": "http://www.hbr1.com/"
},
{
"id": "3",
"name": "4ZZZ Community Radio",
"streamUrl": "https://stream.4zzz.org.au:9200/4zzz",
"homepageUrl": "https://4zzzfm.org.au"
}
]
}
{
"internetRadioStation": [
{
"id": "1",
"name": "HBR1.com - Dream Factory",
"streamUrl": "http://ubuntu.hbr1.com:19800/ambient.aac",
"homepageUrl": "http://www.hbr1.com/"
},
{
"id": "2",
"name": "HBR1.com - I.D.M. Tranceponder",
"streamUrl": "http://ubuntu.hbr1.com:19800/trance.ogg",
"homepageUrl": "http://www.hbr1.com/"
},
{
"id": "3",
"name": "4ZZZ Community Radio",
"streamUrl": "https://stream.4zzz.org.au:9200/4zzz",
"homepageUrl": "https://4zzzfm.org.au"
}
]
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
internetRadioStation |
Array of internetRadioStation |
Yes | A list of internetRadioStation |
27 - ItemDate
{
"year": 2020,
"month": 1,
"day": 1
}
<!-- XML name is the name of the property on the parent object-->
<originalReleaseDate year="2020" month="1" day="1"/>
Does not exist.
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
year |
integer |
No | Yes | The year |
month |
integer |
No | Yes | The month (1-12) |
day |
integer |
No | Yes | The day (1-31) |
OpenSubsonic
This is a new OpenSubsonic response type.28 - ItemGenre
{
"name": "Noise"
}
Does not exist.
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
name |
string |
Yes | Yes | Genre name |
OpenSubsonic
This is a new OpenSubsonic response type.29 - jukeboxPlaylist
// TODO
// TODO
Field | Type | Req. | OpenS. | Details |
---|
30 - jukeboxStatus
// TODO
// TODO
Field | Type | Req. | OpenS. | Details |
---|
31 - license
{
"valid": true,
"email": "demo@demo.org",
"licenseExpires": "2017-04-11T10:42:50.842Z",
"trialExpires": "2017-04-11T10:42:50.842Z"
}
{
"valid": true,
"email": "demo@demo.org",
"licenseExpires": "2017-04-11T10:42:50.842Z",
"trialExpires": "2017-04-11T10:42:50.842Z"
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
valid |
boolean |
Yes | The status of the license | |
email |
string |
No | User email | |
licenseExpires |
string |
No | End of license date. [ISO 8601] | |
trialExpires |
string |
No | End of trial date. [ISO 8601] |
32 - line
{
"start": 0,
"value": "It's bugging me"
}
<line start="0">It's bugging me</line>
Does not exist.
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
value |
string |
Yes | Yes | The actual text of this line |
start |
number |
No | Yes | The start time of the lyrics, relative to the start time of the track, in milliseconds. If this is not part of synced lyrics, start must be omitted |
OpenSubsonic
This is a new OpenSubsonic response type.33 - lyrics
{
"artist": "Metallica",
"title": "Blitzkrieg",
"value": "Let us have peace, let us have life\n\nLet us escape the cruel night\n\nLet us have time, let the sun shine\n\nLet us beware the deadly sign\n\n\n\nThe day is coming\n\nArmageddon's near\n\nInferno's coming\n\nCan we survive the blitzkrieg?\n\nThe blitzkrieg\n\nThe blitzkrieg\n\n\n\nSave us from fate, save us from hate\n\nSave ourselves before it's too late\n\nCome to our need, hear our plea\n\nSave ourselves before the earth bleeds\n\n\n\nThe day is dawning\n\nThe time is near\n\nAliens calling\n\nCan we survive the blitzkrieg?"
}
{
"artist": "Metallica",
"title": "Blitzkrieg",
"value": "Let us have peace, let us have life\n\nLet us escape the cruel night\n\nLet us have time, let the sun shine\n\nLet us beware the deadly sign\n\n\n\nThe day is coming\n\nArmageddon's near\n\nInferno's coming\n\nCan we survive the blitzkrieg?\n\nThe blitzkrieg\n\nThe blitzkrieg\n\n\n\nSave us from fate, save us from hate\n\nSave ourselves before it's too late\n\nCome to our need, hear our plea\n\nSave ourselves before the earth bleeds\n\n\n\nThe day is dawning\n\nThe time is near\n\nAliens calling\n\nCan we survive the blitzkrieg?"
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
value |
string |
Yes | The lyrics | |
artist |
string |
No | The artist name | |
title |
string |
No | The song title |
34 - lyricsList
{
"structuredLyrics": [
{
"displayArtist": "Muse",
"displayTitle": "Hysteria",
"lang": "eng",
"offset": -100,
"synced": true,
"line": [
{
"start": 0,
"value": "It's bugging me"
},
{
"start": 2000,
"value": "Grating me"
},
{
"start": 3001,
"value": "And twisting me around..."
}
]
},
{
"displayArtist": "Muse",
"displayTitle": "Hysteria",
"lang": "xxx",
"offset": 100,
"synced": false,
"line": [
{
"value": "It's bugging me"
},
{
"value": "Grating me"
},
{
"value": "And twisting me around..."
}
]
}
]
}
<lyricsList>
<structuredLyrics displayArtist="Muse" displayTitle="Hysteria" lang="eng" offset="-100" synced="true">
<line start="0">It's bugging me</line>
<line start="2000">Grating me</line>
<line start="3001">And twisting me around...</line>
</structuredLyrics>
<structuredLyrics displayArtist="Muse" displayTitle="Hysteria" lang="xxx" offset="100" synced="false">
<line>It's bugging me</line>
<line>Grating me</line>
<line>And twisting me around...</line>
</structuredLyrics>
</lyricsList>
Does not exist.
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
structuredLyrics |
Array of structuredLyrics |
No | Yes | Structured lyrics. There can be multiple lyrics of the same type with the same language |
OpenSubsonic
This is a new OpenSubsonic response type.35 - musicFolder
{
"id": "4",
"name": "upload"
}
{
"id": "4",
"name": "upload"
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
id |
string |
Yes | The id | |
name |
string |
No | The folder name |
36 - musicFolders
{
"musicFolder": [
{
"id": "1",
"name": "music"
},
{
"id": "4",
"name": "upload"
}
]
}
{
"musicFolder": [
{
"id": "1",
"name": "music"
},
{
"id": "4",
"name": "upload"
}
]
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
musicFolder |
Array of musicFolder |
Yes | The folders |
37 - newestPodcasts
// TODO
// TODO
Field | Type | Req. | OpenS. | Details |
---|
38 - nowPlaying
{
"entry": [
{
"id": "300115266",
"parent": "200147046",
"title": "Take the Home",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200147046",
"album": "How I Learned to Love Our Robot Overlords",
"artistId": "100002619",
"artist": "Raggedy Angry",
"coverArt": "300115266",
"duration": 227,
"bitRate": 222,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"userRating": 3,
"track": 7,
"year": 2010,
"genre": "Industrial",
"size": 6341039,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "Raggedy Angry/(2010) How I Learned to Love Our Robot Overlords/1-07 - Take the Home.mp3",
"username": "user",
"minutesAgo": 0,
"playerId": 0
}
]
}
{
"entry": [
{
"id": "300115266",
"parent": "200147046",
"title": "Take the Home",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200147046",
"album": "How I Learned to Love Our Robot Overlords",
"artistId": "100002619",
"artist": "Raggedy Angry",
"coverArt": "300115266",
"duration": 227,
"bitRate": 222,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"userRating": 3,
"track": 7,
"year": 2010,
"genre": "Industrial",
"size": 6341039,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "Raggedy Angry/(2010) How I Learned to Love Our Robot Overlords/1-07 - Take the Home.mp3",
"username": "user",
"minutesAgo": 0,
"playerId": 0
}
]
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
entry |
Array of NowPlayingEntry |
Yes | A list of NowPlayingEntry |
39 - NowPlayingEntry
{
"id": "300115266",
"parent": "200147046",
"title": "Take the Home",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200147046",
"album": "How I Learned to Love Our Robot Overlords",
"artistId": "100002619",
"artist": "Raggedy Angry",
"coverArt": "300115266",
"duration": 227,
"bitRate": 222,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"userRating": 3,
"track": 7,
"year": 2010,
"genre": "Industrial",
"size": 6341039,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "Raggedy Angry/(2010) How I Learned to Love Our Robot Overlords/1-07 - Take the Home.mp3",
"username": "user",
"minutesAgo": 0,
"playerId": 0
}
{
"id": "300115266",
"parent": "200147046",
"title": "Take the Home",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200147046",
"album": "How I Learned to Love Our Robot Overlords",
"artistId": "100002619",
"artist": "Raggedy Angry",
"coverArt": "300115266",
"duration": 227,
"bitRate": 222,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"userRating": 3,
"track": 7,
"year": 2010,
"genre": "Industrial",
"size": 6341039,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "Raggedy Angry/(2010) How I Learned to Love Our Robot Overlords/1-07 - Take the Home.mp3",
"username": "user",
"minutesAgo": 0,
"playerId": 0
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
username |
string |
Yes | The username | |
minutesAgo |
string |
Int | Last update | |
playerId |
boolean |
Int | Player Id | |
playerName |
string |
No | Player name |
40 - OpenSubsonicExtension
{
"name": "template",
"versions": [
1,
2
]
}
Does not exist.
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
name |
String |
Yes | Yes | The name of the extension. |
versions |
Array of int |
Yes | Yes | The list of supported versions of the this extension. |
OpenSubsonic
This is a new response type.41 - playlist
{
"id": "800000075",
"name": "testcreate",
"owner": "user",
"public": true,
"created": "2023-03-16T03:18:41+00:00",
"changed": "2023-03-16T03:18:41+00:00",
"songCount": 1,
"duration": 304
}
{
"id": "800000075",
"name": "testcreate",
"owner": "user",
"public": true,
"created": "2023-03-16T03:18:41+00:00",
"changed": "2023-03-16T03:18:41+00:00",
"songCount": 1,
"duration": 304
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
id |
string |
Yes | Id of the playlist | |
name |
string |
Yes | Name of the playlist | |
comment |
string |
No | A commnet | |
owner |
string |
No | Owner of the playlist | |
public |
boolean |
No | Is the playlist public | |
songCount |
int |
Yes | number of songs | |
duration |
int |
Yes | Playlist duration in seconds | |
created |
string |
Yes | Creation date [ISO 8601] | |
changed |
string |
Yes | Last changed date [ISO 8601] | |
coverArt |
string |
No | A cover Art Id | |
allowedUser |
Array of string |
No | A list of allowed usernames |
42 - playlists
{
"playlist": [
{
"id": "800000003",
"name": "random - admin - private (admin)",
"owner": "admin",
"public": false,
"created": "2021-02-23T04:35:38+00:00",
"changed": "2021-02-23T04:35:38+00:00",
"songCount": 43,
"duration": 17875
},
{
"id": "800000002",
"name": "random - admin - public (admin)",
"owner": "admin",
"public": true,
"created": "2021-02-23T04:34:56+00:00",
"changed": "2021-02-23T04:34:56+00:00",
"songCount": 43,
"duration": 17786
}
]
}
{
"playlist": [
{
"id": "800000003",
"name": "random - admin - private (admin)",
"owner": "admin",
"public": false,
"created": "2021-02-23T04:35:38+00:00",
"changed": "2021-02-23T04:35:38+00:00",
"songCount": 43,
"duration": 17875
},
{
"id": "800000002",
"name": "random - admin - public (admin)",
"owner": "admin",
"public": true,
"created": "2021-02-23T04:34:56+00:00",
"changed": "2021-02-23T04:34:56+00:00",
"songCount": 43,
"duration": 17786
}
]
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
playlist |
Array of playlist |
Yes | A list of playlist |
43 - playlistWithSongs
{
"id": "800000075",
"name": "testcreate",
"owner": "user",
"public": true,
"created": "2023-03-16T03:18:41+00:00",
"changed": "2023-03-16T03:18:41+00:00",
"songCount": 1,
"duration": 304,
"entry": [
{
"id": "300000060",
"parent": "200000002",
"title": "BrownSmoke",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000002",
"album": "Colorsmoke EP",
"artistId": "100000002",
"artist": "Synthetic",
"coverArt": "300000060",
"duration": 304,
"bitRate": 20,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"userRating": 5,
"averageRating": 5,
"track": 4,
"year": 2007,
"genre": "Electronic",
"size": 792375,
"discNumber": 1,
"suffix": "wma",
"contentType": "audio/x-ms-wma",
"path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
}
]
}
{
"id": "800000075",
"name": "testcreate",
"owner": "user",
"public": true,
"created": "2023-03-16T03:18:41+00:00",
"changed": "2023-03-16T03:18:41+00:00",
"songCount": 1,
"duration": 304,
"entry": [
{
"id": "300000060",
"parent": "200000002",
"title": "BrownSmoke",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000002",
"album": "Colorsmoke EP",
"artistId": "100000002",
"artist": "Synthetic",
"coverArt": "300000060",
"duration": 304,
"bitRate": 20,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"userRating": 5,
"averageRating": 5,
"track": 4,
"year": 2007,
"genre": "Electronic",
"size": 792375,
"discNumber": 1,
"suffix": "wma",
"contentType": "audio/x-ms-wma",
"path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
}
]
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
id |
string |
Yes | Id of the playlist | |
name |
string |
Yes | Name of the playlist | |
comment |
string |
No | A commnet | |
owner |
string |
No | Owner of the playlist | |
public |
boolean |
No | Is the playlist public | |
songCount |
int |
Yes | number of songs | |
duration |
int |
Yes | Playlist duration in seconds | |
created |
string |
Yes | Creation date [ISO 8601] | |
changed |
string |
Yes | Last changed date [ISO 8601] | |
coverArt |
string |
No | A cover Art Id | |
allowedUser |
Array of string |
No | A list of allowed usernames | |
entry |
Array of Child |
No | The list of songs |
44 - PlayQueue
// TODO
// TODO
Field | Type | Req. | OpenS. | Details |
---|
45 - podcasts
// TODO
// TODO
Field | Type | Req. | OpenS. | Details |
---|
46 - randomSongs
{
"song": [
{
"id": "300000060",
"parent": "200000002",
"title": "BrownSmoke",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000002",
"album": "Colorsmoke EP",
"artistId": "100000002",
"artist": "Synthetic",
"coverArt": "300000060",
"duration": 304,
"bitRate": 20,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"userRating": 5,
"averageRating": 5,
"track": 4,
"year": 2007,
"genre": "Electronic",
"size": 792375,
"discNumber": 1,
"suffix": "wma",
"contentType": "audio/x-ms-wma",
"path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
},
{
"id": "300000055",
"parent": "200000002",
"title": "Red&GreenSmoke",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000002",
"album": "Colorsmoke EP",
"artistId": "100000002",
"artist": "Synthetic",
"coverArt": "300000055",
"duration": 400,
"bitRate": 64,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"track": 5,
"year": 2007,
"genre": "Electronic",
"size": 3209886,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
}
]
}
{
"song": [
{
"id": "300000060",
"parent": "200000002",
"title": "BrownSmoke",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000002",
"album": "Colorsmoke EP",
"artistId": "100000002",
"artist": "Synthetic",
"coverArt": "300000060",
"duration": 304,
"bitRate": 20,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"userRating": 5,
"averageRating": 5,
"track": 4,
"year": 2007,
"genre": "Electronic",
"size": 792375,
"discNumber": 1,
"suffix": "wma",
"contentType": "audio/x-ms-wma",
"path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
},
{
"id": "300000055",
"parent": "200000002",
"title": "Red&GreenSmoke",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000002",
"album": "Colorsmoke EP",
"artistId": "100000002",
"artist": "Synthetic",
"coverArt": "300000055",
"duration": 400,
"bitRate": 64,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"track": 5,
"year": 2007,
"genre": "Electronic",
"size": 3209886,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
}
]
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
song |
Array of Child |
No | List of songs |
47 - RecordLabel
{
"name": "Sony"
}
Does not exist.
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
name |
string |
Yes | Yes | The record label name. |
OpenSubsonic
This is a new OpenSubsonic response type.48 - ReplayGain
{
"trackGain": 0.1,
"albumGain": 1.1,
"trackPeak": 9.2,
"albumPeak": 0,
"baseGain": 0,
"fallbackGain": -8.1
}
Does not exist.
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
trackGain |
number |
No | Yes | The track replay gain value. (In Db) |
albumGain |
number |
No | Yes | The album replay gain value. (In Db) |
trackPeak |
number |
No | Yes | The track peak value. (Must be positive) |
albumPeak |
number |
No | Yes | The album peak value. (Must be positive) |
baseGain |
number |
No | Yes | The base gain value. (In Db) (Ogg Opus Output Gain for example) |
fallbackGain |
number |
No | Yes | An optional fallback gain that clients should apply when the corresponding gain value is missing. (Can be computed from the tracks or exposed as an user setting.) |
Note: If the data is not present the field must be ommited in the answer. (But the replayGain field on Child
must always be present)
OpenSubsonic
This is a new OpenSubsonic response type.49 - scanStatus
{
"scanning": false,
"count": 0
}
{
"scanning": false,
"count": 0
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
scanning |
boolean |
Yes | The status of the scan | |
count |
int |
No | Scanned item count |
50 - searchResult
// TODO
// TODO
Field | Type | Req. | OpenS. | Details |
---|
51 - searchResult2
// TODO
// TODO
Field | Type | Req. | OpenS. | Details |
---|
52 - searchResult3
{
"artist": [
{
"id": "37ec820ca7193e17040c98f7da7c4b51",
"name": "2 Mello",
"coverArt": "ar-37ec820ca7193e17040c98f7da7c4b51_0",
"albumCount": 1,
"userRating": 5,
"artistImageUrl": "https://demo.org/image.jpg"
}
],
"album": [
{
"id": "ad0f112b6dcf83de5e9cae85d07f0d35",
"name": "8-bit lagerfeuer",
"artist": "pornophonique",
"year": 2007,
"coverArt": "al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8",
"starred": "2023-03-22T01:51:06Z",
"duration": 1954,
"playCount": 97,
"played": "2023-03-28T00:45:13Z",
"created": "2023-03-10T02:19:35.784818075Z",
"artistId": "91c3901ac465b9efc439e4be4270c2b6",
"userRating": 4,
"songCount": 8,
}
],
"song": [
{
"id": "082f435a363c32c57d5edb6a678a28d4",
"parent": "e8a0685e3f3ec6f251649af2b58b8617",
"isDir": false,
"title": "\"polar expedition\"",
"album": "Live at The Casbah - 2005-04-29",
"artist": "The New Deal",
"track": 4,
"year": 2005,
"coverArt": "mf-082f435a363c32c57d5edb6a678a28d4_6410b3ce",
"size": 19866778,
"contentType": "audio/flac",
"suffix": "flac",
"starred": "2023-03-27T09:45:27Z",
"duration": 178,
"bitRate": 880,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"path": "The New Deal/Live at The Casbah - 2005-04-29/04 - \"polar expedition\".flac",
"playCount": 8,
"played": "2023-03-26T22:27:46Z",
"discNumber": 1,
"created": "2023-03-14T17:51:22.112827504Z",
"albumId": "e8a0685e3f3ec6f251649af2b58b8617",
"artistId": "97e0398acf63f9fb930d7d4ce209a52b",
"type": "music",
"isVideo": false
}
]
}
{
"artist": [
{
"id": "37ec820ca7193e17040c98f7da7c4b51",
"name": "2 Mello",
"coverArt": "ar-37ec820ca7193e17040c98f7da7c4b51_0",
"albumCount": 1,
"userRating": 5,
"artistImageUrl": "https://demo.org/image.jpg"
}
],
"album": [
{
"id": "ad0f112b6dcf83de5e9cae85d07f0d35",
"name": "8-bit lagerfeuer",
"artist": "pornophonique",
"year": 2007,
"coverArt": "al-ad0f112b6dcf83de5e9cae85d07f0d35_640a93a8",
"starred": "2023-03-22T01:51:06Z",
"duration": 1954,
"playCount": 97,
"created": "2023-03-10T02:19:35.784818075Z",
"artistId": "91c3901ac465b9efc439e4be4270c2b6",
"songCount": 8,
}
],
"song": [
{
"id": "082f435a363c32c57d5edb6a678a28d4",
"parent": "e8a0685e3f3ec6f251649af2b58b8617",
"isDir": false,
"title": "\"polar expedition\"",
"album": "Live at The Casbah - 2005-04-29",
"artist": "The New Deal",
"track": 4,
"year": 2005,
"coverArt": "mf-082f435a363c32c57d5edb6a678a28d4_6410b3ce",
"size": 19866778,
"contentType": "audio/flac",
"suffix": "flac",
"starred": "2023-03-27T09:45:27Z",
"duration": 178,
"bitRate": 880,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"path": "The New Deal/Live at The Casbah - 2005-04-29/04 - \"polar expedition\".flac",
"playCount": 8,
"played": "2023-03-26T22:27:46Z",
"discNumber": 1,
"created": "2023-03-14T17:51:22.112827504Z",
"albumId": "e8a0685e3f3ec6f251649af2b58b8617",
"artistId": "97e0398acf63f9fb930d7d4ce209a52b",
"type": "music",
"isVideo": false
}
]
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
artist |
Array of ArtistID3 |
No | Matching artists | |
album |
Array of AlbumID3 |
No | Matching albums | |
song |
Array of Child |
No | Matching songs |
53 - share
{
"id": "12",
"url": "http://localhost:8989/share.php?id=12&secret=fXlKyEv3",
"description": "Forget and Remember (Comfort Fit)",
"username": "user",
"created": "2023-03-16T04:13:09+00:00",
"visitCount": 0,
"entry": [
{
"id": "300000116",
"parent": "200000021",
"title": "Can I Help U?",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000021",
"album": "Forget and Remember",
"artistId": "100000036",
"artist": "Comfort Fit",
"coverArt": "300000116",
"duration": 103,
"bitRate": 216,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"track": 1,
"year": 2005,
"genre": "Hip-Hop",
"size": 2811819,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "user/Comfort Fit/Forget And Remember/1 - Can I Help U?.mp3"
},
{
"id": "300000121",
"parent": "200000021",
"title": "Planetary Picknick",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000021",
"album": "Forget and Remember",
"artistId": "100000036",
"artist": "Comfort Fit",
"coverArt": "300000121",
"duration": 358,
"bitRate": 238,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"track": 2,
"year": 2005,
"genre": "Hip-Hop",
"size": 10715592,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "user/Comfort Fit/Forget And Remember/2 - Planetary Picknick.mp3"
}
]
}
{
"id": "12",
"url": "http://localhost:8989/share.php?id=12&secret=fXlKyEv3",
"description": "Forget and Remember (Comfort Fit)",
"username": "user",
"created": "2023-03-16T04:13:09+00:00",
"visitCount": 0,
"entry": [
{
"id": "300000116",
"parent": "200000021",
"title": "Can I Help U?",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000021",
"album": "Forget and Remember",
"artistId": "100000036",
"artist": "Comfort Fit",
"coverArt": "300000116",
"duration": 103,
"bitRate": 216,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"track": 1,
"year": 2005,
"genre": "Hip-Hop",
"size": 2811819,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "user/Comfort Fit/Forget And Remember/1 - Can I Help U?.mp3"
},
{
"id": "300000121",
"parent": "200000021",
"title": "Planetary Picknick",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000021",
"album": "Forget and Remember",
"artistId": "100000036",
"artist": "Comfort Fit",
"coverArt": "300000121",
"duration": 358,
"bitRate": 238,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"track": 2,
"year": 2005,
"genre": "Hip-Hop",
"size": 10715592,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "user/Comfort Fit/Forget And Remember/2 - Planetary Picknick.mp3"
}
]
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
id |
string |
Yes | The share Id | |
url |
string |
Yes | The share url | |
description |
string |
No | A description | |
username |
string |
Yes | The username | |
created |
string |
Yes | Creation date [ISO 8601] | |
expires |
string |
No | Share expiration [ISO 8601] | |
lastVisited |
string |
No | Last visit [ISO 8601] | |
visitCount |
int |
Yes | Visit count | |
entry |
Array of Child |
Yes | A list of share |
54 - shares
{
"share": [
{
"id": "12",
"url": "http://localhost:8989/share.php?id=12&secret=fXlKyEv3",
"description": "Forget and Remember (Comfort Fit)",
"username": "user",
"created": "2023-03-16T04:13:09+00:00",
"visitCount": 0,
"entry": [
{
"id": "300000116",
"parent": "200000021",
"title": "Can I Help U?",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000021",
"album": "Forget and Remember",
"artistId": "100000036",
"artist": "Comfort Fit",
"coverArt": "300000116",
"duration": 103,
"bitRate": 216,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"track": 1,
"year": 2005,
"genre": "Hip-Hop",
"size": 2811819,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "user/Comfort Fit/Forget And Remember/1 - Can I Help U?.mp3"
},
{
"id": "300000121",
"parent": "200000021",
"title": "Planetary Picknick",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000021",
"album": "Forget and Remember",
"artistId": "100000036",
"artist": "Comfort Fit",
"coverArt": "300000121",
"duration": 358,
"bitRate": 238,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"track": 2,
"year": 2005,
"genre": "Hip-Hop",
"size": 10715592,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "user/Comfort Fit/Forget And Remember/2 - Planetary Picknick.mp3"
}
]
}
]
}
{
"share": [
{
"id": "12",
"url": "http://localhost:8989/share.php?id=12&secret=fXlKyEv3",
"description": "Forget and Remember (Comfort Fit)",
"username": "user",
"created": "2023-03-16T04:13:09+00:00",
"visitCount": 0,
"entry": [
{
"id": "300000116",
"parent": "200000021",
"title": "Can I Help U?",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000021",
"album": "Forget and Remember",
"artistId": "100000036",
"artist": "Comfort Fit",
"coverArt": "300000116",
"duration": 103,
"bitRate": 216,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"track": 1,
"year": 2005,
"genre": "Hip-Hop",
"size": 2811819,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "user/Comfort Fit/Forget And Remember/1 - Can I Help U?.mp3"
},
{
"id": "300000121",
"parent": "200000021",
"title": "Planetary Picknick",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000021",
"album": "Forget and Remember",
"artistId": "100000036",
"artist": "Comfort Fit",
"coverArt": "300000121",
"duration": 358,
"bitRate": 238,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"track": 2,
"year": 2005,
"genre": "Hip-Hop",
"size": 10715592,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "user/Comfort Fit/Forget And Remember/2 - Planetary Picknick.mp3"
}
]
}
]
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
share |
Array of share |
Yes | A list of share |
55 - similarSongs
{
"song": [
{
"id": "300000060",
"parent": "200000002",
"title": "BrownSmoke",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000002",
"album": "Colorsmoke EP",
"artistId": "100000002",
"artist": "Synthetic",
"coverArt": "300000060",
"duration": 304,
"bitRate": 20,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"userRating": 5,
"averageRating": 5,
"track": 4,
"year": 2007,
"genre": "Electronic",
"size": 792375,
"discNumber": 1,
"suffix": "wma",
"contentType": "audio/x-ms-wma",
"path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
},
{
"id": "300000055",
"parent": "200000002",
"title": "Red&GreenSmoke",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000002",
"album": "Colorsmoke EP",
"artistId": "100000002",
"artist": "Synthetic",
"coverArt": "300000055",
"duration": 400,
"bitRate": 64,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"track": 5,
"year": 2007,
"genre": "Electronic",
"size": 3209886,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
}
]
}
{
"song": [
{
"id": "300000060",
"parent": "200000002",
"title": "BrownSmoke",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000002",
"album": "Colorsmoke EP",
"artistId": "100000002",
"artist": "Synthetic",
"coverArt": "300000060",
"duration": 304,
"bitRate": 20,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"userRating": 5,
"averageRating": 5,
"track": 4,
"year": 2007,
"genre": "Electronic",
"size": 792375,
"discNumber": 1,
"suffix": "wma",
"contentType": "audio/x-ms-wma",
"path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
},
{
"id": "300000055",
"parent": "200000002",
"title": "Red&GreenSmoke",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000002",
"album": "Colorsmoke EP",
"artistId": "100000002",
"artist": "Synthetic",
"coverArt": "300000055",
"duration": 400,
"bitRate": 64,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"track": 5,
"year": 2007,
"genre": "Electronic",
"size": 3209886,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
}
]
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
song |
Array of Child |
No | List of songs |
56 - similarSongs2
{
"song": [
{
"id": "300000060",
"parent": "200000002",
"title": "BrownSmoke",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000002",
"album": "Colorsmoke EP",
"artistId": "100000002",
"artist": "Synthetic",
"coverArt": "300000060",
"duration": 304,
"bitRate": 20,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"userRating": 5,
"averageRating": 5,
"track": 4,
"year": 2007,
"genre": "Electronic",
"size": 792375,
"discNumber": 1,
"suffix": "wma",
"contentType": "audio/x-ms-wma",
"path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
},
{
"id": "300000055",
"parent": "200000002",
"title": "Red&GreenSmoke",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000002",
"album": "Colorsmoke EP",
"artistId": "100000002",
"artist": "Synthetic",
"coverArt": "300000055",
"duration": 400,
"bitRate": 64,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"track": 5,
"year": 2007,
"genre": "Electronic",
"size": 3209886,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
}
]
}
{
"song": [
{
"id": "300000060",
"parent": "200000002",
"title": "BrownSmoke",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000002",
"album": "Colorsmoke EP",
"artistId": "100000002",
"artist": "Synthetic",
"coverArt": "300000060",
"duration": 304,
"bitRate": 20,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"userRating": 5,
"averageRating": 5,
"track": 4,
"year": 2007,
"genre": "Electronic",
"size": 792375,
"discNumber": 1,
"suffix": "wma",
"contentType": "audio/x-ms-wma",
"path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
},
{
"id": "300000055",
"parent": "200000002",
"title": "Red&GreenSmoke",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000002",
"album": "Colorsmoke EP",
"artistId": "100000002",
"artist": "Synthetic",
"coverArt": "300000055",
"duration": 400,
"bitRate": 64,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"track": 5,
"year": 2007,
"genre": "Electronic",
"size": 3209886,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
}
]
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
song |
Array of Child |
No | List of songs |
57 - song
// TODO
// TODO
Field | Type | Req. | OpenS. | Details |
---|
58 - songsByGenre
// TODO
// TODO
Field | Type | Req. | OpenS. | Details |
---|
59 - starred
// TODO
// TODO
Field | Type | Req. | OpenS. | Details |
---|
60 - starred2
// TODO
// TODO
Field | Type | Req. | OpenS. | Details |
---|
61 - structuredLyrics
{
"displayArtist": "Muse",
"displayTitle": "Hysteria",
"lang": "xxx",
"offset": -100,
"synced": true,
"line": [
{
"start": 0,
"value": "It's bugging me"
},
{
"start": 2000,
"value": "Grating me"
},
{
"start": 3001,
"value": "And twisting me around..."
}
]
}
<structuredLyrics displayArtist="Muse" displayTitle="Hysteria" lang="xxx" offset="-100" synced="true">
<line start="0">It's bugging me</line>
<line start="2000">Grating me</line>
<line start="3001">And twisting me around...</line>
</structuredLyrics>
Does not exist.
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
lang |
string |
Yes | Yes | The lyrics language (ideally ISO 639). If the language is unknown (e.g. lrc file), the server must return und (ISO standard) or xxx (common value for taggers) |
synced |
boolean |
Yes | Yes | True if the lyrics are synced, false otherwise |
line |
Array of line |
Yes | Yes | The actual lyrics. Ordered by start time (synced) or appearance order (unsynced) |
displayArtist |
string |
No | Yes | The artist name to display. This could be the localized name, or any other value |
displayTitle |
string |
No | Yes | The title to display. This could be the song title (localized), or any other value |
offset |
number |
No | Yes | The offset to apply to all lyrics, in milliseconds. Positive means lyrics appear sooner, negative means later. If not included, the offset must be assumed to be 0 |
OpenSubsonic
This is a new OpenSubsonic response type.62 - subsonic-response
{
"subsonic-response": {
"status": "ok",
"version": "1.16.1",
"type": "AwesomeServerName",
"serverVersion": "0.1.3 (tag)",
"openSubsonic": true
}
}
{
"subsonic-response": {
"status": "ok",
"version": "1.16.1"
}
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
status |
string |
Yes | The command result. ok or failed |
|
version |
string |
Yes | The server supported Subsonic API version. | |
type |
string |
Yes | Yes | The server actual name. [Ex: Navidrome or gonic ] |
serverVersion |
string |
Yes | Yes | The server actual version. [Ex: 1.2.3 (beta) ] |
openSubsonic |
boolean |
Yes | Yes | Must return true if the server support OpenSubsonic API v1 |
error |
error |
No | The error details when status is failed |
OpenSubsonic
New fields are added:
type
containing the server type/name (Ex: Navidrome or gonic). Mandatory to help clients adapt to actual Subsonic API support.serverVersion
containing the server version (Ex: 1.2.3) this is different from theversion
field that expose the Subsonic API version. Mandatory for clients to be able to detect servers updates and check again supported OpenSubsonic extensions.openSubsonic
must return true if the server support OpenSubsonic API v1
63 - tokenInfo
{
"tokenInfo": {
"username": "token username"
}
}
<tokenInfo username="token username"></tokenInfo>
Does not exist.
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
username |
string | Yes | Yes | Username associated with token |
64 - topSongs
{
"song": [
{
"id": "300000060",
"parent": "200000002",
"title": "BrownSmoke",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000002",
"album": "Colorsmoke EP",
"artistId": "100000002",
"artist": "Synthetic",
"coverArt": "300000060",
"duration": 304,
"bitRate": 20,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"userRating": 5,
"averageRating": 5,
"track": 4,
"year": 2007,
"genre": "Electronic",
"size": 792375,
"discNumber": 1,
"suffix": "wma",
"contentType": "audio/x-ms-wma",
"path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
},
{
"id": "300000055",
"parent": "200000002",
"title": "Red&GreenSmoke",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000002",
"album": "Colorsmoke EP",
"artistId": "100000002",
"artist": "Synthetic",
"coverArt": "300000055",
"duration": 400,
"bitRate": 64,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"track": 5,
"year": 2007,
"genre": "Electronic",
"size": 3209886,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
}
]
}
{
"song": [
{
"id": "300000060",
"parent": "200000002",
"title": "BrownSmoke",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000002",
"album": "Colorsmoke EP",
"artistId": "100000002",
"artist": "Synthetic",
"coverArt": "300000060",
"duration": 304,
"bitRate": 20,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"userRating": 5,
"averageRating": 5,
"track": 4,
"year": 2007,
"genre": "Electronic",
"size": 792375,
"discNumber": 1,
"suffix": "wma",
"contentType": "audio/x-ms-wma",
"path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007/04-Synthetic_-_BrownSmokeYSBM20k22khS.wma"
},
{
"id": "300000055",
"parent": "200000002",
"title": "Red&GreenSmoke",
"isDir": false,
"isVideo": false,
"type": "music",
"albumId": "200000002",
"album": "Colorsmoke EP",
"artistId": "100000002",
"artist": "Synthetic",
"coverArt": "300000055",
"duration": 400,
"bitRate": 64,
"bitDepth": 16,
"samplingRate": 44100,
"channelCount": 2,
"track": 5,
"year": 2007,
"genre": "Electronic",
"size": 3209886,
"discNumber": 1,
"suffix": "mp3",
"contentType": "audio/mpeg",
"path": "Synthetic/Synthetic_-_Colorsmoke_EP-20k217-2007(1)/05-Synthetic_-_RedGreenSmokePM20k22khS_64kb.mp3"
}
]
}
Field | Type | Req. | OpenS. | Details |
---|---|---|---|---|
song |
Array of Child |
No | List of songs |
65 - user
// TODO
// TODO
Field | Type | Req. | OpenS. | Details |
---|
66 - users
// TODO
// TODO
Field | Type | Req. | OpenS. | Details |
---|
67 - videoInfo
// TODO
// TODO
Field | Type | Req. | OpenS. | Details |
---|
68 - videos
// TODO
// TODO
Field | Type | Req. | OpenS. | Details |
---|