Project proposal: XbmcFS

by on under Technical
2 minute read

XbmcFS is not implemented and probably never will be. This post is just an overview on how and why something like XbmcFS could be used.

This post describes a possible solution on how to access media with all its metadata (e.g. fanart, posters, …) of an XBMC instance from other applications. Why would this be needed? One specific usage scenario (that I am trying to achieve) is following:

You use XBMC as your main media center application. Some people (including yourself) want to use Windows Media Center (without external plugins) as well. As WMC cannot fetch movie metadata itself, the metadata stored by XBMC should be used. Using WMC Extenders, it is then possible to display movie metadata from XBMC on e.g. the Xbox 360.

The simplest method to achieve this setup, is to create a FUSE filesystem, that contains both media and XBMC metadata encoded for WMC. A FUSE filesystem is ideal for this setup, as it does not require renaming all movie files and storing custom XMLs and folders for each movie. Ideally, the filesystem can have a configurable layout for different applications, apart from WMC.

The following diagram illustrates, how media is accessed from WMC when using the FUSE filesystem XbmcFS.

XbmcFS: File access-flow

Some random notes about XbmcFS:

  • XBMC does not need to run, when using WMC. The XBMC sqlite DB is accessed directly.
  • XBMC and XbmcFS need not run on the same machine. The ~/.xbmc folder must be accessible from the XbmcFS machine (either synchronized or accessed by NFS/CIFS…).
  • If XBMC and XbmcFS run on different machines, the media libraries must be mounted in the same location on both machines.

Edit:
After further reading, it seems to be impossible to export all XBMC metadata for WMC using only one filesystem. WMC expects all metadata, such as synopsis, actors, etc, to be stored in the DvdInfoCache folder (typical %AppData%\Microsoft\eHome\DvdInfoCache) as a file XXX.xml. Alongside each movie a file dvdid.xml is required, which contains the dvd id (e.g. XXX). This id is used to associate movies with their metadata.

When using XbmcFS to export all metadata, it would be required to manually redirect the DvdInfoCache folder on every windows machine, that is using XbmcFS. Furthermore it is not feasible to retrieve the correct dvd id for each movie from e.g. http://www.dvdxml.com. As a replacement for the real dvd ids, the XBMC movie ids would suffice.

Linux, Xbox, Windows Media Center, XBMC, XbmcFS, FUSE