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!

Installation

You can use pip to install:

pip install playerdo

However, we recommend the use of pipx (Python 3 only) 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:

python-dbus
python3-dbus

Usage

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.

Files for playerdo, version 2.0
Filename, size File type Python version Upload date Hashes
Filename, size playerdo-2.0-py2.py3-none-any.whl (19.7 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size playerdo-2.0.tar.gz (13.5 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page