Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

An MPD (Music Player Daemon) client library written in pure Python.

Project Description

Getting python-musicpd

The latest release of python-musicpd can be found at

Getting the latest source code

If you would instead like to use the latest source code, you can grab a copy
of the development version from git by running the command:

git clone git://

Installing from source

To install python-musicpd from source, simply run the command::

python3 install

You can use the `--help` switch to `` for a complete list of commands
and their options. See the `Installing Python Modules`_ document for more details.

Using the client library

The client library can be used as follows::

client = musicpd.MPDClient() # create client object
client.connect('localhost', 6600) # connect to localhost:6600
print client.mpd_version # print the mpd version
print client.cmd('one', 2) # print result of the command "cmd one 2"
client.close() # send the close command
client.disconnect() # disconnect from the server

A list of supported commands, their arguments (as MPD currently understands
them), and the functions used to parse their responses can be found in
`doc/commands.txt`. See the `MPD protocol documentation`_ for more

Command lists are also supported using `command_list_ok_begin()` and
`command_list_end()` ::

client.command_list_ok_begin() # start a command list
client.update() # insert the update command into the list
client.status() # insert the status command into the list
results = client.command_list_end() # results will be a list with the results

Provide a 2-tuple as argument for command supporting ranges (cf. `MPD protocol documentation`_ for more details).
Possible ranges are: "START:END", "START:" and ":" ::

# An intelligent clear
# clears played track in the queue, currentsong included
pos = client.currentsong().get('pos', 0)
# the 2-tuple range object accepts str, no need to convert to int
client.delete((0, pos))
# missing end interpreted as highest value possible, pay attention still need a tuple.
client.delete((pos,)) # purge queue from current to the end

A notable case is the `rangeid` command allowing an empty range specified
as a single colon as argument (i.e. sending just ":")::

# sending "rangeid :" to clear the range, play everything
client.rangeid(()) # send an empty tuple

Empty start in range (i.e. ":END") are not possible and will raise a CommandError.

Commands may also return iterators instead of lists if `iterate` is set to

client.iterate = True
for song in client.playlistinfo():
print song['file']

Each command have a *send\_<CMD>* and a *fetch\_<CMD>* variant, which allows to
send a MPD command and then fetch the result later.
This is useful for the idle command::

>>> client.send_idle()
# do something else or use function like select()
# ex. select([client], [], [])
>>> events = client.fetch_idle()

# more complex use for example, with glib/gobject:
>>> def callback(source, condition):
>>> changes = client.fetch_idle()
>>> print changes
>>> return False # removes the IO watcher

>>> client.send_idle()
>>> gobject.io_add_watch(client, gobject.IO_IN, callback)
>>> gobject.MainLoop().run()

Contacting authors

You can contact the original author by emailing J. Alexander Treuman
<jat⊘>. He can also be found idling in #mpd on as jat.

The current maintainer can be found on xmpp chat room <⊘>
or you can contact him by email/xmpp <kaliko⊘>.

.. _Installing Python Modules:
.. _MPD protocol documentation:
Release History

Release History

This version
History Node


History Node


History Node


History Node


History Node


Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
python-musicpd-0.4.2.tar.bz2 (20.9 kB) Copy SHA256 Checksum SHA256 Source Nov 23, 2014
python-musicpd-0.4.2.tar.gz (23.0 kB) Copy SHA256 Checksum SHA256 Source Nov 23, 2014 (27.2 kB) Copy SHA256 Checksum SHA256 Source Nov 23, 2014

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting