AudioMuse-AI Navidrome Plugin enhances music discovery by using sonic analysis to queue similar songs in real time.
AudioMuse-AI Navidrome Plugin
AudioMuse-AI-NV-Plugin the a Navidrome plugin that integrates core AudioMuse-AI features into the Navidrome frontend.
Actually this is the list of integrated functionality:
- Instant Mix - Song similarity
- Radio - Artist Similarity
- Artist Info - It return similar artist
getSimilarSongs2 / getSimilarSongs and getArtistInfo API.
Front-End tested with the plugin are:
- Navidrome integrated web frontend
- Substreamer - iOS/Android opensource mobile frontend, more information here: https://github.com/ghenry22/substreamer/issues/58
- Tempus - Android opensource mobile frontend, more information here: https://github.com/eddyizm/tempus/issues/410
- Symfonium - Androind closed source mobile frontend. You need to enable in the configuration
Use similar tracks for Radio Mix. Additional functionality that use AudioMuse-AI API are actually implemented only using Jellyfin. More information here: https://support.symfonium.app/t/implement-navidrome-audiomuse-ai-plugin-to-symfonium/12238/12 - Feishin - Web opensource frontend, more information here: https://github.com/jeffvli/feishin/issues/1675
- Wavio - Android opensource mobile frontend, more information here: https://github.com/Joel-Mercier/wavio
NEWS
* From AudioMuse-AI-NV-plugin v8 the Sonic Similarity API extension are supported on top of the previous one. The API are documented here and supported by this Navidrome PR
* InstantMix support in Navidrome start from v0.60.0: https://github.com/navidrome/navidrome/releases/tag/v0.60.0
The full list or AudioMuse-AI related repository are: > * AudioMuse-AI: the core application, it run Flask and Worker containers to actually run all the feature; > * AudioMuse-AI Helm Chart: helm chart for easy installation on Kubernetes; > * AudioMuse-AI Plugin for Jellyfin: Jellyfin Plugin; > * AudioMuse-AI Plugin for Navidrome: Navidrome Plugin; > * AudioMuse-AI MusicServer: Open Subsonic-like Music Server with integrated sonic functionality.
HOW-TO Install
IMPORTANT: Before start we suggest to have the last version of Navidrome, AudioMuse-AI-NV-plugin and AudioMuse-AI core containers. If the version are not aligned, some error could happen. Keep this in mind also for future update.
- The ENV var NDPLUGINSENABLED, NDPLUGINSAUTORELOAD and ND_AGENTS are important, assuming that you deploy with docker compose you should use something like this:
version: '3'
services:
navidrome:
image: deluan/navidrome:latest
ports:
- '4533:4533'
environment:
- NDPLUGINSENABLED=true
- NDPLUGINSAUTORELOAD=true
- ND_AGENTS=audiomuseai,lastfm,deezer
- ND_DEVARTISTINFOTIMETOLIVE=1s
volumes:
- ./data:/data
- /path/to/music:/music:ro
- Then you need to put
audiomuseai.ndpin Navidrome data plugins folder (default:/data/plugins). - Restart Navidrome, go to UI -> Plugins, enable AudioMuse-AI, set AudioMuse-AI API URL and other configuration parameter.
- The order of ND_AGENTS is important. Navidrome will use the first listed agent supporting sonic similarity.
- The audiomuseai.npd can be found attached to the release: https://github.com/NeptuneHub/AudioMuse-AI-NV-plugin/releases.
- If you had configured authentication on AudioMuse-AI, you should also to create an apiToken on AudioMuse-AI core container and put in the plugin configuration.
See the official Navidrome Documentation for more information on how the plugin works.
HOW-TO test
In the AudioMuse-AI integrated UI, use the Similar Song functionality on a track.
In the Navidrome Web UI, use InstantMix on the same track.
Both actions should generate similar requests in the AudioMuse-AI Flask logs. For the Navidrome request, you should also see plugin=audiomuseai in multiple line of the Navidrome logs with no related errors.
If both tests pass, supported third-party clients should work correctly. Any issue on third party client MUST be addressed on their side.
Note:
- Different frontends may return a different number of similar songs, depending on their configuration. This plugin does not enforce a default limit.
- A 401 Unauthorized error in the Navidrome logs typically indicates that the apiToken is missing or incorrectly configured.
- Navidrome must be able to reach the AudioMuse-AI core container. Ensure the plugin is configured with the correct host/IP address. If requests do not appear in the AudioMuse-AI Flask logs, the issue is most likely network connectivity or container routing.
HOW-TO build
- Requirements (Ubuntu / macOS): Go, TinyGo.
- Build:
make build # -> audiomuseai.wasm
make package # -> audiomuseai.ndp
Full stop.
Code Mirror
AudioMuse-AI-NV-plugin repository code is mirrored here:
- https://codeberg.org/NeptuneHub/AudioMuse-AI-NV-plugin