clementine-player / Android-Remote

Control Clementine from your Android device
GNU General Public License v3.0
198 stars 80 forks source link

clementine remote api #204

Open GRbit opened 4 years ago

GRbit commented 4 years ago

I want to make clementine remote client for desktop to not only control the player, but also to download songs from library.

I'm not very experienced in Java, so it will be hard to me to understand how exaclty Android-Remote communicate with clementine, so I want to know, is there some public api for remote control? Or maybe you can specify main places in code where I can look to better understand communication process?

tincho commented 4 years ago

looking for exaclty the same!

some investigation:

the protocol is https://github.com/protocolbuffers/protobuf

may take a look at

https://raw.githubusercontent.com/clementine-player/Android-Remote/master/app/src/main/java/de/qspool/clementineremote/backend/pb/ClementineRemoteProtocolBuffer.java

https://github.com/clementine-player/Android-Remote/blob/master/app/src/main/java/de/qspool/clementineremote/backend/pb/remotecontrolmessages.proto

https://github.com/clementine-player/Android-Remote/blob/master/app/src/main/java/de/qspool/clementineremote/backend/pb/ClementineMessage.java

https://github.com/clementine-player/Android-Remote/blob/master/app/src/main/java/de/qspool/clementineremote/backend/pb/ClementineRemoteProtocolBuffer.java

I would like at least a CLI to remote control Clementine from other Linux PC

mbruel commented 3 years ago

@GRbit @tincho have you guys done something? I'm planing to do a new remote in Qt/QML so it will be deployable on all the OS (including iOS). My goal is mainly to add the feature I'm interested in: the possibility to browse folders on the server (from a root folder set in the settings) I'll see what I'll add also, not sure I'll clone the Java remote myself. If people are interested to join, please let me know. I'll probably have some time in October to do it.

GRbit commented 3 years ago

@mbruel I've done nothing, but if you will start doing something like CLI or Qt/QML remote client, I'll be glad if you contact me directly.

mbruel commented 3 years ago

@GRbit drop me an email at Matthieu.Bruel@gmail.com I'll probably start next week. I've already patched Clementine to add a Files root folder for the Remote Client :p alt text

tincho commented 3 years ago

personally I moved from Clementine to mpd + Cantata (when available, else for Android there's MPD Control) ... the feature I miss the most from Clementine is to manually enqueue (CTRL+D) tracks ... so I basically add a bunch of albums to the list, enable shuffle mode, and occasionally enqueue a few tracks when I want them to play in a given order

if Clementine UX could be integrated as MPD client that would be just perfect 😍

mbruel commented 3 years ago

@tincho I don't know Cantata. I doubt their remote API is the same than the one of Clementine as it seems really embedded and specific.

tincho commented 3 years ago

Cantata is just an MPD client, one of many. They adopt the MPD client protocol.

I know Clementine has its own player and engine but in my wildest fantasies I dream of having the Clementine UI consuming an MPD server