No description
Find a file
Alex Palaistras 08cd28af2d Load cover art from file directory
This commit adds support for loading cover art from media file
directories, according to configured filename priorities (of which an
additional, special choice of `embedded` is given).

Cover art paths are resolved during scanning and stored in the database
as part of the `album.cover_art_path` column; if embedded cover art is
matched, this will default to the path of the media file itself, and if
no cover art is matched at all.

Similarly, the `album.cover_art_id` column will default to a reference
to `media_file.id` if embedded cover art is wanted, but if an external
cover art file is matched, this will instead be set to a reference to
the `album.id` value itself, prefixed with the `al-` constant.

Stored cover art paths are once again resolved and matched against
configuration when covers are requested; that is, any change in
configuration between scanning and requesting cover art may not return
correct data until a re-scan is complete.

Tests will be added in future commits.
2020-06-24 20:48:42 -04:00
.github Upgrade Node to v14 2020-05-27 05:35:25 -04:00
assets Move static to resources. Embed them at build time 2020-05-02 14:19:01 -04:00
conf Load cover art from file directory 2020-06-24 20:48:42 -04:00
consts Add referential integrity to player and playlist tables 2020-06-10 18:07:10 -04:00
contrib Add [Install] section to systemd unit file. 2020-05-21 08:19:12 -04:00
db Add referential integrity to player and playlist tables 2020-06-10 18:07:10 -04:00
engine Load cover art from file directory 2020-06-24 20:48:42 -04:00
log Fix staticcheck's SA1029 2020-05-13 16:49:55 -04:00
model Always use lowercase username, as it is used for referential integrity. Fixes #352 2020-06-14 20:20:10 -04:00
persistence Load cover art from file directory 2020-06-24 20:48:42 -04:00
resources Update tr.json (POEditor.com) 2020-06-23 16:53:55 -04:00
scanner Replace map[string]bool with map[string]struct{} 2020-06-14 03:11:16 -04:00
server Always use lowercase username, as it is used for referential integrity. Fixes #352 2020-06-14 20:20:10 -04:00
tests Skip scanning folders if they contain a .ndignore file. Closes #297 2020-05-18 14:37:01 -04:00
ui Restore volume level after a refresh 2020-06-24 15:33:59 -04:00
utils Remove tracks from DB that were deleted while Navidrome was not running. Fixes #151 2020-06-14 03:11:16 -04:00
.dockerignore Unify GH actions 2020-04-23 19:31:24 -04:00
.git-blame-ignore-revs Add a .git-blame-ignore-revs file 2020-04-20 10:41:41 -04:00
.gitignore Small change to trigger the pipeline 2020-04-23 22:29:33 -04:00
.golangci.yml An other batch of linters 2020-04-29 14:09:45 -04:00
.goreleaser.yml Move static to resources. Embed them at build time 2020-05-02 14:19:01 -04:00
.nvmrc Upgrade Node to v14 2020-05-27 05:35:25 -04:00
docker-compose.yml Add BaseURL configuration (fixes #103) 2020-04-03 19:05:38 -04:00
Dockerfile Upgrade Node to v14 2020-05-27 05:35:25 -04:00
go.mod Bump github.com/onsi/ginkgo from 1.12.3 to 1.13.0 2020-06-15 09:16:51 -04:00
go.sum go mod tidy 2020-06-18 12:51:15 -04:00
lefthook.yml Run pre-push hooks in parallel 2020-05-07 12:00:10 -04:00
LICENSE Change license to GPLv3 2020-01-22 14:48:38 -05:00
main.go Add BaseURL configuration (fixes #103) 2020-04-03 19:05:38 -04:00
Makefile Add referential integrity to player and playlist tables 2020-06-10 18:07:10 -04:00
Procfile.dev Add ui subfolder, bootstrapped a "hello-world" React-Admin app, changed Makefile to start both apps in dev mode 2020-01-14 15:34:59 -05:00
README.md Add total downloads badge 2020-06-12 14:21:02 -04:00
reflex.conf Add referential integrity to player and playlist tables 2020-06-10 18:07:10 -04:00
wire_gen.go Create and configure image cache 2020-04-05 22:02:06 -04:00
wire_injectors.go Add BaseURL configuration (fixes #103) 2020-04-03 19:05:38 -04:00

Navidrome Music Streamer

Last Release Build Downloads Docker Pulls Dev Chat Subreddit

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 fill 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 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 Raspberry Pi binaries and Docker images available
  • 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