navidrome/API_COMPATIBILITY.md

58 lines
2.5 KiB
Markdown
Raw Normal View History

### Supported Subsonic API endpoints
CloudSonic is currently compatible (to some extent) with [Subsonic API](subsonic.org/pages/api.jsp) v1.8.0, with some exceptions.
This is an (almost) up to date list of all Subsonic API endpoints implemented by CloudSonic.
Check the "Notes" column for limitations/missing behaviour. Also keep in mind these differences between
CloudSonic and Subsonic:
* Right now, CloudSonic only works with a single Music Library (Music Folder)
* CloudSonic does not mark songs as played by calls to `stream`, only when
`scrobble` is called with `submission=true`
* Next features to be implemented: Playlists (WIP), MultiUser (WIP), Jukebox, Sharing, Podcasts, Bookmarks, Internet Radio.
| 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 |
| ||
| _MEDIA RETRIEVAL_ ||
| `stream` | Returns wrong content-length when downsampling |
| `download` | |
| `getCoverArt` | Only gets embedded artwork |
| `getAvatar` | Always returns the same image |
| ||
| _MEDIA ANNOTATION_ ||
| `star` | |
| `unstar` | |
| `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|