mpstore - 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
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
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 "password@hostname" to
specify a password. If any hostname is "-", the MPD_HOST setting will
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 <firstname.lastname@example.org>
Licensed under the GNU GPL version 2 or higher.