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.
    • 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
                        • 1
                        • 2
                        • 3
                        • 4
                        • 5
                        • 24
                        • 25
                        • 1 / 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