Skip to main content
Pre-release

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

Docs

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)

Source distribution for ovos-media-provider-local 0.0.1a5
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)

Table of built distributions (wheels) for ovos-media-provider-local 0.0.1a5
File Interpreter ABI Platform Actions
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page