This release is a pre-release and may not be stable for production use.
ovos-media-plugin-mass
Music Assistant playback backend for OVOS. It controls
Music Assistant players, playing the
library://<type>/<id> uris that the Music Assistant catalog returns.
It ships one backend on both media stacks: the same plugin works with the
legacy ovos-audio service and with the modern ovos-media service.
| Stack | Entry-point group | Class |
|---|---|---|
ovos-media (current) |
opm.media.audio |
MAssOCPAudioService |
ovos-audio (legacy) |
mycroft.plugin.audioservice |
MAssAudioService |
To search Music Assistant by voice you also need a catalog component:
ovos-media-provider-mass
on the ovos-media stack, or
ovos-skill-music-assistant
on the legacy OCP/ovos-audio stack.
Install
pip install ovos-media-plugin-mass
Configuration
The easiest way is the bundled ovos-mass-autoconfigure command, which scans your
server and writes both the legacy and ovos-media player entries into
mycroft.conf:
$ ovos-mass-autoconfigure
This script will auto configure Music Assistant devices under your mycroft.conf
Make sure your Music Assistant server is accessible from this device
Please enter your Music Assistant server url: http://192.168.1.100:8095
Scanning...
- Found player: HomeLabRenderer - dlna:uuid:4b778a71-0499-485a-a5a4-88140603fba9
mycroft.conf updated!
When more than one player is found, it lists them and prompts for the
default (the only player written to the legacy Audio backends and marked
active: true on the ovos-media side — every other discovered player is
written with active: false):
$ ovos-mass-autoconfigure
This script will auto configure Music Assistant devices under your mycroft.conf
Make sure your Music Assistant server is accessible from this device
Please enter your Music Assistant server url: http://192.168.1.100:8095
Scanning...
- Found player: HomeLabRenderer - dlna:uuid:4b778a71-0499-485a-a5a4-88140603fba9
- Found player: KitchenSpeaker - dlna:uuid:9a11a2f0-0a3b-4e3d-9a0e-2a5b6c7d8e9f
0 - HomeLabRenderer:dlna:uuid:4b778a71-0499-485a-a5a4-88140603fba9
1 - KitchenSpeaker:dlna:uuid:9a11a2f0-0a3b-4e3d-9a0e-2a5b6c7d8e9f
select default mass device: 0
mycroft.conf updated!
Run non-interactively (CI, provisioning scripts) with --url and
--default/--player (index or player_id); without them, and with
multiple players found on a non-tty stdin, the script exits with an error
instead of hanging on input():
$ ovos-mass-autoconfigure --url http://192.168.1.100:8095 --default 0
It emits configuration for both stacks:
// Legacy Audio Service:
{"backends": {"mass-HomeLabRenderer:dlna": {
"active": true, "type": "ovos_mass", "player_type": "dlna",
"identifier": "uuid:4b778a71-0499-485a-a5a4-88140603fba9",
"url": "http://192.168.1.100:8095"}}}
// ovos-media Service:
{"audio_players": {"mass-HomeLabRenderer:dlna": {
"active": true, "module": "ovos-media-audio-plugin-mass", "player_type": "dlna",
"aliases": ["HomeLabRenderer", "Home Lab Renderer"],
"identifier": "uuid:4b778a71-0499-485a-a5a4-88140603fba9",
"url": "http://192.168.1.100:8095"}}}
See docs/configuration.md for the field reference.
Related projects
- py-music-assistant: the shared HTTP client and mediavocab bridge (this plugin's transport layer)
- ovos-media-provider-mass: the Music Assistant MediaProvider (search,
ovos-mediastack) - ovos-skill-music-assistant: the Music Assistant OCP search skill (legacy stack)
- hivemind-homeassistant: exposes OVOS as a player in Home Assistant
Docs
- docs/index.md: overview and how the two stacks fit together
- docs/architecture.md: backends, uri resolution, playback flow
- docs/configuration.md: configuration reference
- docs/faq.md: troubleshooting
Tests
pip install -e .[test]
pytest test/ # unit + end2end (ovoscope), network-free
The end-to-end tests (test/end2end/) drive both backends through
a real ovos-audio AudioService on a FakeBus via ovoscope, with the Music
Assistant HTTP client mocked.
License
Apache-2.0
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ovos_media_plugin_mass-0.0.3a1.tar.gz.
File metadata
- Download URL: ovos_media_plugin_mass-0.0.3a1.tar.gz
- Upload date:
- Size: 19.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f99d15c479e8004ecbf224ab2b7bfe05504d4bc3572a5421dd63b192fe748f9e
|
|
| MD5 |
c66fd13c4ba8f3a5ef26ad74aafbb836
|
|
| BLAKE2b-256 |
dd449fe265fac8f1dde22551060237342dec4081087404f1844a272b98bafae2
|
File details
Details for the file ovos_media_plugin_mass-0.0.3a1-py3-none-any.whl.
File metadata
- Download URL: ovos_media_plugin_mass-0.0.3a1-py3-none-any.whl
- Upload date:
- Size: 15.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a96453af7e7c6eb5c67ffe9333be6c7dcd22135a8ebd0de8c7b1603a7acbce0
|
|
| MD5 |
5621f019702ef0012958e3e55f06302e
|
|
| BLAKE2b-256 |
be95bb1c652f2d5d24e5414616778d5d841f6afd77e469af7bf7275b55d9e2ee
|