mpstore(1) store and transfer mpd state between daemons


mpstore [host] > file

mpload [host] < file

mpcp [src] dest

mpmv [src] dest

mpswap [A] B


These commands allow saving, loading, and transferring state between mpd daemons running on different hosts.

mpstore dumps a daemon's state to stdout.

mpload loads a state dump from stdin and sends it to a daemon.

mpcp copies the state from the src daemon to the dest daemon, causing it to begin to play the same song as the src daemon, at the same position.

mpmv moves the state, so the dest daemon is left playing what the src daemon was playing, and the src daemon is paused.

mpswap exchanges the state of daemons A and B, swapping what they're playing.

The first hostname passed to each command can be omitted, if it is then the MPD_HOST environment variable will be used. Like the MPD_HOST variable, the hostname can be of the form ``[email protected]'' to specify a password. If any hostname is ``-'', the MPD_HOST setting will be used.

The full list of state that is handled is:

the contents of the playlist
the playback state (playing, paused, stopped)
the currently playing song
the position within the playing song
the volume control
the repeat, random, and cross fade settings


The host that state is transferred to must have the playing song available in its library, with the same filename. It's ok if some other songs in the playlist are not available; such songs will be skipped.

mpcp cannot perfectly synchronise playback between the two daemons. Network latency and timing prevent this. It should manage better than 0.5 second accuracy. If you need better accuracy of synchronised playback, you should probably use Pulse Audio.


The file format is not the same that mpd uses for saving its own state, which would be nice.


Copyright 2007 Joey Hess <[email protected]>

Licensed under the GNU GPL version 2 or higher.