LMS is a self-hosted music streaming software: access your music collection from anywhere using a web interface!
A demo instance is available. Note the administration settings are not available.
- Subsonic/OpenSubsonic API support
- Multi-valued tags:
genre
,mood
,artists
, ... - Artist relationships:
composer
,conductor
,lyricist
,mixer
,performer
,producer
,remixer
- Release types:
album
,single
,EP
,compilation
,live
, ... - MusicBrainz Identifier support to handle duplicated artist and release names
- ListenBrainz support for:
- Scrobbling and synchronizing listens
- Synchronizing 'love' feedbacks
- Recommendation engine
- Multi-library support
- ReplayGain support
- Audio transcoding for compatibility and reduced bandwidth
- User management, with several authentication backends
- Playlists support
- Lyrics support
LMS provides several ways to help you find the music you like:
- Tag-based filters (ex: "Rock", "Metal and Aggressive", "Electronic and Relaxed", ...)
- Recommendations for similar artists and albums
- Radio mode, with endless filling of the play queue with tracks similar to what is there
- Searches in album, artist and track names (including sort names)
- Starred Albums/Artists/Tracks
- Random/Starred/Most played/Recently played/Recently added for Artist/Albums/Tracks, allowing you to search for things like:
- Recently added Electronic artists
- Random Metal and Aggressive albums
- Most played Relaxed tracks
- Starred Jazz albums
- ...
Note: depending on your database size and/or your hardware, the tag-based recommendation engine may significantly slow down the user interface. You can disable it in the administration settings.
LMS primarily relies on tags to organize your music collection but also supports browsing by directory using the Subsonic/OpenSubsonic API.
It is possible to apply global filters on your collection using genre
, mood
, grouping
, language
, and by music library. More tags, including custom ones, can be added in the database administration settings.
Note: You can use the lms-metadata
tool to get an idea of the tags parsed by LMS.
LMS works best when using the default Picard settings, where the artist
tag contains a single display-friendly value, and the artists
tag holds the actual artist names. This ensures a cleaner, more organized representation of artist names, when multiple artists are involved.
While LMS can manage multiple album artists using the albumartist
tag, it works better when using the custom albumartists
and albumartistssort
tags, similar to how it handles regular artist tags.
Note: if you use Picard, add the following script to include these tags:
$setmulti(albumartists,%_albumartists%)
$setmulti(albumartistssort,%_albumartists_sort%)
LMS supports playlist files in m3u
and m3u8
formats. These playlists are synced during the scan process and are available as public shared playlists.
LMS supports lyrics in lrc
files and embedded track metadata. Both synchronized and unsynchronized lyrics are supported.
- Play/pause: Space
- Previous track: Ctrl + Left
- Next track: Ctrl + Right
See INSTALL.md file.
Any feedback is welcome:
- feel free to participate in discussions if you have questions,
- report any bug or request for new features in the issue tracker,
- submit your pull requests based on the develop branch.