Mopidy extension for controlling Mopidy through the MPRIS D-Bus interface.
An example of an MPRIS client is the Ubuntu Sound Menu.
- D-Bus Python bindings. The package is named
python-dbus
in Ubuntu/Debian. libindicate
Python bindings is needed to expose Mopidy in e.g. the Ubuntu Sound Menu. The package is namedpython-indicate
in Ubuntu/Debian.- An
.desktop
file for Mopidy installed at the path set in thempris/desktop_file
config value. Mopidy installs this by default. See usage section below for details.
Install by running:
pip install Mopidy-MPRIS
Or, if available, install the Debian/Ubuntu package from apt.mopidy.com.
There's no configuration needed for the MPRIS extension to work.
The following configuration values are available:
mpris/enabled
: If the MPRIS extension should be enabled or not.mpris/desktop_file
: Path to Mopidy's.desktop
file.
The extension is enabled by default if all dependencies are available.
If you are running Ubuntu and installed Mopidy using the Debian package from APT you should be able to control Mopidy through the Ubuntu Sound Menu without any changes.
If you installed Mopidy in any other way and want to control Mopidy through the
Ubuntu Sound Menu, you must install the mopidy.desktop
file which can be
found in the data/
dir of the Mopidy source repo into the
/usr/share/applications
dir by hand:
cd /path/to/mopidy/source sudo cp data/mopidy.desktop /usr/share/applications/
If the correct path to the installed mopidy.desktop
file on your system
isn't /usr/share/applications/mopidy.conf
, you'll need to set the
mpris/desktop_file
config value.
After you have installed the file, start Mopidy in any way, and Mopidy should appear in the Ubuntu Sound Menu. When you quit Mopidy, it will still be listed in the Ubuntu Sound Menu, and may be restarted by selecting it there.
The Ubuntu Sound Menu interacts with Mopidy's MPRIS frontend. The MPRIS
frontend supports the minimum requirements of the MPRIS specification. The TrackList
interface of the spec is not
supported.
To use the MPRIS API directly, start Mopidy, and then run the following in a Python shell:
import dbus bus = dbus.SessionBus() player = bus.get_object('org.mpris.MediaPlayer2.mopidy', '/org/mpris/MediaPlayer2')
Now you can control Mopidy through the player object. Examples:
To get some properties from Mopidy, run:
props = player.GetAll('org.mpris.MediaPlayer2', dbus_interface='org.freedesktop.DBus.Properties')
To quit Mopidy through D-Bus, run:
player.Quit(dbus_interface='org.mpris.MediaPlayer2')
For details on the API, please refer to the MPRIS specification.
- Fix: Make
OpenUri()
work even if the tracklist is empty.
- Updated extension API to match Mopidy 0.18.
- Update to work with Mopidy 0.16 which changed some APIs.
- Remove redundant event loop setup already done by the
mopidy
process.
- Moved extension out of the main Mopidy project.