Streaming music to your Xbox 360 from Linux

I've been busy lately, which is why I haven't posted much. Sadly, that hasn't stopped me from wasting what free time I have had. Just the other day, for example, given an evening to myself I spent it trying to stream music from my Ubuntu box to my Xbox 360; something I have absolutely no need to do, and relatively little interest in doing. It seems my idle curiosity gave up the whole idleness thing. The result being that I spent several hours banging my head against the problem of streaming music to an Xbox 360 without Microsoft's Windows Media Center (or anything else Microsoft but the Xbox itself).

There are several options, but if you searched the web before I wrote this, you wouldn't come across much in the way of helpful comparisons. There are plenty of forum posts saying "it works", "no it doesn't", "works for me", "has anyone got this working yet?", but nothing very conclusive.

I tried three different programs: uShare, GMediaServer, and x360mediaserve (listed in the order in which I tried them, and if you're impatient and don't want to read on, I'll give you a little clue: people generally stop trying alternatives when they find one that works okay).

uShare seemed the best on paper. It had an explicit --xbox switch, relatively simple configuration, looked like a traditional Unix program (which may put some people off, but is important to me if I'm considering running the thing at start-up as a daemon), and the only real negative point was that people (not necessarily the authors) kept saying "written in C for speed", which is usually the sign of a lost project with neither clue nor sensible focus. Unless you've messed up and used something hugely inappropriate, or you're a library or something else where users should reasonably expect to have to deal with the code, implementation language is not a feature. Anyway, I couldn't get this to work. I tried, too. This was the only one where I bothered enough to chase dependencies and build it myself, the only one where I bothered enough to really look at the network captures to try to work out what was wrong (nothing obvious; if it weren't for the fact that nothing showed up on the Xbox 360, I'd say it was working; XML was squirted in both directions, with contents that looked plausible to me).

GMediaServer was off-putting with its crappy GNU-style home page, but it did have a pre-built package in the Ubuntu repositories, which is always a good sign; someone with enough clue to maintain a Debian package thinks the thing is worth packaging. Not that there isn't plenty of good and useful software that doesn't get this treatment, and not that there isn't plenty of utter crap that does, but it's better than nothing, and it at least means (a) no manual tracking down of dependencies and (b) no need to build anything myself and (c) worry about how to uninstall when it turns out not to work. GMediaServer, being packed, was much easier. Unfortunately, it didn't seem to work any better than uShare. The documentation, though it mentions the PS3, doesn't even mention the Xbox 360, which is surely the most widespread uPNP streaming media client, no? I mean, I hate some of the things Microsoft do, and every time they start on with bollocks ads about how great Windows is or anti-Linux FUD, I feel guilty that I'm actually partially responsible for funding those misinformation campaigns. But (and bear in mind I'm just guessing this is why there's no mention of the Xbox 360) ignoring popular devices makes no sense; better to say "we don't support X for reason Y". Whatever, GMediaServer wouldn't talk to my 360, the documentation doesn't even mention the 360, and although there are patches on the web that allege to make an old version able to talk to the 360, there's no sign those patches were ever integrated. Plus GMediaServer has been updated once in the last 12 months and the first thing mentioned in the ChangeLog entry is that it needs a new maintainer. At that point, I gave up and turned to my last choice...

x360mediaserve. This program has no documentation that I could find. Nothing of any use at all. It wasn't obvious that it has a proper website, and it's basically an "alpha" project on sourceforge.net, everybody's favorite internet code orphanage. It's not available as a package, and is just a spew of binary files and shell scripts/.bat files. The source isn't included in the download, the structure of the download isn't the usual GNU/Unix one, blah, blah; basically, it's a really crappy experience. But if you run "./start", point your browser at "", enter a directory of .mp3s in the relevant box and ignore the stupid download prompt when you submit, it just works. Yeah, it's got all the wrong buzzwords: J2EE, servlet, XML, bloatware; yeah, it looks and smells like ass, but it works. If they'd default to using ~/Music, it would probably work out of the box for most people. (Well, most people who have a suitable JVM installed.)

So, anyway, we have a "clear" winner. Bear in mind that the "winner" seems to only support music (that is, it doesn't support video), and doesn't seem to be much more actively developed than GMediaServer. If it had actually worked, uShare would have been my choice; it seems the most professional and the best-maintained. (I reiterate this mainly in case you're a PS3 user, for whom it may well work.)

As for the Xbox 360's side of things, I was unimpressed. The sound came out of the front left and front right speakers only, and with my Z-5450 speakers, that's not nearly as good as the M-Audio "monitor" speakers on my desk. The 360's controller is a pretty inconvenient remote, too.

All in all, I can't really see a reason why I'd ever do this again. But if you want to try, hopefully this post can save you some time.