99 lines
2.5 KiB
Markdown
99 lines
2.5 KiB
Markdown
# SJNmusic
|
|
|
|
SJNmusic is a self-hosted music library and playback system with a local daemon, command-line interface, and graphical user interface.
|
|
|
|
It is designed to provide a fast and lightweight way to manage a personal music collection, create playlists, and control playback from multiple clients.
|
|
|
|
## Features
|
|
|
|
* Local music library
|
|
* Fast fuzzy search
|
|
* Playlist management
|
|
* Playback queue
|
|
* HTTP daemon (`sjnmusicd`)
|
|
* Command-line client (`sjnmusic`)
|
|
* Graphical user interface
|
|
* Asynchronous downloads
|
|
* Local metadata database
|
|
* Shuffle and repeat modes
|
|
* Playback history and statistics
|
|
* JSON output for scripting and automation
|
|
|
|
## Components
|
|
|
|
| Component | Description |
|
|
| ----------- | ---------------------------------------------------------------- |
|
|
| `sjnmusicd` | Background daemon responsible for the music library and playback |
|
|
| `sjnmusic` | Command-line client communicating with the daemon |
|
|
| GUI | Graphical interface for everyday use |
|
|
|
|
## Installation
|
|
|
|
Currently there are no official packages.
|
|
|
|
Clone the repository and build using Cargo:
|
|
|
|
```bash
|
|
git clone <repository-url>
|
|
cd SJNmusic
|
|
cargo build --release
|
|
```
|
|
|
|
## Basic Usage
|
|
|
|
Start the daemon:
|
|
|
|
```bash
|
|
target/release/sjnmusicd
|
|
```
|
|
|
|
Show all songs:
|
|
|
|
```bash
|
|
cli/sjnmusic songs
|
|
```
|
|
|
|
Play a song:
|
|
|
|
```bash
|
|
cli/sjnmusic play "song from my libary"
|
|
```
|
|
|
|
Create a playlist:
|
|
|
|
```bash
|
|
cli/sjnmusic pl-new "favourites"
|
|
```
|
|
|
|
Show playback status:
|
|
|
|
```bash
|
|
cli/sjnmusic status
|
|
```
|
|
|
|
## Download Support
|
|
|
|
SJNmusic can optionally use external tools such as `yt-dlp` to import media into the local music library.
|
|
|
|
Downloaded media becomes part of the user's local library and can then be searched, organized, and played like any other local file.
|
|
|
|
SJNmusic itself does **not** provide, host, distribute, or include any copyrighted media.
|
|
|
|
## Legal Notice
|
|
|
|
Users are solely responsible for ensuring that any media they access or download complies with applicable copyright laws and the terms of service of the platforms they use.
|
|
|
|
SJNmusic is a general-purpose music management application. It is intended for managing media that the user is legally permitted to access and store.
|
|
|
|
## Project Status
|
|
|
|
SJNmusic is currently under active development.
|
|
|
|
Interfaces, commands, APIs, and file formats may change between releases.
|
|
|
|
Bug reports, feature requests, and pull requests are welcome.
|
|
|
|
## License
|
|
|
|
This project is licensed under the MIT License.
|