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.4k 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
                        • 1
                        • 2
                        • 8
                        • 9
                        • 10
                        • 11
                        • 12
                        • 24
                        • 25
                        • 10 / 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