Package: homeassistant-mpris-bridge
Control your Home Assistant media players from your desktop using MPRIS!What?This project bridges your Home Assistant instance and your desktop to control media players known to your Home Assistant instance.It works by by communicating with Home Assistant using its websocket API, and exposes media players to your desktop using widely-implemented MPRIS ("Media Player Remote Interfacing Specification") interfaces.FeaturesShows information about what's currently being played (artist, album, title, cover art)Basic playback controls (play, pause, previous, next)Volume controllingSeeking forwards/backwardsMinimal configuration needed, autodetects players as they come!tl;dr:I want it right now, but how?!Install from PyPI, the simplest way is to usepipx. Alternatively, simple clone this repository and runpoetry installpipx install homeassistant-mpris-bridgeLaunchhassbridgehassbridge --endpoint http://192.168.123.123:8123 --token <long lived token>Instead of using--endpointand--tokenyou can also define the following environment variables to achieve the same:export HASSBRIDGE_ENDPOINT="http://192.168.123.123:8123"
export HASSBRIDGE_TOKEN="<long lived token>"Running as systemd serviceThe simplest way to make sure the bridge is started alongside your desktop session is to create a systemd user service for it:Create a service file~/.config/systemd/user/hassbridge.servicewith the following content:[Unit]
Description=hassbridge

[Service]
ExecStart=<PATH TO HASSBRIDGE>
Environment="HASSBRIDGE_TOKEN=<YOUR TOKEN>"
Environment="HASSBRIDGE_ENDPOINT=<URL TO HOMEASSISTANT>"

[Install]
WantedBy=multi-user.targetYou have to do the following substitutions:Replace<PATH TO HASSBRIDGE>with the location of thehassbridgescript (usewhich hassbridge)Replace<YOUR TOKEN>with your long-lived token (https://www.home-assistant.io/docs/authentication/#your-account-profile)Replace<URL TO HOMEASSISTANT>with the URL to your instance (e.g.,http://192.168.123.123:8123).Start the service and verify that it is running correctlysystemctl --user start hassbridge
systemctl --user status hassbridgeEnable the service so that it starts automatically when you log insystemctl --user enable hassbridgehassbridge --help$ hassbridge --help
Usage: hassbridge [OPTIONS] COMMAND [ARGS]...

  hass-mpris bridge.

Options:
  --endpoint TEXT
  --token TEXT
  -d, --debug
  --help           Show this message and exit.

Commands:
  connectHow does it work?Homeassistant connectivity is achived withhomeassistant's websockets API.
Everymedia_playerentity in the homeassistant instance will then be exposed over D-Bus to other applications to use, implementing two MPRIS interfaces:org.mpris.MediaPlayer2org.mpris.MediaPlayer2.PlayerEach time homeassistant informs over websocket API about a state change,
the details for known entities are signaled over the D-Bus interfaces to clients.Specshttps://developers.home-assistant.io/docs/api/websocket/https://specifications.freedesktop.org/mpris-spec/2.2/ContributingContributions in form of pull requests are more than welcome.
Before submitting a PR, verify that the code is correctly formatted by callingtox -e lint.
Alternatively, you can usepre-committo enforce the checks:$ pre-commit install