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
    249 Posts 51 Posters 229.5k Views 54 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.
    • Cr4z33C Offline
      Cr4z33 @Guest
      last edited by

      @Sean I want them both. ;)
      Voice commands to play Spotify songs STRAIGHT in MM.

      Thanks for confirming I am going to have some Raspotify reading now.

      1 Reply Last reply Reply Quote 0
      • ejay-ibmE Offline
        ejay-ibm Project Sponsor Module Developer
        last edited by

        @Cr4z33 if you don’t want to use gaction like me .
        I’ll share my transcription hook and command i’m using with this module and others.
        It works perfectly. with raspotify. raspotify is pretty easy to install and run.

        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"
                  },
                 // STOP_PLAY2: {
                 //   pattern: "arrête la musique",
                 //   command: "STOP_VID"
                 // },
        
        	 SPOTIFY_PREVIOUS: {
                pattern: "previous song",
                command: "SPOTIFY_PREVIOUS"
                },
                SPOTIFY_PAUSE: {
                pattern : "stop the musique",
                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:0bdByehKVfdsfdsfdsOhF5t",   // 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];
                      }
                    }
                  }
                },
        

        hope this will help.

        @Sean let me know if you want me to update the wiki.

        Ejay

        ? Cr4z33C 2 Replies Last reply Reply Quote 1
        • ? Offline
          A Former User @ejay-ibm
          last edited by

          @ejay-ibm thanks. As your wish, my colleague.

          1 Reply Last reply Reply Quote 0
          • Cr4z33C Offline
            Cr4z33 @ejay-ibm
            last edited by

            @ejay-ibm thanks, but it came out that the module was already fine only I didn’t know I had to setup Raspotify if I want a stand-alone solution.

            Tbh you guys should state that as I guess many here would love to run Spotify completely from the mirror, but it is not so obvious. ;)

            1 Reply Last reply Reply Quote 0
            • Cr4z33C Offline
              Cr4z33
              last edited by Cr4z33

              @Sean @ejay-ibm can you please add the option to hide module commands?
              If someone like me is using MMM-AssistantMk2 to control it then buttons aren’t needed anymore. ;)

              ejay-ibmE 1 Reply Last reply Reply Quote 0
              • ejay-ibmE Offline
                ejay-ibm Project Sponsor Module Developer @Cr4z33
                last edited by

                @Cr4z33 We have added an option to hide the control

                after doing a “git pull” from : ~/MagicMirror/modules/MMM-Spotify/

                you can set in your config file

                 control: "default", //"default", "hidden" available~
                

                Ejay

                Cr4z33C 1 Reply Last reply Reply Quote 0
                • Cr4z33C Offline
                  Cr4z33 @ejay-ibm
                  last edited by

                  @ejay-ibm nice thanks! :thumbs_up_medium_skin_tone:

                  Also I didn’t notice in your last reply the many Spotify’ MMM-AssistantMk2 commands you were sharing.
                  Thanks for that too (although GA doesn’t understand properly yet when calling a specific Playlist, but hey we can’t have everything lol). :D

                  1 Reply Last reply Reply Quote 0
                  • Cr4z33C Offline
                    Cr4z33
                    last edited by

                    @ejay-ibm @Sean I noticed only now that if using allowDevices: with the Raspotify device name I can then hear the music, but somehow the module doesn’t ‘wake up’ and keeps showing the Spotify logo only.

                    K Cr4z33C 2 Replies Last reply Reply Quote 0
                    • K Offline
                      kwaeksler @Cr4z33
                      last edited by

                      @Cr4z33 thats true. That was one of my feature request on page one. I only wanted to see the information about the song on the mirror when i play it on it. Because for other familie members the information about my playing songs arent very interessting when i am not at home. :-D

                      1 Reply Last reply Reply Quote 0
                      • K Offline
                        kwaeksler
                        last edited by

                        This post is deleted!
                        1 Reply Last reply Reply Quote 0
                        • 1
                        • 2
                        • 3
                        • 4
                        • 5
                        • 6
                        • 24
                        • 25
                        • 4 / 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