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 276.0k 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.
    • I Offline
      Ivanov_d
      last edited by

      @Sean I will try that and report back. Thanks for the suggestion.

      1 Reply Last reply Reply Quote 0
      • F Offline
        Faiek
        last edited by

        Hi Guys need some help with this module - newbie :smirking_face:
        I have the following loaded succesfully:
        AssistantMk2
        Hotword
        Raspotify
        Change device name in Raspotify :to Mirror
        Created a spotify.json - recipe(code from here) in recipes file this is it:
        Added the recipe to the Mk2.js
        recipes:[“hide_and_show_all_modules.js”, “reboot.js”, “screen_onoff.js”, “shutdown.js”, “spotify.js”],
        Dont know what i missed - any assistance please …

        var recipe = {
        transcriptionHook: {
                  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];
                      }
                    }
                  }
                },
        
        
        
        exports.recipe = recipe // Don't remove this line.
        
        

        This is the error

        AMK2] Recipe is loaded: shutdown.js
        Whoops! There was an uncaught exception...
        /home/pi/MagicMirror/modules/MMM-AssistantMk2/recipes/spotify.js:183
        exports.recipe = recipe // Don't remove this line.
               ^
        
        SyntaxError: Unexpected token .
            at new Script (vm.js:74:7)
            at createScript (vm.js:246:10)
            at Object.runInThisContext (vm.js:298:10)
            at Module._compile (internal/modules/cjs/loader.js:678:28)
            at Object.Module._extensions..js (internal/modules/cjs/loader.js:722:10)
            at Module.load (internal/modules/cjs/loader.js:620:32)
            at tryModuleLoad (internal/modules/cjs/loader.js:559:12)
            at Function.Module._load (internal/modules/cjs/loader.js:551:3)
            at Module.require (internal/modules/cjs/loader.js:658:17)
            at require (internal/modules/cjs/helpers.js:20:18)
        MagicMirror will not quit, but it might be a good idea to check why this happened.
        ? 1 Reply Last reply Reply Quote 0
        • ? Offline
          A Former User @Faiek
          last edited by

          @Faiek
          you might have missed closing brace somewhere. check to count opening and closung pairs.

          F 1 Reply Last reply Reply Quote 0
          • F Offline
            Faiek @Guest
            last edited by

            @Sean Thanks for the response - i m lost - no programming knowledge whats so ever
            trail and error got me thus far- and everything’s working great except spotify, still learning.
            Can’t i get a completed (recipe.json) with any other require details, for voice activation on this module that could assist me, once i have one, ill probably be able to see my error.
            Stomped for days now … online json checkers… really need to learn the basics …Thanks

            ? 1 Reply Last reply Reply Quote 0
            • ? Offline
              A Former User @Faiek
              last edited by

              @Faiek
              Just add } over exports....

              }
              
              exports.recipe = recipe // Don't remove this line.
              
              F 1 Reply Last reply Reply Quote 0
              • F Offline
                Faiek @Guest
                last edited by

                @Sean Thanks A Million - - working :grinning_face:

                1 Reply Last reply Reply Quote 0
                • I Offline
                  Ivanov_d
                  last edited by

                  @Sean I have changed the hook phrase to “showtime” and it still doesn’t work.

                  SPOTIFY_PLAY: {
                      pattern : "showtime",
                      command: "SPOTIFY_PLAY"
                    },
                  
                  [HOTWORD] Final Result: { detected: true, hotword: 'assistant', file: null }
                  [AMK2] assistant ready
                  [AMK2] Conversation starts.
                  [AMK2] Assistant Text Response:
                  [AMK2] Transcription: show  --- Done: false
                  [AMK2] Transcription: shut  --- Done: false
                  [AMK2] Transcription: showtime  --- Done: false
                  [AMK2] Transcription: showtime  --- Done: false
                  [AMK2] end-of-utterance
                  [AMK2] Transcription: showtime  --- Done: true
                  { requestId: '5d433446-0000-2772-8141-089e0827c3f4' } { profileFile: 'default.json', lang: 'en-US' }
                  [AMK2] Device Action: { requestId: '5d433446-0000-2772-8141-089e0827c3f4' }
                  [AMK2] Assistant Text Response:
                  [AMK2] Conversation Completed
                  null
                  [HOTWORD] begins.
                  [HOTWORD] Detector starts listening.
                  
                  1 Reply Last reply Reply Quote 0
                  • M Offline
                    menanr
                    last edited by

                    This post is deleted!
                    ? 1 Reply Last reply Reply Quote 0
                    • ? Offline
                      A Former User @menanr
                      last edited by

                      @menanr
                      Check your firewall or network setting. And check also your MM is running on port 8888. You can try to connect “https://localhost:8888/callback” outside of your home network to check whether it is accessible from outside.

                      1 Reply Last reply Reply Quote 0
                      • T Offline
                        t.architecture99
                        last edited by

                        i can only see spotify logo and hear music . But nothing to show !!
                        What can i do ? and how to config onStart: { ??
                        Here is error logs

                        [AMK2] Temporal storage directory is clearing.
                        Whoops! There was an uncaught exception…
                        TypeError: Cannot read property ‘getCurrentPlayback’ of null
                        at Class.updatePulse (/home/pi/MagicMirror/modules/MMM-Spotify/node_helper.js:30:18)
                        at Class.initAfterLoading (/home/pi/MagicMirror/modules/MMM-Spotify/node_helper.js:26:10)
                        at Class.socketNotificationReceived (/home/pi/MagicMirror/modules/MMM-Spotify/node_helper.js:44:12)
                        at Socket. (/home/pi/MagicMirror/modules/node_modules/node_helper/index.js:113:11)
                        at Socket.emit (events.js:182:13)
                        at /home/pi/MagicMirror/node_modules/socket.io/lib/socket.js:528:12
                        at process._tickCallback (internal/process/next_tick.js:61:11)

                        ? 1 Reply Last reply Reply Quote 0
                        • ? Offline
                          A Former User @t.architecture99
                          last edited by

                          @t-architecture99
                          Maybe your ‘spotify.config.json’ would be wrong. Check it again.

                          1 Reply Last reply Reply Quote 0
                          • R Offline
                            ricardoyen
                            last edited by

                            @brokenwings

                            Hi did you figure this out, I’m stuck at this very same issue, I have Spotify working . how do I get voice assistant to integrate, do I modify the config.js file or the AssistantMK2.json file…??

                            1 Reply Last reply Reply Quote 0
                            • B Offline
                              bminer1
                              last edited by

                              Having an issue with the song info showing up on the MM.
                              I have everything installed correctly ( to my knowledge, or else it would work right?) and have the white Spotify symbol.
                              I entered my Client ID and Secret.
                              Callback and port are in there. I authorized through Spotify…
                              Not sure what i am missing…

                              Help?

                              {
                                			module: "MMM-Spotify",
                                			position: "bottom_left",
                                			config: {
                                  				style: "mini", // "default" or "mini" available
                                  				control: "default", //"default", "hidden" available
                                  				updateInterval: 1000,
                                  				onStart: null, // disable onStart feature with `null`
                                  				allowDevices: [], //If you want to limit devices to display info, use this.
                                  				// allowDevices: ["RASPOTIFY", "My iPhoneX", "My Home speaker"],
                                				}
                              		},
                              
                              {
                                "CLIENT_ID" : "xxxx",
                                "CLIENT_SECRET" : "xxxx",
                                "AUTH_DOMAIN" : "http://localhost",
                                "AUTH_PATH" : "/callback",
                                "AUTH_PORT" : "8888",
                                "SCOPE" : "user-read-private app-remote-control playlist-read-private streaming user-read-playback-state user-modify-playback-state",
                                "TOKEN" : "./token.json"
                              }
                              
                              ? 1 Reply Last reply Reply Quote 0
                              • ? Offline
                                A Former User @bminer1
                                last edited by

                                @bminer1
                                Tell me more details. What happens on MagicMirror when you activate your spotify app on your smartphone?

                                B 1 Reply Last reply Reply Quote 0
                                • B Offline
                                  bminer1 @Guest
                                  last edited by

                                  @Sean i restarted the pi and my computer that is running the spotify. Everything is running and working as it should. buttons work, displays very well and its all good. Sorry, for the false alarm. noob moment.

                                  1 Reply Last reply Reply Quote 0
                                  • M Offline
                                    matt216
                                    last edited by matt216

                                    Love the module, but noticed it makes the mirror by far the noisiest device on my network. Any idea why it talks so much to the spotify api?
                                    0_1575557767870_pihole-domains.png
                                    0_1575557775582_pihole-clients.png

                                    ? 1 Reply Last reply Reply Quote 0
                                    • ? Offline
                                      A Former User @matt216
                                      last edited by

                                      @matt216
                                      Because, Spotify playback API doesn’t be designed to push the status to the caller. The module should use pooling to get CURRENT playback status whenever it is needed. Set bigger value to updateInterval.

                                      M 1 Reply Last reply Reply Quote 0
                                      • M Offline
                                        matt216 @Guest
                                        last edited by

                                        @Sean thanks, appreciate the reply. Makes sense!

                                        1 Reply Last reply Reply Quote 0
                                        • MondfischM Offline
                                          Mondfisch
                                          last edited by

                                          Hello,

                                          i am using your Module a couple of Months, it always worked well…
                                          …but since the last Update, it “hangs” after a couple of Minutes, which means,
                                          it still shows up, but the Title-Information and the Time is frozen.
                                          I am using MMM-Spotify and MMM-NowPlayingOnSpotify (I also use MMM-Carousel,
                                          so I have different “screens” on which I use both Modules, but not simultaneously.
                                          While MMM-Spotify is “freezing”, MMM-NowPlayingonSpotify is going on well…

                                          They worked BOTH OK, before the Update…

                                          Any Ideas?

                                          ? 1 Reply Last reply Reply Quote 0
                                          • ? Offline
                                            A Former User @Mondfisch
                                            last edited by

                                            @Mondfisch
                                            Hmmm. A recent update was for just multi-account supporting. Can you show backend log when it happened?

                                            1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 9
                                            • 10
                                            • 11
                                            • 12
                                            • 13
                                            • 13 / 13
                                            • 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