Skip to main content

Control various media players from a single command line interface.

Project description

player_do provides a simple command line interface to control whatever media player is running on your computer.

It is designed to allow you to configure the media buttons on your keyboard (play, pause, next etc.) to Do The Right Thing without having to change anything if you switch to a different media player.

It also includes commands ‘install_gnome’,’install_mate’, ‘install_gnome3’, and ‘install_cinnamon’ to help set up keyboard shortcuts initially on GNOME2/Mate/GNOME3/Cinnamon. It can, however, be used with any system where you can map keyboard shortcuts to commands.

The currently supported media players can be seen by running ‘player_do help’. Those that have been tested include the following:

  • Audacious
  • Amarok
  • Banshee
  • Clementine
  • cmus
  • Exaile
  • Guayadeque
  • moc
  • MPD (configurable using MPD_HOST and MPD_PORT environment variables like mpc)
  • pianobar
  • Quodlibet
  • Rhythmbox (needs MPRIS plugin installed and enabled)
  • shell-fm (0.8 and later)
  • VLC (2.0 and later)

Many other players will be supported due to support for the MPRIS DBUS protocol, without a specific backend. If you only need support for those players, consider using MPRIS-remote.

To add more supported programs, see the existing code in the ‘backends’ directory. Patches gratefully received!


You need Python 3. You can use pip to install:

pip install playerdo

However, we recommend the use of pipx to install it into its own virtualenv:

pipx install playerdo --system-site-packages

You may also need to install Python DBUS bindings. We recommend doing this at the system level. On Debian-like systems this is usually done with one of the following packages:



player_do --help

Version 2.0 (2020-01-13)

  • Dropped Python 2 support
  • Fixed some Python 3 issues

Version 1.0 (2019-06-16)

  • Support for pianobar
  • Support for MPD.
  • Better support for Cinnamon
  • Fixed support for cmus

Version 0.9

  • New ‘install_cinnamon’ command to properly support Cinnamon 2.0 and higher.
  • Fixed some Python 3 compatibility issues, dropped support for Python < 2.7

Version 0.8

  • new command ‘is_playing’.
  • shell-fm support now requires version 0.8

Version 0.7

  • Added support for installing shortcuts in Mate and GNOME3/Cinnamon

Version 0.6.1

  • Fixed small bug introduced in 0.6

Version 0.6

  • Added support for cmus

Version 0.5.2

  • Fixed incorrect use of MPRIS2 protocol that caused VLC 2.0 to crash. Thanks to orbisvicis for the very helpful bug report and patch.

Version 0.5.1

  • Fixed some Python 3 incompatibilities
  • Fixed crash if DBus library is not installed
  • Fixed support for newer version of Banshee

Version 0.5

  • Added support for quodlibet
  • Fixed support for Guayadeque

Version 0.4

  • Added support for MPRIS2 players
  • Added install_gnome command to help set up keyboard shortcuts on GNOME
  • Eliminated dependency on shc.hs for the shell-fm backend
  • Various bug fixes/optimisations

Version 0.3

  • Fixed fatal packaging bug!
  • Improved help text for MPRIS players (lists currently running players).
  • Made dbus dependency optional
  • Support for Python 3 via 2to3.

Version 0.2

  • Added support for Banshee.
  • Implemented ‘test’ command where needed.
  • Small bug fixes.

Version 0.1

  • Initial release.
  • Support for any MPRIS player, shell-fm, mocp and rhythmbox.

Project details

Download files

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

Source Distribution

playerdo-2.0.1.tar.gz (16.5 kB view hashes)

Uploaded source

Built Distribution

playerdo-2.0.1-py3-none-any.whl (19.8 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page