Lightweight and dynamic MPlayer wrapper with a Pythonic API

pip install

Documentation at a glance

>>> p = mplayer.Player()
>>> p.loadfile('/path/to/file.mkv')
>>> p.time_pos = 40
>>> print p.length

What is

Initially known as PyMPlayer ( renamed to avoid confusion with other projects), provides several Pythonic interfaces to MPlayer. These are implemented as the following classes (see Introspection for more info):

  1. Player provides a clean, Pythonic interface to MPlayer.
  2. AsyncPlayer is a Player subclass with asyncore integration (POSIX only).
  3. GPlayer is a Player subclass with GTK/GObject integration.
  4. QtPlayer is a Player subclass with Qt integration (same usage as AsyncPlayer)
  5. GtkPlayerView provides a basic (as of now) PyGTK widget that embeds MPlayer.
  6. QPlayerView provides a PyQt4 widget similar to GtkPlayerView in functionality.

Show your appreciation by saying thanks or by donating a small amount.


Version 0.7.2 Released! (March 28, 2019)

You can download it here:

  • Don't pause upon initially loading file (Fixes #32)

Version 0.7.1 Released! (May 8, 2017)

You can download it here:

  • Various MPlayer2 fixes
  • Fix subprocess.mswindows error in python3.5+
  • Add a gevent-friendly Player subclass.

Version 0.7.0 Released! (September 8, 2011)

You can download it here:

  • Expose ALL commands except get_* and *_property commands and those which have the same name as their corresponding property.
  • Better QPlayerView and GtkPlayerView widgets; the Player objects are now directly accessible via the player property.
  • Getting output from MPlayer is now thread-safe (a Queue is now used)
  • Data can now be obtained asynchronously from Player objects (via subscribers/callbacks)
  • Improved generation of properties (using functools.partial objects)
  • Added type checking to generated methods and properties
  • Added value checking to generated properties
  • Abstracted MPlayer type handling away from the core (see mtypes module)
  • Python 2.x unicode and str fixes

Don't forget to read the CHANGES file.

Switched to git (September 7, 2011)

The code of (formerly PyMPlayer/python-mplayer) is now hosted at GitHub.

NOTE: Issues and wiki are still hosted here at Google Code.

Since python-mplayer is a very verbose and long name, let's just call it :)

Version 0.6.0 Released! (March 3, 2011)

You can download it here:

  • Support for MPlayer property access (get_property, set_property, step_property) with automatic type conversion via standard Python properties (new-style classes)
  • Drop methods which have the same functionality as their corresponding properties (for cleaner API)
  • No more exposed command() and query() methods; use the higher-level methods and properties instead
  • Improved code generation; generated methods execute faster than in 0.5.0
  • Introspection now happens on module load, not on instantiation
  • MPlayer is now spawned automatically (See autospawn parameter)
  • Setting of command prefix globally (i.e. per class) and per method execution is supported
  • Full support for Windows (for get_ commands)

Don't forget to read the CHANGES file.