A modern self-hosted music player.
Go to file
darkpixlz 6e677d7454
Image Resolution Setting (#492)
* Add customizable resolution for the fullscreen player image

---------

Co-authored-by: iiPython <ben@iipython.dev>
Co-authored-by: Benjamin <iipython@proton.me>
2024-02-13 18:00:59 -08:00
.erb [Remote] Full PWA support, misc bugfixes (#280) 2023-10-18 10:49:09 -07:00
.github Reverse workflow changes 2024-01-14 08:32:33 -08:00
.husky Add ability to save/restore queue (#111) 2023-05-21 02:29:58 -07:00
.vscode [bugfix]: update mpris volume when set by mpris 2024-02-07 20:51:07 -08:00
assets Add new app icon (#232) 2023-09-21 11:24:20 -07:00
media Add new app icon (#232) 2023-09-21 11:24:20 -07:00
release/app Bump the npm_and_yarn group across 2 directories with 2 updates 2024-02-10 08:43:06 +00:00
src Image Resolution Setting (#492) 2024-02-13 18:00:59 -08:00
.editorconfig Add files 2022-12-19 17:44:40 -08:00
.eslintignore Add files 2022-12-19 17:44:40 -08:00
.eslintrc.js Fix linter rules 2023-07-31 17:17:25 -07:00
.gitattributes Add files 2022-12-19 17:44:40 -08:00
.gitignore Add files 2022-12-19 17:44:40 -08:00
.prettierrc Add css modules, remove styled components linters and utils 2023-07-23 05:16:29 -07:00
.stylelintrc.json Allow css vendor-prefix 2023-09-21 17:41:19 -07:00
CHANGELOG.md Remove server files 2022-12-19 17:44:45 -08:00
Dockerfile [feature]: support running feishin on custom path (#307) 2023-10-17 22:10:53 -07:00
LICENSE Add files 2022-12-19 17:44:40 -08:00
ng.conf.template [feature]: support running feishin on custom path (#307) 2023-10-17 22:10:53 -07:00
package-lock.json Merge pull request #501 from kgarner7/allow-no-mpv 2024-02-13 16:16:01 -08:00
package.json Merge pull request #501 from kgarner7/allow-no-mpv 2024-02-13 16:16:01 -08:00
README.md [bugfix]: default go libsecret, support changing secret store (#493) 2024-02-09 23:20:01 +00:00
tsconfig.json [Remote] Full PWA support, misc bugfixes (#280) 2023-10-18 10:49:09 -07:00
vercel.json Add vercel rewrite 2023-08-08 00:23:38 -07:00

logo

Feishin

License Release Downloads

Discord Matrix

Rewrite of Sonixd.

Features

  • MPV player backend
  • Web player backend
  • Modern UI
  • Scrobble playback to your server
  • Smart playlist editor (Navidrome)
  • Synchronized and unsynchronized lyrics support
  • Request a feature or view taskboard

Screenshots

Getting Started

Download the latest desktop client. The desktop client is the recommended way to use Feishin. It supports both the MPV and web player backends, as well as includes built-in fetching for lyrics.

If you're using a device running macOS 12 (Monterey) or higher, check here for instructions on how to remove the app from quarantine.

Web and Docker

Visit https://feishin.vercel.app to use the hosted web version of Feishin. The web client only supports the web player backend.

Feishin is also available as a Docker image. The images are hosted via ghcr.io and are available to view here. You can run the container using the following commands:

# Run the latest version
docker run --name feishin -p 9180:9180 ghcr.io/jeffvli/feishin:latest

# Build the image locally
docker build -t feishin .
docker run --name feishin -p 9180:9180 feishin

Configuration

  1. Upon startup you will be greeted with a prompt to select the path to your MPV binary. If you do not have MPV installed, you can download it here or install it using any package manager supported by your OS. After inputting the path, restart the app.

  2. After restarting the app, you will be prompted to select a server. Click the Open menu button and select Manage servers. Click the Add server button in the popup and fill out all applicable details. You will need to enter the full URL to your server, including the protocol and port if applicable (e.g. https://navidrome.my-server.com or http://192.168.0.1:4533).

  • Navidrome - For the best experience, select "Save password" when creating the server and configure the SessionTimeout setting in your Navidrome config to a larger value (e.g. 72h).
    • Linux users - The default password store uses libsecret. kwallet4/5/6 are also supported, but must be explicitly set in Settings > Window > Passwords/secret score.
  1. Optional - If you want to host Feishin on a subpath (not /), then pass in the following environment variable: PUBLIC_PATH=PATH. For example, to host on /feishin, pass in PUBLIC_PATH=/feishin.

FAQ

MPV is either not working or is rapidly switching between pause/play states

First thing to do is check that your MPV binary path is correct. Navigate to the settings page and re-set the path and restart the app. If your issue still isn't resolved, try reinstalling MPV. Known working versions include v0.35.x and v0.36.x. v0.34.x is a known broken version.

What music servers does Feishin support?

Feishin supports any music server that implements a Navidrome or Jellyfin API. Subsonic API is not currently supported. This will likely be added in later when the new Subsonic API is decided on.

Development

Built and tested using Node v16.15.0.

This project is built off of electron-react-boilerplate v4.6.0.

Translation

This project uses Weblate for translations. If you would like to contribute, please visit the link and submit a translation.

License

GNU General Public License v3.0 ©