GSoC 2011 Banshee uPnP server/client integration

First off I must say its such an honor being picked by the mono community for this years Google summer of Code. The project will be adding uPnP Client/Server support to the incredible Banshee Media Player, an application I love and use very much in my daily life.

My main media consumption consists of Banshee for playing music and XBMC for video playback (on my TV), this is why I feel uPnP would be such an interesting project as it would allow me to have the same content available with the same standard on all devices and only needing to manage them in one location and from one application.

The goal of the project is as said to integrate a uPnP server and client into Banshee, making it possible to both share media and consume media from other devices simply and dynamically. Banshee is already a very simple application to use in managing media and given that more and more portable devices supports uPnP, it can and should easily serve them with that media. My proposal can be viewed fully here but I will go through the key points here nevertheless.

Every day it becomes more and more common to have multiple computers in a household and even more so to have multiple portable devices like tablets, phones and even laptops which all may have media to share or media you want them to be able to acquire from a local server. Given that media is such an integral part of many users’ use of a desktop, the consuming of this media needs to fit the dynamic lifestyle we expect these devices to conform to.

User scenarios:

  • A friend comes over to your house with his Banshee powered laptop bursting with songs he wants you to hear. Instead of copying these files over to you or plugging his laptop into the stereo, you simply ask him to connect to your network, navigate to his computer from yours, and starts the playback.
  • You sit out on the porch with your cellphone, listening to the music files on the phone’s local drive. Your banshee powered laptop is already started in a room all the way on the other side of your home, and you get the urge to listen to a song you do not yet have synced to your device. You simply start the uPnP client on the device and begin listening to what your laptop has shared.
  • You have a few friends over to watch a movie which is sitting on your Banshee powered laptop. Instead of watching this movie on the small laptop screen, you start your uPnP powered TV and navigate to the movie. Playback starts at the touch of a button.

This proposal consists of two separate parts, one being the client and one being the server. Let us begin with the server. First and foremost I must consider the fact that most users who intend to share media will wish to continue sharing the media even while Banshee isn’t running. As such, Banshee role is state what to be shared and the metadata regarding it where some other instance share the files. Given this requirement it might make sense to leverage a session wide server and with the guidance of the nice people from Banshee and Gnome I have been pointed to the Gnome project Rygel. As noted in the mailing list communication, when the instance hooked up to D-Bus disconnects, the media stops being shared, this is by design from Rygel, and, as suggested, this could be circumvented by creating a thin client feeding Rygel the data which Banshee controls.

As for the client, a C# project called mono uPnP exists which can be used to power Banshee to acquire media in a manner similar to many of the other extensions found in Banshee already. While this project (and Banshee alone) most likely can power the server part as well, it may make more sense to use Rygel. That aspect is something which will need further discussion and examination, which is why the following timeline has Server Implementation scheduled for a later stage of programming. The intervening time will allow for all necessary discussion.

I hope that after this summer is done Banshee will be able to play along nicely with all your other media devices. During the summer I will keep you all up to date with progress on this blog. Most of the stuff will most likely be very technical but isn’t that the most interesting anyways 🙂

Till next time, yours truly, Tobias.


Posted on April 29, 2011, in Banshee. Bookmark the permalink. 13 Comments.

  1. Luis Heslí Baltézar Dorado

    Es un exelente reproductor me parece genial

  2. Can’t wait for the summer to end … well… NOT 🙂 But I’m pretty interested in your findings!

    Until then, cheers

  3. awesome! I’m glad you’re working on it. This seems like a huge and odd thing to be missing from banshee. I came across a page at that seems to enable server capability. what do you think about that.

    also, I like your HTPC setup. simple yet divine. I have a blog for a similar ongoing setup

    it’s a combination of relevent news and howtos.

  4. This is great news! Hopefully Banshee would offer several different folders for the music (not only artist and album like in Rhythmbox), e.g. playlist, genre, rating, last played, … That would be even awesome. Thanks in advance for your efforts.

    • atm the intergration is very close to how normal banshee behaves. So you have that album, artist, song pane where you can filter on whatever. There is nothing stopping us from adding playlist node but I have yet to find a upnp server exposing the playlists (even if they can), if you know one who does I’d love to know and I’d gladly add!

  5. This would be great! May you add folders playlists, genre, categories, compilation, … for the music section? That would be wonderful.

    • Playlists is more than possible, I haven’t found a server exposing the PlaylistContainer yet though, if you know one I’d love to know which so I can try and add it.
      Currently there is no filtering on genre, compilation but I don’t think there is anything significant stopping that to be added (compilation might need more recent upnp spec to be exposed).

      As for folders? You mean a raw folder view as how most servers showcase the upnp-servers. I haven’t thought about doing it but it would be a great idea to support, especielly for the servers not supporting search and not having quirks (as then we can skip the recursive browsing). I need to take a look at if its possible to do a filebrowser type of view in banshee (easily). Thanks for the suggestion!

      • Thanks for the encouraging reply. Unfortunately I have not seen a playlistcontainer yet, but hopefully you will find a way. If uPnP is working with banshee I can transfer from Rhythmbox and XBMC ;-).

      • Yup, both of them should work just fine (I have developed against both of them infact). Hopefully this will find its way into banshee mainline soonish, I will try to line up and clean up the patches to make them ready for pull ASAP

  6. Gd day. I was wondering whether any progress had been made recently? I’d love to be able to serve playlists and radio stations stored in a central Banshee db accross my network

    Tks for yr efforts so far.


  1. Pingback: Open Source Audiophile » Blog Archive » banshee, the other music player

  2. Pingback: Banshee News In Brief « Ubuntu Tutorials « 123linux tutorials

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: