_ __ __ _ _ _| |__| \/ |_ _ __(_)__ | || | '_ \ |\/| | || (_-< / _| \_,_|_.__/_| |_|\_,_/__/_\__| by rhw.one ubMusic API (path-based, sanitized) All endpoints are GET Root / returns this plain text file =============================================================== || WOAH!! Beyond this point all endpoints are API KEY locked!|| || ================================================ || Please contact me at me(at)rhw(dot)one, or my discord r.h.w. (with the last period) to obtain API Access!|| ============================================================================================================== ======================== Authorization ======================== Either Authorization: Bearer header or &auth=[apikey] ======================== SEARCH PATHS ======================== /search/tracks/{query}?limit=25&offset=0 Returns: - query - type (tracks) - count - items[] - trackId - trackName - artist - artistPath - album - albumPath - albumCoverPath - audioPath - infoPath - lyricsPath /search/albums/{query}?limit=25&offset=0 Returns: - query - type (albums) - count - items[] - albumId - album - artist - artistPath - trackCount - releaseDate - coverPath - albumPath /search/artists/{query}?limit=25&offset=0 Returns: - query - type (artists) - count - items[] - artistId - artist - picturePath - artistPath ======================== TRACK PATHS ======================== /track/{trackId}?quality=LOSSLESS Quality options: - LOW - HIGH - LOSSLESS Returns: - trackId - quality - mimeType - bitDepth - sampleRate - durationSeconds - audioPath - lyricsPath /track/{trackId}/audio?quality=LOSSLESS Returns: - Proxied audio stream response body - content-type from upstream audio/flac - supports Range headers for seeking /track/{trackId}/lyrics Returns: - trackId - hasLyrics - hasSyncedLyrics - provider - lyrics (plain lyrics when available) - syncedLyrics (LRC/timestamped lyrics when available) ======================== ALBUM PATHS ======================== /album/{albumId} Returns: - albumId - album - artist - releaseDate - coverPath - tracks[] - trackId - trackName - artist - infoPath - audioPath - lyricsPath ======================== ARTIST PATHS ======================== /artist/{artistId} Returns: - artistId - artist - picturePath - topTracks[] - trackId - trackName - infoPath - audioPath - lyricsPath - albums[] - albumId - album - coverPath - albumPath ======================== MEDIA PROXY PATHS ======================== /cover/{coverId}/{size} Allowed sizes: - 1280x1280 - 640x640 - 512x512 - 320x320 - 256x256 - 160x160 - 80x80 Returns: - Proxied JPEG image body ======================== DEBUG PATHS ======================== /debug/upstream Returns: - sessionId - selectedUpstream - fromSessionCache - sessionTtlMs - probeCacheTtlMs - rankings[] - base - latencyMs ======================== USAGE NOTES ======================== - All links returned by JSON are full paths that point back to this API - Search paths are designed for frontend-only apps - Responses are sanitized and trimmed for client use - Invalid ids/params return simple JSON errors Made for building frontend music players: - search tracks/albums/artists - show covers - play songs - read synced lyrics