This release is a pre-release and may not be stable for production use.
ovos-media-provider-local
OVOS MediaProvider plugin for a local file-system media library.
Given a parsed media request, it searches one or more configured directories
on disk and returns ranked, playable mediavocab.Release objects with
file:// uris. Instead of a fixed set of MediaType subfolders and a bus
listener, this provider is loaded in-process by the OCP pipeline and its
search() is called directly. It supersedes the catalog/search half of the
legacy OCP skill
ovos-skill-local-media.
Routing
| Axis | Value |
|---|---|
media |
MUSIC, MOVIE |
playback_type |
AUDIO, VIDEO |
genre_filter |
(none) |
Install
pip install ovos-media-provider-local
Configure
Per-provider settings live under media_providers in mycroft.conf, keyed
by the provider's entry-point name:
{
"media_providers": {
"local": {
"paths": ["~/Music", "~/Videos", "/mnt/media"],
"max_results": 10,
"min_confidence": 0.3
}
}
}
| Key | Default | Description |
|---|---|---|
paths |
$XDG_MUSIC_DIR/~/Music, $XDG_VIDEOS_DIR/~/Videos |
Directories scanned recursively for media files. |
max_results |
10 |
Maximum number of matching files returned per search. |
min_confidence |
0.3 |
Files scoring below this are dropped from the results. |
Set "enabled": false to disable without uninstalling.
How it works
Every audio/video file under a configured path is indexed once and re-used
across searches; the index is rebuilt on the next search() call only for
files whose mtime changed or that are new, and entries for files that
disappeared are dropped. There is no background thread — the refresh runs
synchronously at the start of search().
Tags are read with tinytag where the
format supports it (title/artist/album/genre/duration). A file with no
readable tags falls back to a title derived from its filename. search()
scores each candidate with fuzzy_match against the query title, with a
bonus when the requested artist is tagged on the file; a bare browse request
(no title, no artist) returns the whole library at a flat low confidence
instead of favouring one arbitrary file.
Related projects
- ovos-skill-local-media: the legacy OCP search skill this provider supersedes
- mediavocab: the
Release/Signals/Worktypes this provider returns and consumes - ovos-plugin-manager: defines the
MediaProvidertemplate andopm.media.providerplugin type
Docs
- docs/index.md: overview and how it fits the ovos-media stack
Tests
pip install -e .[test]
pytest test/
Tests use real fixture files generated under tmp_path (a tag-less WAV built
with the stdlib wave module, plus a tiny tagged MP3 synthesized with
ffmpeg where available). Tests that need the tagged MP3 are skipped, not
failed, when ffmpeg is not on PATH.
License
Apache-2.0
Metadata
Release files for ovos-media-provider-local 0.0.1a5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| ovos_media_provider_local-0.0.1a5.tar.gz | 13.3 kB | Without provenance | Details for ovos_media_provider_local-0.0.1a5.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| ovos_media_provider_local-0.0.1a5-py3-none-any.whl | Python 3 | none | any | Details for ovos_media_provider_local-0.0.1a5-py3-none-any.whl |
Total release size: 26.2 kB
Release files / ovos_media_provider_local-0.0.1a5.tar.gz
| Download URL | ovos_media_provider_local-0.0.1a5.tar.gz |
|---|---|
| Size | 13.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
590efea4dca8def49940bc481cf8bf3ab4577989a104e9f196ed4892b2886f78
|
|
BLAKE2b-256 checksum How to use checksums |
a5533e9bc314e0816dbd541b12975d7b27c9781f98596589e5e8e4fc75f8490f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ovos_media_provider_local-0.0.1a5-py3-none-any.whl
| Download URL | ovos_media_provider_local-0.0.1a5-py3-none-any.whl |
|---|---|
| Size | 12.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7b33db33222797dac63ce64d5268b6a45fe0b052d1298e425d77d961ca328f34
|
|
BLAKE2b-256 checksum How to use checksums |
dbd229dc132e5114f6d5982dc118524e8d737ee17a909593f0a78bb2213b6acd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for ovos-media-provider-local 0.0.1a5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.