Play your local library, Spotify and even AirPlay via Teddycloud

:small_orange_diamond: Intro :small_orange_diamond:

Since Teddycloud can play radio streams, I’d highly recommend a very nice open source software named OwnTone (formerly forked-daapd). I’ve been using it for more than 10 years.

OwnTone is a media server that lets you play audio sources such as local files, Spotify, pipe input or internet radio to AirPlay 1 and 2 receivers, Chromecast receivers, etc. Or you can listen to your music via any client that supports mp3 streaming.

You control the server via a web interface, Apple Remote, an Android remote (e.g. Retune), an MPD client, json API or DACP. OwnTone runs on low power devices like the Raspberry Pi.

:small_orange_diamond: Killer Feature :small_orange_diamond:

What makes OwnTone a perfect fit for the Teddycloud is that it has a built-in radio stream ouput! So no matter where the input comes from (local, Spotify, AirPlay etc.), everything will be transmitted to http://[OWNTONE-IP]:3689/stream.mp3. You don’t have to setup anything like an icecast server, no need to configure complicated mpd config files etc. It just works!

So out of the box, just by running OwnTone (e.g. as a Docker container), you can assign its output stream to a Tonie of your choice and then you can change dynamically in OwnTone’s web interface what this Tonie is playing. Switch between different radio stations, your personal music library, Spotify etc.

:small_orange_diamond: Extensions :small_orange_diamond:

Shairport-Sync

There’s another fince peace of software named Shairport-Sync. It turns every device into an AirPlay destination! Meaning you can send any audio from your iOS/macOS (even Android) device via AirPlay to your Shairport host. And Shairport can write this stream e.g. into a Unix pipe (FIFO). One feature of OwnTone is that it automatically starts playing a pipe as soon as somebody writes to it. So both of them work perfect together. So here’s a possible chain:
iPhone → AirPlays to Shairplay → outputs to pipe → read by OwnTone → outputs to radio stream → received by Teddycloud → outputs to Toniebox.

This sounds way more “complicated” than it is. :slight_smile: It offers endless possibilities, as you can play basically everything your mobile phone can play (YouTube, Amazon Music, Podcasts, and many more).

Spocon / Librespot

Besides OwnTone’s native Spotify integration or AirPlay, there is also the possibility to install Librespot or Spocon (recommended) on your Pi. This way, you have native Spotify Connect support. Spocon can output to a pipe as well and OwnTone listens on this and starts playing it automatically (same as with Shairport).

:small_orange_diamond: Installation :small_orange_diamond:

All of the tools above can be installed either native or via Docker. You can run them on the same machine, for example a Raspberry Pi. Here’s a detailed setup guide for OwnTone and Shairport (Home Assistant parts can be ignored).

:small_orange_diamond: One more thing :small_orange_diamond:

OwnTone has a nice RESTful API which offers lots of possibilities for automations, remote controls (e.g. via Siri Shortcuts, Scripts) etc. Example: trigger Siri Shortcut with NFC (or voice) which shuffles a random episode of “Die drei ???” on Spotify and play it on OwnTone.

1 Like

Thank you for sharing this with the community!

Don’t forget, that teddyCloud provides the rtnl data of the box via mqtt, which includes the clapping and the tilting of the box.

This way you could get a step further by using the events to control OwnTone

This is great! I’m having troubles setting this up in a docker container besides my teddycloud (running on a pi4). Any chance you could perhaps write a quick tutorial/yaml file for setting this up?

You can find the docker run command in the ReadMe of the official container:

There is also a docker-compose file if you prefer that:

Be aware that you have to mount three folders: etc, media and cache. Make sure they exist. The media folder is the most important one (where your music library and playlists are located).

2 Likes