Bioscoop is yet another tool to export your XBMC library to HTML. The goal of this project is pleasing its author and indulging his desire to learn a little bit more about this client-side stuff.

What? Why another one?

So, I wanted an easy way to view my XBMC movie library while away from home and that looked acceptably good on mobile so I would be able to pick my next movie to watch on my way home.

What I did not want was anything that required server-side code nor to use any of the "social" services for sharing a XBMC library out there due to privacy concerns.

I also needed an excuse to hack on anything client-side, which is not something I have any degree of expertise on. While I started doing it all in Python and using Flask, Frozen-Flask and requests, I soon felt the need of having something to help me organize JS in a sane way while not getting completely lost with all the new things I was trying to absorb at once.

Here is the new (to me) stuff that I used:


Clone the repository and cd to it:

$ git clone

Install the external Javascript libraries:

$ bower install

Then copy it all over to any server capable of serving static files.

Updating Your Library

The library retrieval requires that you have a running XBMC instance with the remote web UI properly enabled.

Once you get that done, you need to install the python dependencies:

$ pip install -r requirements.txt

And then fire up the script which will connect via jsonrpc to your XBMC server and retrieve all movie metadata (NOTICE: This will overwrite the data.js file):

$ ./

There are a few options you can tweak when playing around with the script, they might come in handy if you plan on running the library update via a cronjob or something similar:

$ ./ --help

Usage: [OPTIONS]

--host TEXT          XBMC server address
--username TEXT      Username for logging in on XBMC
--password TEXT      Password for logging in on XBMC
--processes INTEGER  Number of processes to use during download/conversion
--output TEXT        Name of the file to output the library as JSON
--pretty             Prettify the JSON output
--debug              Enable debugging messages
--help               Show this message and exit.