🎧☁️ Modern Music Server and Streamer compatible with Subsonic/Airsonic
Go to file
Steve Richter a56d5bc850
Listenbrainz scrobbling (#1424)
* Refactor session_keys to its own package

* Adjust play_tracker

- Don't send external NowPlaying/Scrobble for tracks with unknown artist
- Continue to the next agent on error

* Implement ListenBrainz Agent and Auth Router

* Implement frontend for ListenBrainz linking

* Update listenBrainzRequest

- Don't marshal Player to json
- Rename Track to Title

* Return ErrRetryLater on ListenBrainz server errors

* Add tests for listenBrainzAgent

* Add tests for ListenBrainz Client

* Adjust ListenBrainzTokenDialog to handle errors better

* Refactor listenbrainz.formatListen and listenBrainzRequest structs

* Refactor agent auth_routers

* Refactor session_keys to agents package

* Add test for listenBrainzResponse

* Add tests for ListenBrainz auth_router

* Update ListenBrainzTokenDialog and auth_router

* Adjust player scrobble toggle
2021-10-30 12:17:42 -04:00
.devcontainer Update GoLang to 1.17 (#1295) 2021-09-09 00:26:56 -04:00
.github Bump GoLang to 1.17.2 2021-10-13 09:53:44 -04:00
cmd Listenbrainz scrobbling (#1424) 2021-10-30 12:17:42 -04:00
conf Listenbrainz scrobbling (#1424) 2021-10-30 12:17:42 -04:00
consts Simplify `resources` code, enabling any resource to be overridden (not just translations) 2021-10-28 10:25:25 -04:00
contrib Improve systemd unit security (#677) 2021-05-09 11:59:08 -04:00
core Listenbrainz scrobbling (#1424) 2021-10-30 12:17:42 -04:00
db Fix double escaped lyrics and comments 2021-10-26 19:33:21 -04:00
git New implementation of NowPlaying 2021-06-20 10:39:16 -04:00
log Add option to have different loglevels per source folder/file 2021-07-14 18:44:14 -04:00
model Optimize queries by path, should speed up the scanner a bit 2021-10-29 13:11:51 -04:00
persistence Optimize queries by path, should speed up the scanner a bit 2021-10-29 13:11:51 -04:00
resources Simplify `resources` code, enabling any resource to be overridden (not just translations) 2021-10-28 10:25:25 -04:00
scanner Fix double escaped lyrics and comments 2021-10-26 19:33:21 -04:00
scheduler Use singleton in other places as well 2021-06-21 18:59:26 -04:00
server Listenbrainz scrobbling (#1424) 2021-10-30 12:17:42 -04:00
tests Listenbrainz scrobbling (#1424) 2021-10-30 12:17:42 -04:00
ui Listenbrainz scrobbling (#1424) 2021-10-30 12:17:42 -04:00
utils Remove temp folders after tests 2021-10-28 10:40:31 -04:00
.dockerignore Remove dependency of go-bindata (#818) 2021-03-12 11:06:51 -05:00
.git-blame-ignore-revs Move project to Navidrome GitHub organization 2021-02-06 21:47:19 -05:00
.gitignore Add git version info to release source (#1250) 2021-07-15 09:49:34 -04:00
.golangci.yml Fix small lint errors found by gocritic 2021-07-15 13:43:03 -04:00
.goreleaser.yml Uses GoLang 1.16.3 2021-04-26 17:21:59 -04:00
.nvmrc Upgrade to Node v16 2021-05-25 10:53:16 -04:00
CODE_OF_CONDUCT.md Use Contributor Covenant v2.0 2020-07-21 14:40:21 -04:00
CONTRIBUTING.md Update CONTRIBUTING.md 2021-03-24 23:36:48 -04:00
LICENSE Change license to GPLv3 2020-01-22 14:48:38 -05:00
Makefile Improve git-vs-tarball detection (#1423) 2021-10-23 21:27:19 -04:00
Procfile.dev Remove decoration from `reflex` output 2021-05-26 12:24:02 -04:00
README.md Update README.md 2021-10-08 10:51:09 -04:00
go.mod Bump github.com/djherbis/atime to v1.1.0 2021-10-03 22:50:25 -04:00
go.sum Bump github.com/djherbis/atime to v1.1.0 2021-10-03 22:50:25 -04:00
main.go New Criteria API 2021-10-23 20:25:28 -04:00
reflex.conf Pass userId explicitly to UserPropsRepository methods 2021-06-25 22:21:37 -04:00
tools.go Check goimports in the pipeline (#1381) 2021-10-01 15:32:24 -04:00

README.md

Navidrome logo

Navidrome Music Server

Last Release Build Downloads Docker Pulls Dev Chat Subreddit Contributor Covenant

Check out our Live Demo!

Navidrome is an open source web-based music collection server and streamer. It gives you freedom to listen to your music collection from any browser or mobile device. It's like your personal Spotify!

Any feedback is welcome! If you need/want a new feature, find a bug or think of any way to improve Navidrome, please file a GitHub issue or join the discussion in our Subreddit. If you want to contribute to the project in any other way (ui/backend dev, translations, themes), please join the chat in our Discord server.

Installation

See instructions in the project's website

Features

  • Handles very large music collections
  • Streams virtually any audio format available
  • Reads and uses all your beautifully curated metadata
  • Great support for compilations (Various Artists albums) and box sets (multi-disc albums)
  • Multi-user, each user has their own play counts, playlists, favourites, etc...
  • Very low resource usage
  • Multi-platform, runs on macOS, Linux and Windows. Docker images are also provided
  • Ready to use binaries for all major platforms, including Raspberry Pi
  • Automatically monitors your library for changes, importing new files and reloading new metadata
  • Themeable, modern and responsive Web interface based on Material UI
  • Compatible with all Subsonic/Madsonic/Airsonic clients
  • Transcoding on the fly. Can be set per user/player. Opus encoding is supported
  • Translated to various languages

Documentation

All documentation can be found in the project's website: https://www.navidrome.org/docs. Here are some useful direct links:

Screenshots