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
PROPFINDand 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
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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.