# Mpris Library and CLI tool for interacting and monitoring media players exposing an mpris interface through dbus. An alternative for [playerctl](https://github.com/altdesktop/playerctl) that better integrates with astal. :::warning In order for network cover art urls to be cached (spotify for example) make sure `gvfs` is enabled. :::code-group ```nix [ configuration.nix] services.gvfs.enable = true; ``` ::: ## Installation 1. install dependencies :::code-group ```sh [ Arch] sudo pacman -Syu meson vala gvfs json-glib gobject-introspection ``` ```sh [ Fedora] sudo dnf install meson gcc vala valadoc gvfs json-glib-devel gobject-introspection-devel ``` ```sh [ Ubuntu] sudo apt install meson valac gvfs libjson-glib-dev gobject-introspection ``` ::: 2. clone repo ```sh git clone https://github.com/aylur/astal.git cd astal/lib/mpris ``` 3. install ```sh meson setup --prefix /usr build meson install -C build ``` ## Usage You can browse the [Mpris reference](https://aylur.github.io/libastal/mpris). ### CLI ```sh astal-mpris --help ``` ### Library :::code-group ```js [ JavaScript] import Mpris from "gi://AstalMpris" const spotify = Mpris.Player.new("spotify") if (spotify.available) print(spotify.title) ``` ```py [ Python] from gi.repository import AstalMpris as Mpris spotify = Mpris.Player.new("spotify") if spotify.get_available(): print(spotify.get_title()) ``` ```lua [ Lua] local Mpris = require("lgi").require("AstalMpris") local spotify = Mpris.Player.new("spotify") if spotify.available then print(spotify.title) end ``` ```vala [ Vala] // Not yet documented ``` :::