Updated Compatibility (markdown)

Deluan Quintão 2020-01-20 22:58:07 -05:00
parent bd7b7013ca
commit c78b3c6d4d

@ -1,71 +1 @@
### Supported Subsonic API endpoints
This is an (almost) up to date list of all endpoints implemented by CloudSonic. As noted in the "Notes" column,
some of them have some sort of limitation, usually because it is incomplete or because of a functionality
not supported by iTunes. Also keep in mind these differences between iTunes+CloudSonic and Subsonic:
* iTunes doesn't support rating artists (stars or loved)
* iTunes is a single user app, so ratings and stars are always the same for all users
* Right now, CloudSonic only works with a single iTunes library
* CloudSonic tries to mark songs as skipped, if your client properly uses the
`submission` param for `scrobble` (DSub does)
* CloudSonic does not mark the song as played by calls to `stream`, only when
`scrobble` is called with `submission=true`
* All media annotation and playlists calls need iTunes running. CloudSonic will
start iTunes if it is closed
* It can take up to 1 minute for media annotation and playlists calls to be reflected
in other endpoint calls
* Low priority features: MultiUser, Jukebox, Sharing, Podcasts, Bookmarks, Internet Radio.
That being said, I'll try my best to implement all of this ;)
| ENDPOINT | NOTES |
|------------------------|-------|
| _SYSTEM_ ||
| `ping` | |
| `getLicense` | Always valid ;) |
| ||
| _BROWSING_ ||
| `getMusicFolders` | Hardcoded to just one, configured in `app.conf` |
| `getIndexes` | Doesn't support shortcuts, nor direct children |
| `getMusicDirectory` | |
| `getSong` | |
| `getArtists` | |
| `getArtist` | |
| `getAlbum` | |
| `getGenres` | |
| ||
| _ALBUM/SONGS LISTS_ ||
| `getAlbumList` | `byYear` and `byGenre` are not implemented |
| `getAlbumList2` | `byYear` and `byGenre` are not implemented |
| `getStarred` | Doesn't return any artists, as iTunes does not support starred (loved) artists |
| `getStarred2` | Doesn't return any artists, as iTunes does not support starred (loved) artists |
| `getNowPlaying` | |
| `getRandomSongs` | Ignores `genre` and `year` parameters |
| ||
| _SEARCHING_ ||
| `search2` | Doesn't support Lucene queries, only simple auto complete queries |
| `search3` | Doesn't support Lucene queries, only simple auto complete queries |
| ||
| _PLAYLISTS_ ||
| `getPlaylists` | |
| `getPlaylist` | |
| `createPlaylist` | Cannot be used to update playlist |
| `updatePlaylist` | Ignores `comment` and `public` parameter. Cannot add or remove songs to a smart playlist (obviously) |
| `deletePlaylist` | |
| ||
| _MEDIA RETRIEVAL_ ||
| `stream` | Returns wrong content-length when downsampling |
| `download` | |
| `getCoverArt` | Only gets embedded artwork |
| `getAvatar` | Always returns the same image |
| ||
| _MEDIA ANNOTATION_ ||
| `star` | Doesn't work with artists |
| `unstar` | Doesn't work with artists |
| `setRating` | Doesn't work with artists |
| `scrobble` | No Last.FM support yet. It is used to update play count, last played, skip count and last skipped |
| ||
| _USER MANAGEMENT_ ||
| `getUser` | Hardcoded all roles, ignores `username` parameter|
See the [compatibility table](https://github.com/cloudsonic/sonic-server/blob/master/API_COMPATIBILITY.md) for the most up to date information