navidrome/API_COMPATIBILITY.md

2.9 KiB

Supported Subsonic API endpoints

Navidrome is currently compatible with Subsonic API v1.8.0, with some exceptions.

This is an (almost) up to date list of all Subsonic API endpoints implemented by Navidrome. Check the "Notes" column for limitations/missing behaviour. Also keep in mind these differences between Navidrome and Subsonic:

  • Right now, Navidrome only works with a single Music Library (Music Folder)
  • Navidrome 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.

Navidrome is actively being tested with: DSub, Music Stash and Jamstash)

ENDPOINT NOTES
SYSTEM
ping
getLicense Always valid ;)
BROWSING
getMusicFolders Hardcoded to just one, set with ND_MUSICFOLDER configuration
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
getStarred2
getNowPlaying
getRandomSongs Ignores fromYear and toYear 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 username parameter is not implemented
getPlaylist
createPlaylist Return empty response on success
updatePlaylist comment and public are not implemented. All playlists are public
deletePlaylist
MEDIA RETRIEVAL
stream No Transcoding/Downsampling support (for now)
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 and last played
USER MANAGEMENT
getUser Hardcoded all roles, ignores username parameter