MagicMirror Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • Donate
    • Discord

    MMM-Spotify

    Entertainment
    51
    242
    54253
    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.
    • ejay-ibm
      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

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

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

        1 Reply Last reply Reply Quote 0
        • Cr4z33
          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
          • Cr4z33
            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-ibm 1 Reply Last reply Reply Quote 0
            • ejay-ibm
              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

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

                @ejay-ibm nice thanks! 👍🏽

                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). 😃

                1 Reply Last reply Reply Quote 0
                • Cr4z33
                  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 Cr4z33 2 Replies Last reply Reply Quote 0
                  • K
                    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. 😃

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

                      This post is deleted!
                      1 Reply Last reply Reply Quote 0
                      • K
                        kwaeksler @Guest last edited by

                        @Sean said in MMM-Spotify:

                        updated

                        1.1.0 (2019-03-25)

                        • Added: touch(click) interface
                        • Device Limitation : Now you can allow or limit devices to display its playing on MM.
                        • Some CSS structure is changed.
                        • Now this module can emit SPOTIFY_* notifications for other module.

                        @Sean that sounds very great. I will update it later, thank you very much! 🙂

                        R 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 Paul-Vincent Roll and Rodrigo Ramírez Norambuena.
                        This forum is using NodeBB as its core | Contributors
                        Contact | Privacy Policy