ovos-media-provider-mass
September 2, 2026 · View on GitHub
OVOS MediaProvider plugin for Music Assistant.
It is the catalog/search half of the Music Assistant integration for the ovos-media stack. Given a parsed media request, it searches a Music Assistant server and returns ranked, playable mediavocab.Release objects.
Playback of the returned library://… uris is done by the companion ovos-media-plugin-mass audio backend. This plugin supersedes the catalog/search half of the legacy OCP skill ovos-skill-music-assistant.
Routing
| Axis | Value |
|---|---|
media | MUSIC, RADIO, PODCAST, AUDIOBOOK |
playback_type | AUDIO |
genre_filter | (none) |
Install
pip install ovos-media-provider-mass
The opm.media.provider plugin type is available in ovos-plugin-manager 2.11.6a1 and later.
Configure
Per-provider settings live under media_providers in mycroft.conf, keyed by
the provider's entry-point name:
{
"media_providers": {
"music_assistant": {
"url": "http://192.168.1.100:8095",
"max_results": 10
}
}
}
url is required (the provider reports itself unavailable without it). Set
"enabled": false to disable without uninstalling.
Related projects
- py-music-assistant: shared HTTP client and mediavocab bridge (this provider's transport layer)
- ovos-media-plugin-mass: Music Assistant playback backend (plays the
library://uris this provider returns) - ovos-skill-music-assistant: the legacy OCP search skill this provider supersedes
Docs
- docs/index.md: overview and how it fits the ovos-media stack
- docs/configuration.md: configuration reference
Tests
pip install -e .[test]
pytest test/ # unit + end2end, network-free
MASS_SERVER_URL=http://<host>:8095 pytest test/live/ # opt-in, real server
The end-to-end tests (test/end2end/) discover the provider
through its real opm.media.provider entry-point and drive the full
discover → serves() gate → search_safe path the OCP pipeline takes, with the
Music Assistant client mocked.
License
Apache-2.0