Skip to content

NeptuneHub/AudioMuse-AI-NV-plugin

Repository files navigation

GitHub license Latest Tag Media Server Support: Navidrome 0.62.0 Donate using Liberapay

AudioMuse-AI Navidrome Plugin

AudioMuse-AI Logo

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

For Mobile app that want to map this functionality they need to implement the getSimilarSongs2 / getSimilarSongs and getArtistInfo API.

Front-End tested with the plugin are:

Other frontnend not in this list could also work by using those API even.

NEWS

The full list or AudioMuse-AI related repository are:

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 ND_PLUGINS_ENABLED, ND_PLUGINS_AUTORELOAD 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:
      - ND_PLUGINS_ENABLED=true
      - ND_PLUGINS_AUTORELOAD=true
      - ND_AGENTS=audiomuseai,lastfm,deezer
      - ND_DEVARTISTINFOTIMETOLIVE=1s
    volumes:
      - ./data:/data
      - /path/to/music:/music:ro
  • Then you need to put audiomuseai.ndp in 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.

Important

  • 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 'API Token' on AudioMuse-AI core container and put in the plugin configuration.
  • If AudioMuse-Ai has multiple Music Server configured, you need to configure the 'Server Name' in the plugin to match the one in AudioMuse-AI

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:

DO NOT USE MIRROR TO RAISE ISSUE, PR OTHER ACTION DIFFERENT FROM GET THE CODE

About

AudioMuse-AI Navidrome Plugin enhances music discovery by using sonic analysis to queue similar songs in real time.

Topics

Resources

License

Contributing

Stars

412 stars

Watchers

7 watching

Forks

Sponsor this project

Packages

 
 
 

Contributors