GSoC/GCI Archive
Google Summer of Code 2012

XBMC Foundation

Web Page:

Mailing List:



XBMC is a free and open source (GPL) software media player and entertainment hub for digital media. XBMC is available for Linux, OSX, iOS, and Windows, running on both x86 and ARM-based processors. Created in 2003 by a group of like minded programmers, XBMC is a non-profit project run and developed by volunteers located around the world. More than 50 software developers have contributed to XBMC, and 100-plus translators have worked to expand its reach, making it available in more than 30 languages.


  • Advanced Library Filtering in XBMC With growing media collections it gets difficult to quickly find specific media files. For that purpose filtering can be employed which allows specifying rules to narrow down the listed media files. The goal of this project is to integrate the filtering functionality of Smart Playlists (a feature of XBMC) into the media listings available in XBMC. To take it a step further, the concept is simplified to allow to easily put together a set of properties that a user would like to filter by.
  • Clean scraping API One thing which makes XBMC amazing is the fact that it is able to scrape websites in order to add meta data to a file with little help from users. Up till now XBMC have used regular expressions to achieve this task, and has done so rather successfully, but it has highlighted a few limitations, amongst many they can quickly become complex and are not very resilient to changes done in the website. The current scraping API has little tests and little is known what files it actually handles (outside the hierarchy the tight community uses), nor any knowledge about what it should handle, this along with making a new and future proof API is what I propose as my project.
  • Improved UPnP serving and client Despite it’s age, UPnP-AV is still the de facto standard for multimedia sharing in the home. Hundreds of products throughout millions of homes support UPnP to varying degrees. This propagation of devices represent a largely untapped potential to increase the relevancy of XBMC. Currently, XBMC operates both as a UPnP ‘media server’ and a ‘media renderer/control point’ (client), however it does not fully utilize the protocol to provide as rich as user experience as possible, and some third-party devices are incapable of streaming the content from XBMC altogether. The aim of this project is to extend the existing UPnP handling within the application, enhancing both the underlying code for the ease of future development, increasing the support for existing devices, while making great improvements to the end user’s perceptions as a whole.
  • XBMC Test Suite This proposal is to add a test suite for various components of XBMC.