Skip to content

Instantly share code, notes, and snippets.

@kdwinter
Created May 10, 2009 20:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kdwinter/109723 to your computer and use it in GitHub Desktop.
Save kdwinter/109723 to your computer and use it in GitHub Desktop.
python-mpd
==========
Getting python-mpd
------------------
The latest release of python-mpd can be found at
http://pypi.python.org/pypi/python-mpd/[].
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 http://git.thejat.be/python-mpd.git
Installing from source
----------------------
To install python-mpd from source, simply run the command:
python setup.py install
You can use the `--help` switch to `setup.py` for a complete list of commands
and their options. See the http://docs.python.org/inst/inst.html[Installing
Python Modules] document for more details.
Using the client library
------------------------
The client library can be used as follows:
------------------------------------------------------------------------------
client = mpd.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
http://mpd.wikia.com/wiki/MusicPlayerDaemonCommands[MusicPlayerDaemonCommands]
on the http://mpd.wikia.com/[MPD Wiki] for more details.
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
------------------------------------------------------------------------------
Commands may also return iterators instead of lists if `iterate` is set to
`True`:
------------------------------------------------------------------------------
client.iterate = True
for song in client.listallinfo():
print song["file"]
------------------------------------------------------------------------------
Extra care must be taken to exhaust the iterator before executing *any* other
commands.
Contacting the author
---------------------
You can contact the author by emailing J. Alexander Treuman
<mailto:jat@spatialrift.net[]>. He can also be found idling in #mpd on
irc.freenode.net as jat.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment