squeeze-alexa preview videos
Updated March 2017
Say what now?
Oh, you should probably read the previous Alexa article. In brief – squeeze-alexa is a prototype Amazon Alexa integration for Logitech Squeezeboxes. Sonos are working on their own Alexa integration due out soon, which may be quite similar to this (or not). There are a few other solutions out there too.
That’s cool, I think?
Damn straight. However, vapourware isn’t much fun, so I finally recorded some amateur demo videos. It’s all real and live (for me), no Spotify or Amazon Prime, and connected to the cloud (on a slow connection too), and integrated deep into the Echo APIs. Maybe… too deep.
Show me the money
Forgive… everything.
Or here’s the video link if HTML5 embedding ain’t doing it for you.
What’s in the demos?
- Playing the current song (through the stereo connected to the Squeezebox player out of sight. The
clunkytimeless remote is in-frame to prove the point…) - Skipping to next song (previous also works)
- Next / pause / resume using native Alexa intents
- Selection of different players by name
- Adjusting the volume (easily)
- Playing by specified genre (YMMV, but seems fairly good)
- Reporting what’s playing (reports
artist
andtitle
but may add more logic aroundcomposer
/performer
etc).
Here’s another
Under the hood
The cloud model of course makes latency inevitable, but quite a lot of work went into minimising it. Some pipelining, session-level (OSI 5-ish) authentication and heavy abuse of AWS Lambda caching have helped there though.
All communication is over an HTTPS (tunnel layer), to a domain name kept up to date with a DDNS service (like most users my home broadband is not on a fixed IP), with a (self-signed, or otherwise) SSL cert. Secure: yes. Fast: yes. Easy setup: no.
On the UX level, it’s using a lot of fuzzy matching (with minimum confidence criteria) and sensible defaults. No real flow-interaction yet, that’s a whole lot harder (e.g. when the Home Automation integrations get you to confirm which device you meant, without you repeating the command), nor have I yet experimented with the new Alexa Intent Signatures APIs.
OK but how can I get it?
The bad good news
March 2017: squeeze-alexa is now open source!
Currently it’s still private (some Git massaging needed), and also just a single-user app. Oh, and I still haven’t publicised or written up the steps I went through, let alone other / simpler ways of solving the networking layers (I’ve had some ideas)
The plan is to either:
- Give up and get on with something more useful (again)
- or: add a few features, publicise the source and prepare long and complex instructions on the software and networking setup for this, or
- or: go all the way and write a certifiable Skill and some kind of LMS plugin at the home side. But this is already being done elsewhere and although we’re doing it different ways it’s clear that HAB Tunes is already much further along for that purpose. That said, there are probably enough purists / security-paranoid types out there (like me) to want to DIY the solution.
…but assuming it’s #2 (EDIT: it was), here are some things you’d need anyway:
Checklist
- a Squeezebox player
- Squeezebox server (LMS) running on a Synology diskstation, or some other Linux-based server with root access.
- an Amazon Developer account, and an AWS account.
- Some understanding of: AWS / Lambda, Linux, TCP/IP networking and SSL.
Watch this space
…or perhaps drop me a tweet or check squeeze-alexa on Github if you’re interested…