NicotinD
Stream and organise your own self-hosted music library
ar.kevinroberts.nicotind
About NicotinD
NicotinD is a self-hosted music server, and this is its Android client. You run the server on your own machine; the app connects to it and streams your library. There is no NicotinD account, no cloud service, and nothing to sign up for — the only server the app talks to is the one whose address you give it.
You will need a NicotinD server before this app is useful. It runs in one Docker container on anything from a spare laptop to a NAS.
<b>What it does</b>
* Browses and streams your library — artists, albums, songs, genres, with cover art and full tag metadata.
* Plays in the background with lock-screen and notification controls, and keeps playing when you switch apps or turn the screen off.
* Saves tracks for offline playback, so a commute without signal still has music.
* Metadata-driven radio that picks what comes next from BPM, musical key, genre and mood similarity rather than from a recommendation service.
* Synced lyrics with a karaoke-style vocal-mute option.
* Listening history and stats, native and auto-generated playlists.
* Casts to another device running NicotinD, or to Chromecast and DLNA hardware.
* Multi-user, with per-user settings on one shared library and roles from listener to admin.
<b>Privacy</b>
The app talks to your server and nothing else. No analytics, no advertising identifiers, no third-party SDKs. Your listening history lives in your own database.
<b>About this build</b>
This is the same APK the project publishes on its GitHub releases — one build, no F-Droid-only variant. It contains no proprietary library of any kind.
Installed from F-Droid, the app updates through F-Droid, and its own in-app update button hides itself. That button exists for people who install the APK directly, where it is the only way to update; the app asks Android who installed it and removes the control when a store did. This is why the app declares the "install unknown apps" permission even though F-Droid will never use it here.
There is no QR-code pair