Announcement

Collapse
No announcement yet.

[Announce] 'MediaServer' *certified* Alexa skill for LMS

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    [Announce] 'MediaServer' *certified* Alexa skill for LMS

    Note: this intro post is always up-to-date

    There's a new certified Alexa skill to control LMS in the Amazon skills store. It's called MediaServer and you can find it under the category 'Music & Audio' in the Alexa app or web-portal. Because this is a certified skill, it's available to anybody with an Alexa/Echo device without any kind of developer or beta accounts. MediaServer is multimodal, meaning it embraces both voice and touchscreen inputs.

    A downloadable installer automatically sets up the required password-protected https proxy to your LMS instance. Available for pCP, Linux, macOS and Windows, it's not an LMS plugin as such but instead deploys (free) ngrok to tunnel to LMS using TCP over SSH — very secure!. There is no port-opening in your router with this approach.

    MediaServer has been extensively tested on a library with 70K+ songs — how well it will work for you will (logically) depend on how good your tags are. It uses a freemium model, and is available in English in the en-US, en-CA and en-GB locales (covers whole EU). Altogether, it supports 129 intents, of which 94 are in the free-to-use class.

    Cover art and/or textual metadata are displayed on your Echo's screen (if present) for all commands.


    Click image for larger version

Name:	collage.jpg
Views:	1
Size:	121.0 KB
ID:	1578937


    In addition to controlling all your players by name, the skill can 'stream' LMS audio over WiFi to your Echos as audio-sink. New: Stream commands no longer require a subscription. You can now use your Echo as LMS audio-sink for free!

    Some example commands (see https://mediaserver.smartskills.tech...#section-4-1):

    Play the album 'Phaedra'
    Play the album 'Ghost Stories' by Coldplay
    Play the compilation 'American Road Trip'
    Play the single 'Sunny Days' by Armin van Buuren
    Play the song 'Dancing in the Dark'
    Play the song 'Chasing Cars' by Snow Patrol
    Play early Aretha Franklin
    Play recent David Gilmour
    Play songs from 1978
    Play something by The Corrs
    Play songs about 'Girls'
    Play songs featuring Eddie Vedder
    Play a random album by Steve Winwood
    Play a random single by Madonna
    Play some Classic Rock
    Play my 'Supperclub' playlist
    Play a random playlist
    Play the track 'Run Like Hell' from the album 'Pulse'
    Play the 'Live & Dangerous' rendition of 'The Boys are Back in Town'
    Play favorite number 3
    Play favorite 'JAZZ FM'
    Play favorite 'Podcasts' item 7
    Play favorite folder 'Audiobooks' item 12
    Play favorite 3 . 2 . 5 (dot)
    Play my newest album by Pearl Jam
    Play index 3 from 'Musique' by Daft Punk

    *Using 'Stream" instead of 'Play' in the above commands will direct the LMS audio to your Echo itself instead of a Squeezebox player.

    What's playing on 'Touch'?
    What's up next on 'Transporter'?
    What's the duration of this song / playlist?
    What's the 'Bedroom' player status?

    Add this track to my 'Fitness' playlist
    Bookmark this track
    Blacklist this song
    Clear the playlist

    Follow me to the 'Lounge'
    Transfer playback from 'Livingroom' to 'Study'
    Transpose 'Bedroom' and 'Bathroom' players

    What sync groups exist?
    Synchronize the 'Bedroom', 'Bathroom', 'Office' and 'Nursery' players
    Synchronize everything
    Include the 'Guestroom' player in the group
    Remove 'Library' player from the group
    Ungroup my players

    List my favorites
    List level 2 favorites
    List the favorites in folder 'Podcasts'

    Sleep the 'Bedroom' player in 8 mins 30 seconds
    Sleep this player after the current song
    Cancel sleep mode for the 'Livingroom' player

    Tee Up the album 'Erotica' by Madonna
    Append 'Solsbury Hill' by Peter Gabriel
    Add 'Mr. Blue Sky' by ELO
    Insert 'Cradle of Love' from the album 'Charmed Life'
    Append 'High Hopes' from the album 'The Division Bell'
    Add 'Legs' from the album 'Eliminator'

    List the songs on the album 'Rumors' by Fleetwood Mac
    What albums contain 'Roxanne' by the Police?
    List my new albums
    Search new items for ZZ Top
    Do I have 'Giants' by Chicane?
    Do I have '101 Driving Songs'?
    What Paul Young albums do I have?
    What Sheryl Crow singles do I have?
    What genres do I have?
    What playlists do I have?

    Resume playback
    Pause
    Stop Playback
    Skip / Next Track
    Previous Track
    Goto track 12
    Skip ahead 2 minutes
    Skip back 44 seconds
    Seek directly to 17 minutes and 12 seconds

    Set the volume to 60
    Increase the volume by 10
    Decrease the volume by 25
    Mute the 'Livingroom' player
    Unmute 'piCorePlayer5'

    Turn On the 'Library' player
    Power Off 'Bedroom'
    Power Down everything

    Activate shuffle
    Shuffle again
    Enable shuffle-by-album on the 'Kitchen' player
    Enable shuffle-by-song for the 'Bedroom' player
    Deactivate shuffle
    Enable / Disable Repeat
    Turn On repeat-playlist mode
    Enable repeat-song mode
    Deactivate repeat for the 'Basement' player

    What alarms do I have on the 'Bedroom' player?
    Enable my 7 AM alarm
    Cancel my 7:30 AM alarm
    Change my 7 AM alarm to 8:30 AM

    Discover my players
    List my players
    Assume the 'Livingroom' player
    I'm within earshot of 'Diningroom'
    Rename 'Touch' player to 'Bedroom' player
    Enable / disable artwork display
    What's new?

    Your Online Music Library from LMS 8.x is fully supported and MediaServer works with libraries on Spotify, Deezer, Tidal and Qobuz.

    Some of the above commands require having a paid subscription which is handled as an ISP (In-Skill Purchase) by Alexa. It costs $2.99/£2.99/CAD3.79 per month and serves to cover AWS hosting fees and offset ISP charges for the back-end.

    A 7-day trial is free for first-time subscribers.

    Say "Alexa, tell Media Server I want a subscription" and follow the spoken instructions. You will need to have enabled voice purchasing in the Alexa App (ask "Alexa, how do I enable voice purchasing?").
    Note that subscriptions can be cancelled at any time by voice as there's no minimum contract.

    Help on the easy-setup procedure, plus an exhaustive A-Z phraseology reference, can be found at https://mediaserver.smartskills.tech/faq

    Finally, there's a video demonstrating some of the more common commands:

    A demonstration of the MediaServer Alexa skill in action controlling Logitech Media Server
    Last edited by philchillbill; 2022-03-08, 09:45. Reason: V6.0 released

    #2
    Very cool! But I need it for Google Home.

    Comment


      #3
      Interesting approach.
      The https section at https://smartskills.tech/mediaserver/#tab2 does a good job of describing things.
      It does mean that no LMS addon is required to be added into the local LMS.
      Will be interesting to see how many people go through the steps.
      Paul Webster
      Author of "Now Playing" plugins covering Radio France (FIP etc), PlanetRadio (Bauer - Kiss, Absolute, Scala, JazzFM etc), KCRW, ABC Australia and CBC/Radio-Canada
      and, via the extra "Radio Now Playing" plugin lots more - see https://forums.slimdevices.com/showt...Playing-plugin

      Comment


        #4
        [Announce] 'MediaServer' *certified*Alexa skill for LMS

        But doesn't this require to expose your LMS to the internet? Don't be
        soothed by the use of https: if there's no password protection
        whatsoever, then I and John Doe would be able to control your players,
        too. https only protects the transfer from your door to the recipient (or
        the other way around), but not the door itself.

        Which brings us back to this:
        https://forums.slimdevices.com/showt...o-the-internet!

        --

        Michael
        Last edited by mherger; 2019-09-25, 19:24.
        Michael

        "It doesn't work - what shall I do?" - "Please check your server.log and/or scanner.log file!"
        (LMS: Settings/Information)

        Comment


          #5
          Yes Michael, but a reverse proxy or ssl tunnel DOES implement password protection. It’s certainly not the same as exposing your LMS directly to the outside. The online docs for the skill explain this very clearly.


          Note: As of Feb 2021 there's a completely automated installation procedure for the ngrok proxy - see the announcement at https://forums.slimdevices.com/showt...e-Alexa-skills
          Last edited by philchillbill; 2021-02-19, 09:47. Reason: Added note regarding easy-setup

          Comment


            #6
            Originally posted by philchillbill View Post
            Yes Michael, but a reverse proxy or ssl tunnel DOES implement password protection. It’s certainly not the same as exposing your LMS directly to the outside. The online docs for the skill explain this very clearly.


            Sent from my iPhone using Tapatalk
            Is there a username/password in the Serveo set up? The instructions say to leave them blank.

            Sent from my SM-G900F using Tapatalk
            Living Room: Touch or Squeezelite (Pi3B) > Topping E30 > Audiolab 8000A > Monitor Audio S5 + BK200-XLS DF
            Bedroom: Radio
            Bathroom: Radio

            Comment


              #7
              This looks very interesting. The serveo tunnel setup is from the local end so I presume no port opening is required?
              Jim
              https://jukeradio.double6.net


              VB2.4 storage QNAP TS419p (NFS)
              Living Room Joggler & Pi4/Khadas -> Onkyo TXNR686 -> Celestion F20s
              Office Joggler & Pi3 -> Denon RCD N8 -> Celestion F10s
              Dining Room SB Radio
              Bedroom (Bedside) Pi Zero+DAC ->ToppingTP21 ->AKG Headphones
              Bedroom (TV) & Bathroom SB Touch ->Denon AVR ->Mordaunt Short M10s + Kef ceiling speakers
              Guest Room Joggler > Topping Amp -> Wharfedale Modus Cubes

              Comment


                #8
                Originally posted by slartibartfast View Post
                Is there a username/password in the Serveo set up? The instructions say to leave them blank.
                Serveo has the option to use SSH public key authentication (PKA) but that involves public/private rsa keys which are not a traditional username and password and explains why they are to be left blank. Their site explains PKA. You can use serveo without PKA to create an unsecured tunnel, and combine it with apache to reverse-proxy towards your LMS machine with basic auth enforced. More involved but very secure. At least there's no need then to get an SSL cert and DDNS name and open ports. If you did things that way, the server path to fill in would still be serveo but you WOULD then fill in the username and password that you configured for the secondary apache.

                However, ngrok is by far the easiest option and it's very secure.
                Last edited by philchillbill; 2019-09-25, 21:09.

                Comment


                  #9
                  Originally posted by philchillbill View Post
                  Serveo has the option to use SSH public key authentication (PKA) but that involves public/private rsa keys which are not a traditional username and password and explains why they are to be left blank. Their site explains PKA. You can use serveo without PKA to create an unsecured tunnel, and combine it with apache to reverse-proxy towards your LMS machine with basic auth enforced. More involved but very secure. At least there's no need then to get an SSL cert and DDNS name and open ports. If you did things that way, the server path to fill in would still be serveo but you WOULD then fill in the username and password that you configured for the secondary apache.

                  However, ngrok is by far the easiest option and it's very secure.
                  My router - Draytek Vigor - supports SSL Web Proxy with user/pass.
                  Https://mypublicipaddress:443 proxies to http://lmsip:9000
                  Presumably this would also work?
                  Jim
                  https://jukeradio.double6.net


                  VB2.4 storage QNAP TS419p (NFS)
                  Living Room Joggler & Pi4/Khadas -> Onkyo TXNR686 -> Celestion F20s
                  Office Joggler & Pi3 -> Denon RCD N8 -> Celestion F10s
                  Dining Room SB Radio
                  Bedroom (Bedside) Pi Zero+DAC ->ToppingTP21 ->AKG Headphones
                  Bedroom (TV) & Bathroom SB Touch ->Denon AVR ->Mordaunt Short M10s + Kef ceiling speakers
                  Guest Room Joggler > Topping Amp -> Wharfedale Modus Cubes

                  Comment


                    #10
                    [Announce] 'MediaServer' *certified*Alexa skill for LMS

                    > Serveo has the option to use SSH public key authentication but that
                    > involves public/private rsa keys which are not a traditional username
                    > and password and explains why they are to be left blank.


                    It's my understanding that this is not being used to protect access to
                    the host, but the connection when using a custom domain of yours.

                    IMHO ngrok is kind of a cloud based reverse proxy with additional
                    features, whereas serveo is much simpler, but mostly a port forwarding
                    service. No added http features besides the https wrapper. But your LMS
                    would be as exposed to the internet as if you did forward the port on
                    your router.

                    --

                    Michael
                    Michael

                    "It doesn't work - what shall I do?" - "Please check your server.log and/or scanner.log file!"
                    (LMS: Settings/Information)

                    Comment


                      #11
                      Failed at first hurdle ....

                      This page isn’t working
                      xxxx.serveo.net is currently unable to handle this request.

                      502 error
                      ------------------------------------------------------------------------------------

                      Comment


                        #12
                        Originally posted by mherger View Post
                        > Serveo has the option to use SSH public key authentication but that
                        > involves public/private rsa keys which are not a traditional username
                        > and password and explains why they are to be left blank.


                        It's my understanding that this is not being used to protect access to
                        the host, but the connection when using a custom domain of yours.

                        IMHO ngrok is kind of a cloud based reverse proxy with additional
                        features, whereas serveo is much simpler, but mostly a port forwarding
                        service. No added http features besides the https wrapper. But your LMS
                        would be as exposed to the internet as if you did forward the port on
                        your router.

                        --

                        Michael
                        Serveo
                        A portscanner on 9000 wouldn’t find it.
                        You’d have to guess the unique part of the serveo host name and know that 443 would expose 9000 but yes it must effectively be open.
                        It’s the simplicity and validity of the SSL cert that makes this attractive if a little risky.

                        I’ll get myself an SSL cert for my router I think and use it’s in built SSL web proxy
                        Jim
                        https://jukeradio.double6.net


                        VB2.4 storage QNAP TS419p (NFS)
                        Living Room Joggler & Pi4/Khadas -> Onkyo TXNR686 -> Celestion F20s
                        Office Joggler & Pi3 -> Denon RCD N8 -> Celestion F10s
                        Dining Room SB Radio
                        Bedroom (Bedside) Pi Zero+DAC ->ToppingTP21 ->AKG Headphones
                        Bedroom (TV) & Bathroom SB Touch ->Denon AVR ->Mordaunt Short M10s + Kef ceiling speakers
                        Guest Room Joggler > Topping Amp -> Wharfedale Modus Cubes

                        Comment


                          #13
                          Originally posted by mherger View Post
                          > Serveo has the option to use SSH public key authentication but that
                          > involves public/private rsa keys which are not a traditional username
                          > and password and explains why they are to be left blank.


                          It's my understanding that this is not being used to protect access to
                          the host, but the connection when using a custom domain of yours.

                          IMHO ngrok is kind of a cloud based reverse proxy with additional
                          features, whereas serveo is much simpler, but mostly a port forwarding
                          service. No added http features besides the https wrapper. But your LMS
                          would be as exposed to the internet as if you did forward the port on
                          your router.
                          I agree. Serveo is the least attractive option, but I added it to the list because people have preferences for ways of doing things and it's yet another way. I have found it to be flaky as far as availability in my testing.

                          If I were using serveo myself, I'd always combine it with apache as an extra layer for auth. That way, serveo would handle the 'front-end' of me not having to open a port, not having to do DDNS, not get a cert. And apache would do the 'back end' of forwarding the serveo tunnel through a basic-auth capable local proxy in my network towards LMS as an extra security layer. Rather involved, but hey there's more than one road that leads to Rome.

                          In the end, it's only the JSON that's tracing these pathways and not audio-streams, so not a big deal to add a layer.
                          Last edited by philchillbill; 2019-09-25, 21:54.

                          Comment


                            #14
                            Originally posted by d6jg View Post
                            My router - Draytek Vigor - supports SSL Web Proxy with user/pass.
                            Https://mypublicipaddress:443 proxies to http://lmsip:9000
                            Presumably this would also work?
                            Absolutely. If you already have a public IP address and cert (the hard parts) then however you proxy that to lmsip:9000 is largely irrelevant. Apache is there for people who don't have fancy routers like you

                            Comment


                              #15
                              [Announce] 'MediaServer' *certified*Alexa skill for LMS

                              > Serveo
                              > A portscanner on 9000 wouldn’t find it.


                              Correct: as you wouldn't get your own IP address, but only a virtual
                              host name, a simple IP scanner wouldn't find your LMS. A visitor would
                              need to know your host name. That's different from (and quite a bit more
                              secure than) simple port forwarding on the router, where an IP scanner
                              would find you.

                              --

                              Michael
                              Michael

                              "It doesn't work - what shall I do?" - "Please check your server.log and/or scanner.log file!"
                              (LMS: Settings/Information)

                              Comment

                              Working...
                              X