discord-player-navidrome
v1.0.1
Published
Navidrome extractor for discord-player (using the Subsonic-compatible API until the native Navidrome API is stable and documented)
Maintainers
Readme
discord-player-navidrome
Navidrome extractor for discord-player. Note: This uses the Subsonic-compatible API until the native Navidrome API is stable and documented.
Install
npm install discord-player-navidromeUsage
import { Player } from "discord-player";
import { NavidromeExtractor } from "discord-player-navidrome";
const player = new Player(client);
await player.extractors.register(NavidromeExtractor, {
username: "user",
password: "secret",
host: "https://navidrome.example.com",
source: "arbitrary", // optional
protocols: ["myapp"], // optional
});Capabilities
- Search support for songs, albums ('album:' or 'al:') & playlist ('playlist:' or 'pl:') ✅
- Single tracks by ID ✅
- Playlist by URL or by
playlist: namequery ✅ - Album by URL or by
album: namequery ✅ - Streaming ✅
- Bridge support ✅ (not tested)
- Autoplay ✅
Options
username: Navidrome username.password: Navidrome password.host: Base URL for your server.https://hostorhttps://host/restboth work.source: Optional string. Defaultarbitrary.protocols: Optional list of additional protocols (added to defaults:navidrome,subsonic,nd,ss).usePlainPassword: Optional boolean. Defaultfalse(usesenc:hex).clientName: Optional string. Defaultdiscord-player.apiVersion: Optional string. Default1.16.1.maxResults: Optional number. Default10.
Notes
- Empty/public playlists are skipped in
playlist:results. - Playlist search only considers public playlists; direct playlist links can still resolve private playlists.
playlist:with no query returns up to 25 public playlists; if none exist, a placeholder result is returned.- UI links are only accepted when they match the configured
host. - Playlist links are detected by the
/playlist/{id}path inside the URL hash ornavidrome://playlist/{id}. - Track links are detected by
/song/{id}inside the URL hash. - Album links are detected by the
/album/{id}path inside the URL hash ornavidrome://album/{id}.
