So... why not Subsonic? It's open source as well, seems a lot more mature, has a rest api, tons of apps, and a spiffy new HTML5 player that's quite good.
I suspect Java would make at least some of us steer clear. Thinking as purely a user, Subsonic looks great. As a developer that wants to hack around on the code handling my music library for fun, I personally wouldn't want the aggravation as I really can't stand Java.
Sorry, I don't quite get it. The web player has support for playlists and dynamic streams, so I guess it depends on whether the app available for your phone uses the correct API. The one I use, for example, maintains a 10gb MRU cache of my stuff (with lookahead) and that works out quite nicely for me. YMMV, but it definitely surpassed google music for me in both usability and quality.
A Subsonic-compatible wrapper for the API would instantly add compatibility with a large number of clients. Same for DLNA (spit).
I'm a big Subsonic fan for a couple of reasons:
1. Remote control - I can make the server play the track remotely
2. Configurable offline cache on my phone - I set a large cache size (say 20gb) and use the player normally. Next time I'm offline I've still got access to the last 20gb of music I played.
I'm looking for a Subsonic alternative though as I'd like to use an Android TV stick as my server/media center and getting Java running on that will be a pain and probably involve running a full Linux side-by-side. And I'm not even sure if it's going to be possible to run Subsonic server alongside Android effectively.
A closing thought. Why are these things needed when we have DLNA/UPnP? Mainly because DLNA apps are uniformally slow and lack essential features. It's stunning how much time and money large companies have spent on DLNA and produced something so horrible.
Nice! I've also been thinking about something like this for my photos. I have a ton of photos littered in a pics folder. Would love an API would I could query on EXIF data.
Try a semantic desktop app. If I'm not mistaken, Tracker[1] can index EXIF tags (as well as other metadata formats) and it exposes a SPARQL[2] endpoint that you can query.
I've also been thinking the same thing recently. I have iPhoto but it sucks for a) big collections and b) sharing. For example, locally you can browse a collection on another local machine but it sends full res photos across the wire so it's completely unusable.
Image support is planned actually (just noticed that is not in the wish list, will add it) but has some big prerequisites. With photos you have to be a little more careful regarding permissions, which means that users and roles should be supported first.
(..which is also powered by Python, Flask, SQLAlchemy, Backbone.js etc.)