• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
MagicMirror Forum
  • Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

MMM-Spotify

Scheduled Pinned Locked Moved Entertainment
242 Posts 50 Posters 208.1k Views 53 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ? Offline
    A Former User @larrougos
    last edited by A Former User May 22, 2019, 2:45 PM May 22, 2019, 2:44 PM

    @larrougos
    It seems MMM-AssistantMk2’s commands.
    You made some mistakes.

    This is somewhat similar what you want.

    "SPOTIFY_MA_PLAYLIST": {
      notificationExec: {
        notification: "SPOTIFY_PLAY",
        payload: "spotify:playlist:1EaTnmluBfauzzcOdjebNG"
      }
    }
    

    notificationExec cannot emit multiple notifications. It will emit just one - In your case, the last “SPOTIFY_NEXT” would be emitted. that’s why your issue happened.

    If you want to emit several notifications, use MMM-NotificationTrigger to relay and chain notifications. Or you can use moduleExec to make some logics. (Anyway that is not the point).

    And SPOTIFY_SHUFFLE is just toggle flag for current status, so it will not guarantee to be a shuffle mode.

    L 1 Reply Last reply May 22, 2019, 2:52 PM Reply Quote 0
    • L Offline
      larrougos @Guest
      last edited by larrougos May 22, 2019, 2:58 PM May 22, 2019, 2:52 PM

      @Sean said in MMM-Spotify:

      @larrougos
      It seems MMM-AssistantMk2’s commands.
      You made some mistakes.

      This is somewhat similar what you want.

      "SPOTIFY_MA_PLAYLIST": {
        notificationExec: {
          notification: "SPOTIFY_PLAY",
          payload: "spotify:playlist:1EaTnmluBfauzzcOdjebNG"
        }
      }
      

      notificationExec cannot emit multiple notifications. It will emit just one - In your case, the last “SPOTIFY_NEXT” would be emitted. that’s why your issue happened.

      If you want to emit several notifications, use MMM-NotificationTrigger to relay and chain notifications. Or you can use moduleExec to make some logics. (Anyway that is not the point).

      And SPOTIFY_SHUFFLE is just toggle flag for current status, so it will not guarantee to be a shuffle mode.

      ok!! thats a start! can you please help me with that! i mean how this should have a proper syntax! i would really appreciate.

      Also another problem that i have is that if spotify is not already playing in the background i am not able to play anything. whatever command i give. and the frontend does not even show the spotify logo. it just disappears on after one sec on start.

      ? 1 Reply Last reply May 22, 2019, 3:15 PM Reply Quote 0
      • ? Offline
        A Former User @larrougos
        last edited by A Former User May 22, 2019, 3:16 PM May 22, 2019, 3:15 PM

        @larrougos

        Also another problem that i have is that if spotify is not already playing in the background i am not able to play anything. whatever command i give. and the frontend does not even show the spotify logo. it just disappears on after one sec on start.

        In that case, maybe, the module cannot find available active devices. It doesn’t mean you have no device. But by default, Spotify doesn’t know which device is yours unless it is powered and logged as your account.
        So at least one of your devices need to be activated when this SDK is used. I recommend to install Raspotify, that could makes your spotify always on.

        L 1 Reply Last reply May 22, 2019, 3:29 PM Reply Quote 0
        • L Offline
          larrougos @Guest
          last edited by May 22, 2019, 3:29 PM

          @Sean said in MMM-Spotify:

          @larrougos

          Also another problem that i have is that if spotify is not already playing in the background i am not able to play anything. whatever command i give. and the frontend does not even show the spotify logo. it just disappears on after one sec on start.

          In that case, maybe, the module cannot find available active devices. It doesn’t mean you have no device. But by default, Spotify doesn’t know which device is yours unless it is powered and logged as your account.
          So at least one of your devices need to be activated when this SDK is used. I recommend to install Raspotify, that could makes your spotify always on.

          i am running from ubuntu laptop with Spotify application! i tried with raspotify to install but from what i understood it does not support the laptop arch!

          1 Reply Last reply Reply Quote 0
          • R Offline
            rabbit83ka @kwaeksler
            last edited by rabbit83ka Jul 5, 2019, 3:56 PM Jul 5, 2019, 3:56 PM

            First of all thanks for the module and the effort you put in it.

            @Sean said in MMM-Spotify:

            updated

            1.1.0 (2019-03-25)

            • Device Limitation : Now you can allow or limit devices to display its playing on MM.

            One question regarding the device limitation: if I leave it empty, the module shows the cover etc. as it should. If I try to limit it to my echo dot with

             allowDevices: ["myechodot"],
            

            the spotify logo appears if I start playback on the echo dot, but no cover etc. is shown. Any hints?

            ? 1 Reply Last reply Jul 5, 2019, 6:22 PM Reply Quote 0
            • ? Offline
              A Former User @rabbit83ka
              last edited by Jul 5, 2019, 6:22 PM

              @rabbit83ka
              When you play something on your echodot, nothing been displayed?

              R 1 Reply Last reply Jul 6, 2019, 7:05 AM Reply Quote 0
              • R Offline
                rabbit83ka @Guest
                last edited by rabbit83ka Jul 6, 2019, 12:08 PM Jul 6, 2019, 7:05 AM

                @Sean
                If I comment out

                //allwoeDevices: ["myechodot" ]
                

                it shows the album cover/etx/progress etc. when I play something on my echo dot. With

                 allowDevices: ["myechodot"],
                

                the spotify logo appears when something is played on the echodot, but no cover/text/progress etc. is shown.

                1 Reply Last reply Reply Quote 0
                • I Offline
                  Ivanov_d
                  last edited by Jul 12, 2019, 9:29 AM

                  This post is deleted!
                  1 Reply Last reply Reply Quote 0
                  • I Offline
                    Ivanov_d
                    last edited by Jul 18, 2019, 11:24 AM

                    I have the following recipies:

                    var recipe = {
                    
                      transcriptionHook: {
                    
                        HIDE_ALL_MODULES: {
                          pattern: "standby mode",
                          command: "HIDEMODULES"
                        },
                        SHOW_ALL_MODULES: {
                          pattern: "show modules",
                          command: "SHOWMODULES"
                        },
                        SCREEN_ON: {
                          pattern: "turn on screen",
                          command: "SCREENON"
                        },
                        SCREEN_OFF: {
                          pattern: "turn off screen",
                          command: "SCREENOFF"
                        },
                        REBOOT: {
                          pattern: "reboot the mirror",
                          command: "REBOOT"
                        },
                        SHUTDOWN: {
                          pattern: "extinction totale",
                          command: "SHUTDOWN"
                        },
                        STOP_PLAY: {
                          pattern: "stop the video", // this is for youtube but it is preferable to have youtubeAutoplay: false, when running spotify so you don't get interaction with youtube player. 
                          command: "STOP_VID"
                        },
                    
                        SPOTIFY_PREVIOUS: {
                          pattern: "previous song",
                          command: "SPOTIFY_PREVIOUS"
                        },
                        SPOTIFY_PAUSE: {
                          pattern : "stop the music",
                          command: "SPOTIFY_PAUSE"
                        },
                        SPOTIFY_PLAY: {
                          pattern : "music please",
                          command: "SPOTIFY_PLAY"
                        },
                          SPOTIFY_NEXT: {
                          pattern: "next song",
                          command: "SPOTIFY_NEXT"
                        },
                        SPOTIFY_VOLUME: {
                          pattern: "set music volume to ([0-9]{1,2}[0]?|100)",
                          command: "SPOTIFY_VOLUME"
                        },
                        SPOTIFY_SEARCH: {
                          pattern: "play (.*) on Spotify",
                          command: "SPOTIFY_SEARCH"
                        },
                        SPOTIFY_SEARCH_PLAYLIST: {
                          pattern: "playlist (.*) on Spotify",
                          command: "SPOTIFY_SEARCH_PLAYLIST"
                          },
                      	SPOTIFY_MA_PLAYLIST: {
                        	pattern: "(.*) my playlist",   // (.*)  is an action  eg: play my playlist / run my playlist etc... 
                        	command: "SPOTIFY_MA_PLAYLIST"
                      	},
                      	SPOTIFY_TRANSFER: {
                        	pattern: "play the music on (.*)", // (.*)  is the name of your device
                        	command: "SPOTIFY_TRANSFER"
                      	},
                        VOLUME_UP: {
                          pattern: "volume up",
                          command: "CMD_VOLUME_UP"
                        },
                        VOLUME_DOWN: {
                          pattern: "volume down",
                          command: "CMD_VOLUME_DOWN"
                        },
                        SET_VOLUME: {
                          pattern: "set master volume to ([0-9]{1,2}[0]?|100)",
                          command: "CMD_VOLUME_SET"
                        }
                      },
                    
                      command: {
                    
                        STOP_VID: {
                          moduleExec: {
                            module: ["MMM-AssistantMk2"],
                            exec: (module, params, key) => {
                              module.assistant.subdom.youtube.innerHTML = ""; 
                              module.assistant.subdom.youtube.style.display = "none";
                              module.youtubePlaying = false;
                            }
                          }
                        },
                        SPOTIFY_TRANSFER: {
                          notificationExec: {
                            notification: "SPOTIFY_TRANSFER",
                            payload: (params) => {
                              console.log("SPOTIFY_TRANSFER @",params)
                              return params[1];
                            }
                          }
                        },
                        SPOTIFY_PAUSE: {
                          notificationExec: {
                            notification: "SPOTIFY_PAUSE"
                          }
                        },
                    
                        SPOTIFY_PLAY: {
                          notificationExec: {
                            notification: "SPOTIFY_PLAY"
                          }
                        },
                      	SPOTIFY_MA_PLAYLIST: {
                          notificationExec:  {
                      	    notification: "SPOTIFY_PLAY",
                      	    payload: (params) => {
                      	      console.log("SPOTIFY_MA_PLAYLIST")
                                return {
                                  context_uri:"spotify:playlist:0ka8HWt4xXcnTK5OpOuN2k",   // Uri of a personnal playlist or album
                                }
                            },
                      	    notification: "SPOTIFY_SHUFFLE",  // added this to toogle shuffle
                      	    notification: "SPOTIFY_NEXT" // added this to not always have the same song starting first 
                      	    }
                      	},		       
                      	SPOTIFY_NEXT: {
                          notificationExec: {
                            notification: "SPOTIFY_NEXT"
                          }
                        },
                        SPOTIFY_PREVIOUS: {
                          notificationExec: {
                            notification: "SPOTIFY_PREVIOUS"
                          }
                        },
                        SPOTIFY_VOLUME: {
                          notificationExec: {
                            notification: "SPOTIFY_VOLUME",
                            payload: (params) => {
                              console.log("SPOTIFY_VOLUME @",params)
                              return params[1];
                            }
                          }
                        },
                      	SPOTIFY_SEARCH: {
                          notificationExec: {
                            notification: "SPOTIFY_SEARCH",
                              payload: (params) => {
                                console.log("SPOTIFY_SEARCH @",params)
                                return {
                                  type: "artist,track,album,playlist",
                                  query: params[1],
                                  random:false,
                                }
                              }
                          }
                        },
                      	SPOTIFY_SEARCH_PLAYLIST: {
                          notificationExec: {
                            notification: "SPOTIFY_SEARCH",
                              payload: (params) => {
                                console.log("SPOTIFY_SEARCH_PLAYLIST @",params)
                                return {
                                  type: "playlist",
                                  query: params[1],
                                  random:true,
                                }
                              }
                          }
                        },
                        CMD_VOLUME_UP: {
                          notificationExec: {
                            notification: "VOLUME_UP"
                          }
                        },
                        CMD_VOLUME_DOWN: {
                          notificationExec: {
                            notification: "VOLUME_DOWN"
                          }
                        },
                        CMD_VOLUME_SET: {
                          notificationExec: {
                            notification: "VOLUME_SET",
                            payload: (params, key) => {
                              console.log("@", params);
                              return params[1];
                            }
                          }
                        },
                      }
                    }
                    
                    exports.recipe = recipe // Don't remove this line.
                    

                    However, the

                        SPOTIFY_PLAY: {
                          pattern : "music please",
                          command: "SPOTIFY_PLAY"
                        },
                    

                    Doesn’t work. It recognizes the command, but nothing happens. Playback from the mirror (raspotify) doesn’t happen. If I switch the source from my desktop/phone spotify app to Raspotify, then everything is fine (e.g. I renamed the player from Raspotify to MagicMirror if that matters).

                    There are no errors in the logs as far as I can see.

                    Any thoughts?

                    ? 1 Reply Last reply Jul 18, 2019, 12:49 PM Reply Quote 0
                    • ? Offline
                      A Former User @Ivanov_d
                      last edited by Jul 18, 2019, 12:49 PM

                      @Ivanov_d
                      Only that command doesn’t work? Other’s OK?
                      Raspotify should be already running when you use this module. (This module cannot boot up Raspotify itself)

                      1 Reply Last reply Reply Quote 0
                      • 1
                      • 2
                      • 7
                      • 8
                      • 9
                      • 10
                      • 11
                      • 24
                      • 25
                      • 9 / 25
                      • First post
                        Last post
                      Enjoying MagicMirror? Please consider a donation!
                      MagicMirror created by Michael Teeuw.
                      Forum managed by Sam, technical setup by Karsten.
                      This forum is using NodeBB as its core | Contributors
                      Contact | Privacy Policy