I used volumio 1.5 for years on a raspberry pi and it works very well. I used a personnal program to build music selection and them use volumio to play these songs. I build a python script to send back the current playing song to my personnal system.
2 weeks ago, I decided to buy a mini 86 on volumio website to support the community. the mini 86 comes with volumio 2 already installed. I try to adapt my personnal program to send songs to volumio 2 without success:
I tried REST API but the addToQueue is not supported by REST API.
I tried WebSocket API: I can easily change setting like volume but cannot add song to queue.
My uri is on that format: 192.168.0.121/path1/path2/song.mp3
Is the uri need to follow a certain format or do we have limitation ?
Thank you for your help.
volumio
October 31, 2018, 10:38am
2
I suggest you to take a look at the websocket plugin, put a console log there and see the exact payload that gets sent when a upnp file is being added.
This way you’ll be able to do what you need
Thank you for your quick response !
here is the call:
socket.emit(‘addToQueue’, {“uri”:“http://192.168.0.103/sons/qualif4/jmb18_02.mp3 ”});
Here is what the console says:
header:
XHRPOSThttp://volumio:3000/socket.io/?EIO=3&transport=polling&t=MRBrv-Q&sid=ULoMlT_QGuCU8e7IAAAH[HTTP/1.1 200 OK 0ms]
HeadersCookiesParamsResponseTimingsStack TraceRequest URL:Request method:Remote address:Status code:200Edit and ResendRaw headersVersion:Response headers (244 B)Access-Control-Allow-CredentialstrueAccess-Control-Allow-Originhttp://hrv10Connectionkeep-aliveContent-Length2Content-Typetext/htmlDateWed, 31 Oct 2018 20:36:43 GMTSet-Cookieio=ULoMlT_QGuCU8e7IAAAHRequest headers (465 B)Accept*/*Accept-Encodinggzip, deflateAccept-Languageen-US,en;q=0.5Connectionkeep-aliveContent-Length76Content-typetext/plain;charset=UTF-8Cookieio=ULoMlT_QGuCU8e7IAAAHHostvolumio:3000Originhttp://hrv10Refererhttp://hrv10/intranet/hrv101/test.htmlUser-AgentMozilla/5.0 (Windows NT 6.1; W…) Gecko/20100101 Firefox/63.0
param:
XHRPOSThttp://volumio:3000/socket.io/?EIO=3&transport=polling&t=MRBrv-Q&sid=ULoMlT_QGuCU8e7IAAAH[HTTP/1.1 200 OK 0ms]
HeadersCookiesParamsResponseTimingsStack TraceQuery stringEIO3sidULoMlT_QGuCU8e7IAAAHtMRBrv-QtransportpollingRequest payload 173:42["addToQueue",{"uri":"http://192.168.0.103/sons/qualif4/jmb18_02.mp3"}]
response:
XHRPOSThttp://volumio:3000/socket.io/?EIO=3&transport=polling&t=MRBrv-Q&sid=ULoMlT_QGuCU8e7IAAAH[HTTP/1.1 200 OK 0ms]
HeadersCookiesParamsResponseTimingsStack TracePreviewResponse payload 1ok
Stack trace:
XHRPOSThttp://volumio:3000/socket.io/?EIO=3&transport=polling&t=MRBrv-Q&sid=ULoMlT_QGuCU8e7IAAAH[HTTP/1.1 200 OK 0ms]
HeadersCookiesParamsResponseTimingsStack Trace i.prototype.create http://hrv10/intranet/hrv101/socket.io.js:7:4049
i http://hrv10/intranet/hrv101/socket.io.js:7:1635
o.prototype.request http://hrv10/intranet/hrv101/socket.io.js:7:2287
o.prototype.doWrite http://hrv10/intranet/hrv101/socket.io.js:7:2370
r.prototype.write/< http://hrv10/intranet/hrv101/socket.io.js:7:6934
e.encodePayload/< http://hrv10/intranet/hrv101/socket.io.js:7:11685
o http://hrv10/intranet/hrv101/socket.io.js:7:15200
i/< http://hrv10/intranet/hrv101/socket.io.js:7:9596
i/< http://hrv10/intranet/hrv101/socket.io.js:7:11504
e.encodePacket http://hrv10/intranet/hrv101/socket.io.js:7:10384
i http://hrv10/intranet/hrv101/socket.io.js:7:11465
i http://hrv10/intranet/hrv101/socket.io.js:7:9571
c http://hrv10/intranet/hrv101/socket.io.js:7:9625
e.encodePayload http://hrv10/intranet/hrv101/socket.io.js:7:11658
r.prototype.write http://hrv10/intranet/hrv101/socket.io.js:7:6884
r.prototype.send http://hrv10/intranet/hrv101/socket.io.js:7:8457
r.prototype.flush http://hrv10/intranet/hrv101/socket.io.js:6:30146
r.prototype.sendPacket http://hrv10/intranet/hrv101/socket.io.js:6:30662
r.prototype.send http://hrv10/intranet/hrv101/socket.io.js:6:30306
r.prototype.packet/< http://hrv10/intranet/hrv101/socket.io.js:6:20329
r.prototype.encode http://hrv10/intranet/hrv101/socket.io.js:6:11650
r.prototype.packet http://hrv10/intranet/hrv101/socket.io.js:6:20268
r.prototype.packet http://hrv10/intranet/hrv101/socket.io.js:7:26875
r.prototype.emitBuffered http://hrv10/intranet/hrv101/socket.io.js:7:28535
r.prototype.onconnect http://hrv10/intranet/hrv101/socket.io.js:7:28337
r.prototype.onpacket http://hrv10/intranet/hrv101/socket.io.js:7:27431
t.exports/< http://hrv10/intranet/hrv101/socket.io.js:7:29644
r.prototype.emit http://hrv10/intranet/hrv101/socket.io.js:6:13544
r.prototype.ondecoded http://hrv10/intranet/hrv101/socket.io.js:6:19629
t.exports/< http://hrv10/intranet/hrv101/socket.io.js:7:29644
r.prototype.emit http://hrv10/intranet/hrv101/socket.io.js:6:13544
a.prototype.add http://hrv10/intranet/hrv101/socket.io.js:6:11883
r.prototype.ondata http://hrv10/intranet/hrv101/socket.io.js:6:19574
t.exports/< http://hrv10/intranet/hrv101/socket.io.js:7:29644
r.prototype.emit http://hrv10/intranet/hrv101/socket.io.js:6:13544
r.prototype.onPacket http://hrv10/intranet/hrv101/socket.io.js:6:28772
r.prototype.setTransport/< http://hrv10/intranet/hrv101/socket.io.js:6:26387
r.prototype.emit http://hrv10/intranet/hrv101/socket.io.js:6:13544
r.prototype.onPacket http://hrv10/intranet/hrv101/socket.io.js:7:8690
n http://hrv10/intranet/hrv101/socket.io.js:7:6318
e.decodePayloadAsBinary/< http://hrv10/intranet/hrv101/socket.io.js:7:13811
e.decodePayloadAsBinary http://hrv10/intranet/hrv101/socket.io.js:7:13787
e.decodePayload http://hrv10/intranet/hrv101/socket.io.js:7:11771
r.prototype.onData http://hrv10/intranet/hrv101/socket.io.js:7:6333
o.prototype.doPoll/< http://hrv10/intranet/hrv101/socket.io.js:7:2612
r.prototype.emit http://hrv10/intranet/hrv101/socket.io.js:6:13544
i.prototype.onData http://hrv10/intranet/hrv101/socket.io.js:7:4300
i.prototype.onLoad http://hrv10/intranet/hrv101/socket.io.js:7:4899
i.prototype.create/n.onreadystatechange http://hrv10/intranet/hrv101/socket.io.js:7:3963
the response says OK, but the queue stay empty …
Hi.
Is there a way to allow MPD command in Volumio 2 like we had in Volumio 1.5 ?
Christian