Hi,
I am new to Volumio, got it successfully running on a Raspberry Pi Zero (sloowww) with Spotify Premium.
I would like to play a full album from Spotify, initiated with a hardware interface using NFC cards.
Example, something like this with 23 tracks: open.spotify.com/album/01JrN7TzqiE7Vs1JNJ3Mkl
How can I do that via REST API or WebSocket? I checked the docs and tried some initial code, but its not working for me.
Thanks
bluepuma
I might add that Spotify is behaving strangely on the Pi.
Featured playlists aren’t playing at all
Personal playlists are not shown
It only plays songs and albums from “What’s new”
Using volumio latest.
No one using Spotify and the API (in this forum)?
Is there another better place to ask?
help-needed-test-spotify-plugin-with-oauth-t10071-10.html
how-get-the-spotify-plugin-working-t12368.html#p63618
For the api part, it is tricky as Spotify is stand alone, and doesn’t use mpd like the rest of Volumio. You might need to dig a litter further into the uri structure that Volumio uses and check if you can coax it to play an album.
Thank you very much for the link!
I did not realize that my Spotify login wasn’t actually working.
[b]It would be great to have
latest Spotify plugin installable via GUI
indicator if Spotify login was (not) successful[/b]
I worked my way through some Github source code and it seems the REST API can’t handle playing a URI
github.com/volumio/Volumio2/blo … i/index.js
After diving into the WebSocket API I found “replaceAndPlay” in the source which is not listed in the documentation
volumio.github.io/docs/API/WebSocket_APIs.html
github.com/volumio/Volumio2/blo … t/index.js
github.com/socketio/socket.io-client
I can now play a full Spotify album with a node script Strangely I don’t get any messages back
var socket = require('socket.io-client')('http://volumio.local:3000');
socket.on('connect', function(){
console.log('connect');
socket.emit('getDeviceInfo'); // test
socket.emit('getState', ""); // test
socket.emit('getQueue', {}); // test
socket.emit('replaceAndPlay', {"name": "Spotify", "service": "spop", "uri": "spotify:album:7a5U0GPoAvT3gvEY66FRuN"});
console.log('emitted');
});
socket.on('event', function(data){
console.log(data);
});
socket.on('message', function(data){
console.log(data);
});
socket.on('disconnect', function(){
console.log('disconnect');
});
I am also trying to play a spotifty album using the web API how exactly did you compile and run this command here?
is there a way to do it like this?
volumio.local/api/v1/replaceAndPlay
jac459
March 28, 2020, 2:35am
7
Hello, have you considered the rest api to manipulate spotify? You can just try this url volumio.local/api/v1/browse?uri= … /playlists , on my setup it works pretty well and you can go forward easily from there.
I struggled a bit with this too, and a quick solution is to add a spotify playlist to queue, and then save the queue to a volumio playlist, then one can trigger the playlist easily with the rest API.
Hope it helps
Hi,
I was working on it for several hours with the REST API Volumio for playing a spotify track/album, here is how i make it works hoping to help you.
With Python i only use “requests” library to interact with REST API, and it works for me :
import requests
requests.post(“http://127.0.0.1:3000/api/v1/replaceAndPlay ”, json={“name”: “Spotify”, “service”: “spop”, “uri”: “spotify:track:1ACqqQiBkxSOoEYUW57Itl”})
You can try the “addToQueue” command or use a Spotify album url, it should work.