MPD client class

musicpd.CONNECTION_TIMEOUT = 5

seconds before a tcp connection attempt times out

class musicpd.MPDClient[source]

MPDClient instance will look for MPD_HOST/MPD_PORT/XDG_RUNTIME_DIR environment variables and set instance attribute host, port and pwd accordingly. Regarding MPD_HOST format to expose password refer MPD client manual mpc (1).

Then musicpd.MPDClient.connect will use host and port as defaults if not provided as args.

Cf. musicpd.MPDClient.connect for details.

>>> from os import environ
>>> environ['MPD_HOST'] = 'pass@mpdhost'
>>> cli = musicpd.MPDClient()
>>> cli.pwd == environ['MPD_HOST'].split('@')[0]
True
>>> cli.host == environ['MPD_HOST'].split('@')[1]
True
>>> cli.connect() # will use host/port as set in MPD_HOST/MPD_PORT
Variables
  • host (str) – host used with the current connection

  • port (str,int) – port used with the current connection

  • pwd (str) – password detected in MPD_HOST environment variable

Warning

Instance attribute host/port/pwd

While musicpd.MPDClient().host and musicpd.MPDClient().port keep track of current connection host and port, musicpd.MPDClient().pwd is set once with password extracted from environment variable. Calling musicpd.MPDClient().password() with a new password won’t update musicpd.MPDClient().pwd value.

Moreover, musicpd.MPDClient().pwd is only an helper attribute exposing password extracted from MPD_HOST environment variable, it will not be used as default value for the password() method

connect(host=None, port=None)[source]

Connects the MPD server

Parameters
  • host (str) – hostname, IP or FQDN (defaults to localhost or socket, see below for details)

  • port (str or int) – port number (defaults to 6600)

The connect method honors MPD_HOST/MPD_PORT environment variables.

Note

Default host/port

If host evaluate to False
  • use MPD_HOST environment variable if set, extract password if present,

  • else looks for a existing file in ${XDG_RUNTIME_DIR:-/run/}/mpd/socket

  • else set host to localhost

If port evaluate to False
  • if MPD_PORT environment variable is set, use it for port

  • else use 6600

disconnect()[source]

Closes the MPD connection. The client closes the actual socket, it does not use the ‘close’ request from MPD protocol (as suggested in documentation).