How should tidal uri's be sent via websocket?

Hi!

As the title says how should the tidal uri’s be sent via websocket to make system to register those correctly? I have no proplem with local files from usb memory or spotify plugin, everything works as it should. but from tidal cant add anything to queue, also replaceAndPlay just seems to clear the queue, but never add anything in there.

From the volumio/dev live log i can see that it adds “mnt” to the uri i send(propably a bug?), before or after “explodeUri” Is called.

I’ve got rpi4 with the latest volumio.

I don’t understand how the extra music services such as Tidal & Qobuz actually function within Volumio, other than they are a part of MyVolumio. I would expect that you sending stuff directly via websockets, but not MyVolumio will just fail??

Thx for the reply, yeah no idea about the implementations, since could not find and look into those.(those are proprietary?)

But since the browsing of tidal works via websocket, i suppose playback should work aswell, don’t know about qobuz since it’s not available for my country sadly.

Still having the same issue with latest version for rpi.

And here’s the most likely cause →

info: CorePlayQueue::addQueueItems
info: Adding Item to queue: tidal://rising/albums/172395172
info: Exploding uri tidal://rising/albums/172395172 in service mpd
scanFolder - failure to stat ‘/mnt/tidal://rising/albums/172395172’

Figured it out by looking at Web UI repository from github.

For tidal and qobuz, not only the Uri of item is needed, but also service, art and title.

so the final object to send out would be →

    /** Adds items to current playback queue
     * @param item can be Track, Playlist or Album
     * @return nothing directly
     */
    fun add(item: VolumioNavItem) {
        val obj = JSONObject().apply {
            put("uri", item.path)
            put("title", item.name)
            put("service", item.musicService.toLowerCase())
            put("albumart", item.art)
        }
        volumioSocket?.emit("addToQueue", obj)
    }

in kotlin atleast.

@chsims1
You happen to know how can i add a page to the documentation found for websocket and rest api? I could add information how to use the api with kotlin/android as i progress in my own task, which is providing easy to use android library for volumio, so that one does not really need to know the implementation details of websocket and rest

https://volumio.github.io/docs/Good_to_Knows/Contribute_to_this_Doc.html

1 Like

Perfect, will contribute from my part to the project by providing some documentation with examples.

Thanks Joni, everyone agrees how important documentation is, but no one enjoys writing it. Cheers! :smiley:

What do you think, would this kind of formatting be good? If someone thinks something should be changed please tell me.