MPRIS - ArchWiki

# MPRIS

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

MPRIS (Media Player Remote Interfacing Specification) is a standard D-Bus interface which aims to provide a common programmatic API for controlling media players.

It provides a mechanism for discovery, querying and basic playback control of compliant media players, as well as a track list interface which is used to add context to the active media item.

## Supported clients

This article or section needs expansion.

Reason: You can see your player of choise in the list and check if it supports mpris with playerctl utility. In case it does, add it to the following list. (Discuss in Talk:MPRIS#)

- Chromium
- Firefox
- Dragon Player
- mpv#mpv-mpris
- Music Player Daemon/Tips and tricks#MPRIS support
- rageAUR
- Spotify#MPRIS
- ncspotAUR
- Telegram
- VLC

## Control utilities

Tip: Create a key binding for common control commands and multimedia keys such as `XF86AudioPlay`, `XF86AudioStop`, `XF86AudioPrev` and `XF86AudioNext`.

### Playerctl

The playerctl utility provides a command line tool to send commands to MPRIS clients. The most common commands are `play-pause`, `next` and `previous`:

    $ playerctl play-pause
    $ playerctl next
    $ playerctl previous

playerctl will send the command to the first player it finds. To select a player manually, use the `--player` option, e.g. `--player=vlc`.

### mpris-player-control

The mpris_player_control is a shell script which integrates `dbus-send` and `pactl` to control MPRIS clients. It supports the Play, Pause, PlayPause and Stop actions and sink volume control (mute/unmute/up/down) for Spotify.

Run `mpris_player_control -h` to show basic script usage.

### D-Bus

An alternative to the above is to manually use D-Bus, which should be available by default as it is a dependency of systemd.

For example, the following commands can be used to control Spotify:

    $ dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause
    $ dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next
    $ dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous
    $ dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Stop

## Bluetooth

Media control from bluetooth headsets and similar devices may be forwarded to MPRIS.

Note: Some headphones such as Sony WH-1000XM3 provide an AVRCP interface. For these types mpris-proxy is not required. Just make sure you have key bindings set up for media keys.

Install the bluez-utils package and run `mpris-proxy`. In order to start up mpris-proxy in the background and/or when your system starts, you may create a systemd/User service:

    ~/.config/systemd/user/mpris-proxy.service

    [Unit]
    Description=Forward bluetooth media controls to MPRIS

    [Service]
    Type=simple
    ExecStart=/usr/bin/mpris-proxy

    [Install]
    WantedBy=default.target

Then start/enable the service with the `--user` flag.

Category:

- Multimedia

Hidden category:

- Pages or sections flagged with Template:Expansion