What Jessie Did Next...

...being the inane ramblings of a mundane Yorkshire bird.

I finally got sick of my Apple Airport Express network not quite behaving, and having to jump through hoops to play from the big fileserver holding my MP3 collection, and having to deal with sodding iTunes. My current workplace has a pair of Sonos units which are used in the office as a jukebox for the staff to play whatever music they want, and that seemed to tick most of my boxes.

The requirements I had were reasonably varied and had obviously changed since the last time I specced up a house sound ecosystem:

  • Must be able to play MP3s from a fileserver
  • Synchronisation between two or more players in different rooms
  • No requirement for a host PC or Mac
  • Controllable from a handset or an app on a laptop
  • Plugs into an existing amplifier and speaker system
  • Spotify and Soundcloud integration

The Sonos:Connect met all these requirements, plus the added bonus that “Phono In” was present which would stream my record player from the front room to the kitchen when I wanted to listen to vinyl. I popped to my local branch of Richer Sounds and picked one up on payday, setting it going on indexing my MP3 collection once I’d set it up (which was, incidentally, a complete breeze).

The first drawback presented itself fairly swiftly: the internal music library can only index around 65,000 songs. Apparently this is a hardware limitation though I can’t for the life of me think why unless it’s internal memory running out. Having over 400,000 songs in my collection ripped from my CD collection over the years I was a bit annoyed to find that their claim of “Play all of your digital music” was stretching the word “all” a bit much. The Sonos forums are full of complaints about it! I wasn’t going to let the problem get past me and discovered (after a bit of Googling) Subsonic, which has a Sonos client integrated. It was a bit of an arse to get going in the first place (I had to follow the guide lower down this page entitled ‘Using a remote Subsonic server’ halfway down this page because the automatic discovery kept bombing out) so setup is prohibitive unless you’re quite technical. At some point I’ll probably try and reverse-engineer how the plugin system works.

That said, four days of MP3 scanning and it’s all running happily – even the girlfriend can work it, and she’s reasonably technophobic!

The second drawback was around the import and export of playlists: work have some cracking playlists on their setup (mostly Spotify-sourced) which I’d like to replicate at home, but Sonos don’t provide anything to facilitate this. Thankfully it has uPNP compatibility which led me to fork and extend this PHP class to retrieve playlists via SOAP calls. I’ll post more about it when I’m happy with how it’s working and maybe make a small app available, but for the moment you can find out more about how to play with the uPNP aspect programatically over here.

As it is, it seems to be working pretty well. For the price I’d have expected the 65,000 song limit to be a little higher especially given their claims but it does seem to stream OK and as long as I can get to it via an API I’m happy. Watch this space and I’ll post more about how I’m getting on in the future… I’m thinking live-tweeting whatever’s on the playlist to start with? 😉


  1. How does it handle it when you add new albums to your filestore, does it rescan occasionally or do you have to kick it?

    • The Sonos library software periodically scans. I think it works out a hash of each file which makes it quite network-heavy. Subsonic can be set periodically but it’s “once in a 24h period” which doesn’t work well for large libraries which might take a day or two to do a full scan, and it disables some functions while it scans (Search being the obvious one). I’ve got a wicked idea to write a lightweight service plugin for Sonos which will talk to a simple indexing system in (say) MySQL, but it depends on me reverse-engineering the plugin format a bit.

  2. Love Sonos.
    Take it you know about the webserver:
    there’s even a little looking glass:

    My sonos rescans every day at 2AM and my music is on a freenas box. It must be doing something clever when it updates the index, because there’s no way it’s reading all the files again.

    The file limit (on same hardware) used to be 32000 files. I think their issue with supporting more than 65000 is that they would have to drop support for their oldest kit, like my ZP80 and the original ZP100. They just don’t have enough memory. I’m sure it will come one day when the old kit is considered really old!

    • Yes Erik, I’m going to write something interesting on the whole API thing. :1400 was the first thing I happened upon, and the SOAP requests are fairly well documented elsewhere. It’s the plugin format I’m finding it difficult finding things about!

Leave a Reply

Your email address will not be published.


This site uses Akismet to reduce spam. Learn how your comment data is processed.