• 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 215.5k 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.
  • F Offline
    Faiek
    last edited by Jul 25, 2019, 6:04 AM

    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 Jul 25, 2019, 7:04 AM Reply Quote 0
    • ? Offline
      A Former User @Faiek
      last edited by Jul 25, 2019, 7:04 AM

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

      F 1 Reply Last reply Jul 25, 2019, 7:45 AM Reply Quote 0
      • F Offline
        Faiek @Guest
        last edited by Jul 25, 2019, 7:45 AM

        @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 Jul 25, 2019, 8:38 AM Reply Quote 0
        • ? Offline
          A Former User @Faiek
          last edited by Jul 25, 2019, 8:38 AM

          @Faiek
          Just add } over exports....

          }
          
          exports.recipe = recipe // Don't remove this line.
          
          F 1 Reply Last reply Jul 25, 2019, 8:49 AM Reply Quote 0
          • F Offline
            Faiek @Guest
            last edited by Jul 25, 2019, 8:49 AM

            @Sean Thanks A Million - - working :grinning_face:

            1 Reply Last reply Reply Quote 0
            • I Offline
              Ivanov_d
              last edited by Jul 28, 2019, 10:51 AM

              @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 Aug 21, 2019, 12:41 PM

                This post is deleted!
                ? 1 Reply Last reply Aug 21, 2019, 12:51 PM Reply Quote 0
                • ? Offline
                  A Former User @menanr
                  last edited by Aug 21, 2019, 12:51 PM

                  @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 Sep 20, 2019, 11:10 AM

                    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 Sep 20, 2019, 11:13 AM Reply Quote 0
                    • ? Offline
                      A Former User @t.architecture99
                      last edited by Sep 20, 2019, 11:13 AM

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

                      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