Skip to content

Features Media

Tuck edited this page Jun 28, 2026 · 3 revisions

Media Control

Control media playback through MPRIS.

Note: The canonical documentation for MPRIS media control is in mpris_media_control.md. This page is a convenience alias.

List Players

deskbrid media list

Response:

{
  "type": "response",
  "status": "ok",
  "data": [
    {
      "name": "spotify",
      "identity": "Spotify",
      "status": "playing",
      "title": "Bohemian Rhapsody",
      "artist": "Queen",
      "album": "A Night at the Opera",
      "position": 120000,
      "length": 354000
    }
  ]
}

Protocol:

{"type": "mpris.list"}

Get Player Status

deskbrid media get
deskbrid media get spotify

Protocol:

{"type": "mpris.get", "player": "spotify"}

Control Playback

deskbrid media play
deskbrid media pause
deskbrid media playpause
deskbrid media stop
deskbrid media next
deskbrid media previous

Protocol:

{"type": "mpris.control", "action": "play", "player": "spotify"}

Seek and Set Position

deskbrid media control --action seek --offset 10000  # Forward 10s
deskbrid media control --action seek --offset -5000  # Backward 5s
deskbrid media control --action set_position --position 60000  # Jump to 1min

Protocol:

{"type": "mpris.control", "action": "set_position", "player": "spotify", "position": 60000}

Python Example

from deskbrid import Deskbrid

client = Deskbrid()

# List players
players = client.mpris_list()
for player in players:
    print(f"{player['identity']}: {player['title']}")

# Control playback
client.mpris_control("play")
client.mpris_control("next")

AI Agent Example

→ {"type": "mpris.list"}
← {"type": "response", "status": "ok", "data": {"players": [{"name": "spotify", "status": "playing", "title": "Song 1", ...}]}}

→ {"type": "mpris.control", "action": "pause", "player": "spotify"}
← {"type": "response", "status": "ok"}

Clone this wiki locally