NoriSync is distributed as a Jellyfin plugin repository, so the recommended install path is to add the repo to your Jellyfin server and let Jellyfin handle downloads and updates.
NoriSync · latest 1.0.0.48 ·
target ABI 10.11.0.0 · published 2026-04-26
10.11.0.0 (Jellyfin 10.11.x)The manifest is published from the project's Gitea releases.
Manifest URL:
https://git.missen.ca/Esmond/jellyfin-plugin-norisync/releases/download/manifest/manifest.json
In Jellyfin:
NoriSync (or any label you prefer)Jellyfin fetches the manifest and merges NoriSync into the plugin catalog.
After restart, the plugin appears under Dashboard → Plugins → My Plugins. Identifying details:
If your server can't reach the manifest URL, download the latest zip
directly and extract it into Jellyfin's
plugins/NoriSync_<version>/ directory, then restart Jellyfin.
NoriSync is licensed under GPL-2.0-or-later. The source archive for this build is available if you'd like to inspect or rebuild it before installing the binary.
To rebuild from source: extract the zip and run
dotnet build Jellyfin.Plugin.NoriSync/Jellyfin.Plugin.NoriSync.csproj -c Release.
Outputs land in bin/Release/net9.0/.
Open Dashboard → Plugins → My Plugins → NoriSync to reach the settings page. There are two sections.
| Setting | Default | Notes |
|---|---|---|
| Retention Period (days) | 30 |
Change records older than this are purged. Also the idle threshold for registered clients — instances silent for this many days are dropped from retention gating. |
Lower this if disk usage on the change log is a concern; raise it if you have clients that go offline for extended periods and you don't want them to miss deletes.
These settings drive the NoriSync: Compute Audio Embeddings scheduled task (daily at 03:00 by default). Leave embeddings disabled if you only want the delta-sync API.
| Setting | Default | Notes |
|---|---|---|
| Enable Audio Embeddings | off | Master switch. The scheduled task is a no-op until this is on. |
| Max Tracks Per Run | 0 |
Cap on tracks processed per run. 0 = unlimited.
Useful when first enabling on a large library to spread the
initial scan across multiple nights. |
| Embedding Concurrency | 2 |
Parallel workers. Each spawns its own ffmpeg decode, so this multiplies CPU and process count. 2–3 is typical; raise carefully. |
| Inference Location | Remote |
Where CLAP inference runs.
Only Remote is supported in the current build
— Local will throw at task startup. |
| Remote Endpoint | (blank) | Base URL of the norisync-embedder companion, e.g.
http://m5-mac:9000. Required when embeddings are
enabled. |
The CLAP weights (laion/larger_clap_music, Apache-2.0) are
fetched by the companion service from HuggingFace on first launch and
cached locally.
After saving config, confirm the plugin is live without auth by hitting:
GET http://<your-jellyfin>/api/norisync/info
It returns { id, name, version }. All other endpoints
require Jellyfin authentication — see the API section of the
README for the full endpoint list.
Once the repository is added, Jellyfin's plugin catalog will surface new versions automatically. Use Dashboard → Plugins → My Plugins to update, then restart Jellyfin.