Lautaro-Garcia / counsel-spotify

Control Spotify App through Emacs
GNU General Public License v3.0
58 stars 8 forks source link

Shell command succeeded with no output #12

Open andyqhan opened 4 years ago

andyqhan commented 4 years ago

This is a duplicate of #5 but I don't have permission to reopen it. I have spotify open, but when I do counsel-spotify-play it returns "(Shell command succeeded with no output)". I'm on emacs 26.3, macOS 10.15.4, and counsel-spotify from melpa.

Lautaro-Garcia commented 4 years ago

Oh, I'm sorry to hear that!

Let's do a little test: if a song is already playing, can you execute counsel-spotify-toggle-play-pause to pause it? Or counsel-spotify-previous to go to the previous song?

Also, what happens if you type

osascript -e 'tell application "Spotify" to play track "spotify:track:45aEOl5I6WS7xIPMl5EOfF"' 

into a terminal? Does it open Spotify and play a song? And if Spotify is already open?

andyqhan commented 4 years ago

Yes, counsel-spotify-toggle-play-pause works, somehow.

The terminal command plays the song if Spotify is open, and opens Spotify if it's closed without playing the song. The first time I ran it, it had me grant Terminal the accessibility permissions for Spotify.

It seems that the basic control commands work, but what doesn't work are things like counsel-spotify-search-track. When I run that command, I get the following message in the mini buffer:

cl-no-applicable-method: No applicable method: counsel-spotify-do-play, #s(counsel-spotify-darwin-backend #s(counsel-spotify-backend-commands "play track" "playpause" "next track" "previous track")), nilUnable to load color "#303030"cl-no-applicable-method: No applicable method: counsel-spotify-do-play, #s(counsel-spotify-darwin-backend #s(counsel-spotify-backend-commands "play track" "playpause" "next track" "previous track")), nilUnable to load color "#303030"

No idea what that "unable to load color" thing is about, though.

When I run counsel-spotify-search-track, I'm able to input stuff into the minibuffer. But it seems that the ivy integration isn't working, because it says there are always [1/0] matches. If I type in a search string nevertheless, it outputs the error above.

Also, that's a good song.

Lautaro-Garcia commented 4 years ago

Well, that stacktrace is really useful!

The generic function counsel-spotify-do-play receives two things: a backend (in order to dispatch different functionality for Linux and macOS) and a playable object (that could be a Spotify track, an album or an artist). The stacktrace says that the playable was nil. I suspect that it had something to do with that unable to load color.

We can try two things:

  1. Could you change your Emacs color theme and try to execute the function again?
  2. What about the other searches, counsel-spotify-search-album or counsel-spotify-search-artist? Do they work?