Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


XDM: eXtendable Download Manager. Plugin based media collection manager.

XDM is in BETA Current official site
Official main plugin repository at

Bitdeli Badge Gitter chat

tip for next commit Gittip


  • python 2.7.x

optional but recomended when running on source

  • git 1.8.x

Known support for Mediatypes

  • Movies: Movies and find and Postprocess
  • Music: Albums and find and Postprocess (only for Mac OSX adding to iTunes)
  • Games: PC, Xbox360, PS3 and Wii Games and find and Postprocess
  • Books: Books
  • TV: TV shows
  • Anime: Animes

For more info on available first party plugins see the main repository at

Note: At some point in the future all MediaTypeManagers and corresponding plugins will be moved into the repository and out of the core.


is available online at
or in the source and can be build using sphinx

Libraries in use


  • CherryPy: A Minimalist Python Web Framework
  • Requests: HTTP for Humans
  • pyDes: This is a pure python implementation of the DES encryption algorithm.
  • profilehooks: Profiling/tracing wrapper
  • peewee: a small, expressive orm
  • Jinja2: Jinja2 is a full featured template engine for Python.
  • pylint: analyzes Python source code looking for bugs and signs of poor quality
  • astng: common base representation of python source code for projects such as pychecker, pyreverse, pylint
  • guessit: a library for guessing information from video files.
  • JSONRPClib: A Python JSON-RPC over HTTP that mirrors xmlrpclib syntax.
  • pbs: Python subprocess wrapper (fallback for windows, see sh).
  • sh: sh (previously pbs) is a full-fledged subprocess interface for Python that allows you to call any program as if it were a function.


  • Bootstrap: Sleek, intuitive, and powerful front-end framework for faster and easier web development.
  • Font Awesome: The iconic font designed for Bootstrap.
  • jQuery: is a fast, small, and feature-rich JavaScript library.
  • jQuery UI: is a curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library.
  • modernizr: is a JavaScript library that detects HTML5 and CSS3 features in the user’s browser.
  • fancyBox: fancyBox is a tool that offers a nice and elegant way to add zooming functionality for images, html content and multi-media on your webpages.
  • Raphaël: JavaScript Vector Library
  • noty: jquery notification plugin
  • jQuery resize event: With jQuery resize event, you can now bind resize event handlers to elements other than window.
  • JQuery Countdown Timer: A simple jQuery Countdown Timer with callback
  • jQuery YouTube Popup Player: A simple and light weight plugin to display YouTube videos in a jQuery dialog box.
  • pjax: pushState + ajax = pjax
  • TouchSwipe: A jquery plugin to be used on touch devices such as iPad, iPhone, android etc

(Plugins may use more libraries)


More screenshots

Movie plugin with some movies Movie plugin

Music plugin with some albums Music plugin

Games Games plugin

Books Books plugin

Plugin and reposetory managment Plugins


usage: XDM [-h] [-d] [-v] [-D] [-p PIDFILE] [-P PORT] [-n] [-b DATADIR]
           [--config_db CONFIG_DB] [--data_db DATA_DB]
           [--history_db HISTORY_DB] [--dev] [--noApi] [--apiPort APIPORT]
           [--noWebServer] [--pluginImportDebug]
           [--profile [PROFILE [PROFILE ...]]]

optional arguments:
  -h, --help            show this help message and exit
  -d, --daemonize       Run the server as a daemon.
  -v, --version         Print Version and exit.
  -D, --debug           Print debug log to screen.
  -p PIDFILE, --pidfile PIDFILE
                        Store the process id in the given file.
  -P PORT, --port PORT  Force webinterface to listen on this port.
  -n, --nolaunch        Don't start the browser.
  -b DATADIR, --datadir DATADIR
                        Set the directory for created data.
  --config_db CONFIG_DB
                        Path to config database
  --data_db DATA_DB     Path to data database
  --history_db HISTORY_DB
                        Path to history database
  --dev                 Developer mode. Disables the censoring during log and
                        the plugin manager follows symlinks
  --noApi               Disable the api
  --apiPort APIPORT     Port the api runs on
  --noWebServer         Don't start the webserver
  --pluginImportDebug   Extra verbosy debug during plugin import is printed.
  --profile [PROFILE [PROFILE ...]]
                        Wrap a decorated(!) function in a profiler. By default
                        all decorated functions are profiled. Decorate your
                        function with @profileMeMaybe


You will need an instlled version of babel

Build message catalog       $ pybabel extract -F babel.cfg -o ./i18n/messages.pot .
Create language po          $ pybabel init -i ./i18n/messages.pot -d i18n -l ``language name``
Update language po          $ pybabel update -i ./i18n/messages.pot -d i18n
Compile mo files            $ pybabel compile -d i18n -f


XDM: Xtentable Download Manager. Plugin based media collection manager.
Copyright (C) 2013 Dennis Lutter

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see