Subsonic API Reference β
Tunecamp exposes a full Subsonic API at /rest, compatible with Subsonic API version 1.16.1. This makes it compatible with all major Subsonic clients.
Tested Clients β
| Client | Platform | Status |
|---|---|---|
| DSub | Android | β |
| Symfonium | Android | β |
| Tempo | iOS | β |
| Substreamer | Multi | β |
| Amuse | Android | β |
| play:Sub | iOS | β |
Connection Settings β
- Server URL:
https://your-server.com/rest - Username: Your Tunecamp username (administrator or artist)
- Password: Your Subsonic password β not your account password
Generate the Subsonic password under Profile β Settings β Subsonic Password. It is shown once, at creation; if you lose it, generate a new one. Removing it signs out every Subsonic app using it, and leaves the rest of your account untouched.
NOTE
The Subsonic protocol authenticates as md5(password + salt), so the server must be able to read the secret back β it cannot store a one-way hash. That is why Subsonic gets its own random password instead of your account password: a database leak exposes only revocable, streaming-scoped credentials.
NOTE
Roaming Users: To use Subsonic on a new instance, log in to that instance via the web interface first. This triggers the Lazy Account Creation (roaming) which sets up your local profile; then generate a Subsonic password there.
Supported Endpoints β
TuneCamp implements the core Subsonic specification (v1.16.1) required by mobile clients:
System & Connectivity β
| Endpoint | Description | Status |
|---|---|---|
ping.view | Check server connectivity and authenticate | β Supported |
getLicense.view | Returns valid server license | β Supported |
getScanStatus.view | Media library scan status | β Supported |
Browsing & Catalog β
| Endpoint | Description | Status |
|---|---|---|
getMusicFolders.view | List root music folders | β Supported |
getIndexes.view | List artists alphabetically indexed | β Supported |
getArtists.view | List all artists (ID3 indexed) | β Supported |
getMusicDirectory.view | Browse directory structure (artist β albums β tracks) | β Supported |
getArtist.view | Get artist details and discography | β Supported |
getAlbum.view | Get album details with tracklist | β Supported |
getArtistInfo.view / getArtistInfo2.view | Artist biography and images | β Supported |
getAlbumInfo.view / getAlbumInfo2.view | Album description and cover art | β Supported |
getGenres.view | List all musical genres | β Supported |
Album / Song Lists & Search β
| Endpoint | Description | Status |
|---|---|---|
getAlbumList.view / getAlbumList2.view | Album lists (newest, random, frequent, recent, starred, alphabeticalByName, byGenre, byYear) | β Supported |
getRandomSongs.view | Random track selection from library | β Supported |
getStarred.view / getStarred2.view | Get favorited/starred items | β Supported |
search.view / search2.view / search3.view | Full-text search across artists, albums, and tracks | β Supported |
Media Streaming & Playback β
| Endpoint | Description | Status |
|---|---|---|
stream.view | Stream audio files (supports transcode bitrates & format conversion) | β Supported |
getCoverArt.view | Serve artwork images for artists, albums, and tracks | β Supported |
scrobble.view | Record track plays in database and external scrobblers | β Supported |
getNowPlaying.view | List currently playing tracks across active sessions | β Supported |
Playlists & Podcasts β
| Endpoint | Description | Status |
|---|---|---|
getPlaylists.view | List your own playlists plus every public one (admins: all) | β Supported |
getPlaylist.view | Get playlist details with song list β owner, admin, or a public playlist | β Supported |
createPlaylist.view | Create a new user playlist | β Supported |
updatePlaylist.view | Add/remove songs, update visibility β owner or admin only | β Supported |
deletePlaylist.view | Delete a playlist β owner or admin only | β Supported |
getPodcasts.view | List podcast channels / episodes | β Supported |
getNewestPodcasts.view | List newest podcast episodes | β Supported |
User Profile β
| Endpoint | Description | Status |
|---|---|---|
getUser.view | Get user details and streaming permissions | β Supported |
Planned / Non-Implemented Endpoints β
The following Subsonic endpoints are not currently needed for core playback in DSub/Symfonium/Tempo and return an unsupported endpoint code if queried:
download.view(handled viastream.viewor TuneCamp native REST API)getSong.view,getTopSongs.view,getSimilarSongs.viewgetLyrics.view,getAvatar.viewstar.view,unstar.view(favorites managed via Web UI)getPlayQueue.view,savePlayQueue.view,getBookmarks.viewgetInternetRadioStations.view,getShares.view,jukeboxControl.view