Skip to main content

mopidy-webdav

Mopidy extension for browsing and playing music stored on a WebDAV server, such as Nextcloud.

Tracks are fetched on demand and kept in a local cache, so music doesn't need to be synced to the machine running Mopidy. The library is indexed locally, either when the user browses or via background workers.

Requirements

  • Python 3.13+
  • Mopidy 4.0+
  • A WebDAV server (that supports PROPFIND and HTTP basic authentication).

Format requirements

Since this extension also builds an index, support for new formats is added as needed. We currently support:

  • FLAC
  • MP3
  • Ogg Opus / Ogg Vorbis
  • WAV

Adding a new format is as simple as updating tracks.py.

Installation

Install into the same Python environment as Mopidy:

python3 -m pip install mopidy-webdav

Configuration

Add a [webdav] section to your Mopidy configuration file. At minimum, url, username and password must be set.

[webdav]
url = https://cloud.example.com/remote.php/dav/files/alice
username = alice
password = xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
path = /Music

For Nextcloud, the WebDAV URL is https://<server>/remote.php/dav/files/<user>. It's recommended to create an App Password for Mopidy rather than using your account password.

Always use an https:// URL. Credentials are sent with HTTP basic authentication, so over plain http:// anyone on the network can read your password and tamper with responses.

Option Default Description
enabled true
url Root URL of the WebDAV server. Varies by implementation
username Username for the WebDAV server.
password Password for the WebDAV server.
path /Music Directory, relative to url, that contains your music. This is the root shown when browsing.
max_cache_size Maximum total size in bytes of downloaded tracks kept in the cache. Leave empty for no limit.
prefill_cache false Walk the whole library on startup, caching track metadata in the background.
prefill_workers 2 Number of concurrent requests used while prefilling the cache.

Downloaded tracks and cached metadata are stored in webdav-cache inside Mopidy's core/cache_dir. Least recently downloaded tracks are removed once max_cache_size is exceeded.

Development

This project uses uv.

uv sync
uv run tox

To run Mopidy against a real server, put your settings in dev.conf (or any *.local.conf) and run uv run mopidy --config dev.conf. These files are gitignored and are excluded from built packages, so credentials never get published.

Releasing

Releases are versioned from git tags. Pushing a vX.Y.Z tag to Codeberg runs the tests, builds the package and publishes it to PyPI.

License

MIT

Metadata

Release files for mopidy-webdav 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mopidy-webdav 0.1.1
File Size Uploaded Provenance Actions
mopidy_webdav-0.1.1.tar.gz 90.3 kB Without provenance Details for mopidy_webdav-0.1.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for mopidy-webdav 0.1.1
File Interpreter ABI Platform Actions
mopidy_webdav-0.1.1-py3-none-any.whl Python 3 none any Details for mopidy_webdav-0.1.1-py3-none-any.whl

Total release size: 109.4 kB

Release files / mopidy_webdav-0.1.1.tar.gz

Download URL mopidy_webdav-0.1.1.tar.gz
Size 90.3 kB
Tags Source
SHA-256 checksum
How to use checksums
e88f812f4e9ce1e018048ebaba6ffa47739581c848e327c29ce785328d3c5e85
BLAKE2b-256 checksum
How to use checksums
dcde49ced17d2f9c9213208ed7e275ff6cbca644801801abdea665e7073eda90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / mopidy_webdav-0.1.1-py3-none-any.whl

Download URL mopidy_webdav-0.1.1-py3-none-any.whl
Size 19.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9b28c7a405718087e26930fc14491383263aaa316c02a8bd89243b63b4232a9b
BLAKE2b-256 checksum
How to use checksums
567338bde0d16d91f00d277c3e891b73427b4d10a679564e9358eb53a4f9bf87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for mopidy-webdav 0.1.1

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.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files No provenance

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