• 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 177.6k 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.
  • E Offline
    ejay-ibm Project Sponsor Module Developer
    last edited by Mar 25, 2019, 6:37 PM

    @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

    ? C 2 Replies Last reply Mar 25, 2019, 7:18 PM Reply Quote 1
    • ? Offline
      A Former User @ejay-ibm
      last edited by Mar 25, 2019, 7:18 PM

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

      1 Reply Last reply Reply Quote 0
      • C Offline
        Cr4z33 @ejay-ibm
        last edited by Mar 26, 2019, 8:54 AM

        @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
        • C Offline
          Cr4z33
          last edited by Cr4z33 Mar 26, 2019, 10:35 AM Mar 26, 2019, 10:08 AM

          @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. ;)

          E 1 Reply Last reply Mar 27, 2019, 8:32 AM Reply Quote 0
          • E Offline
            ejay-ibm Project Sponsor Module Developer @Cr4z33
            last edited by Mar 27, 2019, 8:32 AM

            @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

            C 1 Reply Last reply Mar 27, 2019, 9:00 AM Reply Quote 0
            • C Offline
              Cr4z33 @ejay-ibm
              last edited by Mar 27, 2019, 9:00 AM

              @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
              • C Offline
                Cr4z33
                last edited by Mar 27, 2019, 9:11 AM

                @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 C 2 Replies Last reply Mar 27, 2019, 5:29 PM Reply Quote 0
                • K Offline
                  kwaeksler @Cr4z33
                  last edited by Mar 27, 2019, 5:29 PM

                  @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 Mar 27, 2019, 5:33 PM

                    This post is deleted!
                    1 Reply Last reply Reply Quote 0
                    • K Offline
                      kwaeksler @Guest
                      last edited by Mar 27, 2019, 5:35 PM

                      @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 Jul 5, 2019, 3:56 PM Reply Quote 0
                      • 1
                      • 2
                      • 3
                      • 4
                      • 5
                      • 6
                      • 24
                      • 25
                      • 4 / 25
                      4 / 25
                      • First post
                        32/242
                        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