Sync Lidarr metadata into the musefs SQLite store
Project description
lidarr-musefs
A Lidarr integration that lets Lidarr import into a placeholder library tree while musefs serves the real consumer-facing, re-tagged FUSE view.
The supported workflow keeps Lidarr as the downloader, matcher, and metadata source, but prevents Lidarr from copying, moving, or rewriting backing audio bytes. Lidarr's destination tree exists so Lidarr can track files. Point Navidrome, Plex, Jellyfin, or other consumers at the musefs mount instead.
Required Lidarr settings
- Settings -> Media Management -> Import Using Script: enabled.
- Import Script Path:
musefs-lidarr-import. - Metadata Provider -> Write Audio Tags:
Never. - File Date:
None. - Linux permission management: disabled.
Do not rely on Lidarr's built-in "Use Hardlinks instead of Copy" for this
workflow. Lidarr uses a hardlink-or-copy transfer mode internally, so a hardlink
failure can copy bytes. musefs-lidarr-import creates the destination entry
itself and fails closed.
Environment
Import script:
MUSEFS_LIDARR_LINK_MODE=symlink # default; use hardlink only if symlinks are unsuitable
Sync script:
MUSEFS_DB=/path/to/musefs.db
MUSEFS_BIN=musefs
MUSEFS_LIDARR_URL=http://localhost:8686
MUSEFS_LIDARR_API_KEY=your-api-key
MUSEFS_LIDARR_AUTOSCAN=1
API keys are redacted from logs and errors.
Lidarr Custom Script
Configure a Custom Script notification:
- On Release Import: enabled.
- On Rename: enabled.
- Path:
musefs-lidarr-sync.
Test events exit successfully without touching files or the database.
TrackRetag events are skipped with a warning because they fire after Lidarr
writes tags.
Manual backfill
Run:
musefs-lidarr-sync --all
Manual backfill requires MUSEFS_LIDARR_URL and MUSEFS_LIDARR_API_KEY. It
queries all Lidarr artists and syncs their known track files into the musefs DB.
Doctor
Run:
musefs-lidarr-sync --doctor
The doctor checks Lidarr's API for:
writeAudioTags = nofileDate = nonesetPermissionsLinux = false
If MUSEFS_LIDARR_URL and MUSEFS_LIDARR_API_KEY are not configured, doctor
and sync fail because the integration cannot verify safe settings or build
complete per-track metadata.
Smoke test
- Build and install musefs.
- Install
python-musefsandlidarr-musefsinto the environment Lidarr uses for custom scripts. - Configure Import Using Script and Custom Script as described above.
- Import a small album.
- Confirm Lidarr's destination entry is a symlink by default.
- Run
musefs mount /tmp/mnt --db "$MUSEFS_DB". - Confirm the mount shows Lidarr metadata.
- Confirm the source file's bytes and mtime did not change.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lidarr_musefs-0.0.1.tar.gz.
File metadata
- Download URL: lidarr_musefs-0.0.1.tar.gz
- Upload date:
- Size: 18.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f043dc82f35f7048f4de29321b188dd72fe1bedc5ed886701be3e2dca2a1afc2
|
|
| MD5 |
6f446c9ee628088460513023400ad9f2
|
|
| BLAKE2b-256 |
409972cf914cdb8ba1117f66a99c8992d5e07ab566910c04d2f5982e060f5fa5
|
File details
Details for the file lidarr_musefs-0.0.1-py3-none-any.whl.
File metadata
- Download URL: lidarr_musefs-0.0.1-py3-none-any.whl
- Upload date:
- Size: 15.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f17537b5cae7fdac7c1de07109b0c63e1dc3cfb741c3d738674334ad35e0303
|
|
| MD5 |
fd1a1f3819f4abb6d28d0ab31e25a3c7
|
|
| BLAKE2b-256 |
28984f9157181a4f5df88b1aabbb9aade3aa9a0afc2973869109ccc35eb3e6dc
|