Tuesday, March 17, 2015

Chromecast, Android, UPnP/DLNA, and Docker

If you're like me, you have at least one machine on your home network that has a UPnP/DLNA server up and running it on.  You may have used a PS3, XBOX360, NeoTV, or any other UPnP/DLNA device to watch media from that UPnP/DLNA server.  And... Like me, you may have grown tired of all these machines and tried to migrate everything to using a Chromecast.  If so, you soon discovered Chromecast has no way to natively play anything via UPnP/DLNA.

This is the situation I found myself in.  I searched the Play store and found BubbleUPnP.  It sounded great, then I tried to use it.  Well by default it can only cast to your Chromecast in the native formats that your Chromecast supports, which as I'm sure is not what the majority of your media is encoded in.

Luckily, BubbleUPnP has a server that will transcode media from whatever format it is in into a format that your Chromecast supports.  The Android app will even automatically find the server for you automatically.  However, the server is kind of tricky to setup and get working.  Fortunately I've been playing with Docker a lot lately.

So if you're trying to cast UPnP/DLNA and you happen to be running a Linux distribution that's capable of running Docker, you can just run the Docker image I've created for the BubbleUPnPServer.

There were existing Docker images of the BubbleUPnPServer, but they all had something weird about them which you can read in more detail at the official page for the image.  But to get you started you just need to run the following command on a machine with Docker installed on your local network.

    docker run -P --net=host rwgrim/docker-bubbleupnpserver

Hope you find this as useful as I have!