Feishin – modern self-hosted music player

In Operation

Here’s an image of Feishin in action.

Feishin playing an album
Click image for full size

Whether you like the modern UI is largely a matter of personal taste. On balance, we’re not over enthusiastic about the design. For example, too much of the screen estate is wasted (and we’re not talking about showing the expanded cover art). A redesign would improve matters.

Most music players don’t show bitrates of tracks by default. Fortunately, information you don’t want to see can be hidden. Click the cog, and we can select/deselect columns.

Feishin customize columns

It’s good that Feishin offers gapless playback. That’s a big plus. This functionality is a benefit of using mpv as the playback backend.

The term gapless playback sometimes causes confusion. Gapless playback means tracks flow into the next song without pause. This allows seamless transitions from track to track. This is so important for albums that were designed to have the tracks run together. It’s not just classical music that so often mandates gapless playback. Listening to electronic music, concept albums, and progressive rock is often ruined when artificial gaps are inserted between tracks.

Playlist support is good. Other features include lyrics support, scrobble playback, and if you’re using the Navidrome server there’s a smart playlist editor. We didn’t test the latter as we tested using Jellyfin solely.


If you’re looking to listen to your music collection via a music server, Feishin makes for a good but not spectacular frontend.

With a small MP3 music CC licensed collection, ps_mem reports Feishin’s memory footprint is a hefty 674MB of RAM. We also need to factor in Jellyfin and mpv as both are being used. Their memory footprint is around 370MB combined. Overall, this comes in over 1GB of RAM which is hugely disappointing simply to listen to music.

If Feishin was not such a memory hog, it would appeal to music lovers who want to run a music server. For a much more frugal solution, we suggest using RompЯ as the browser-based client, and MPD as the backend.

Developer: Jeff
License: GNU General Public License v3.0

Feishin is written in TypeScript. Learn TypeScript with our recommended free books and free tutorials.

Pages in this article:
Page 1 – Introduction and Installation
Page 2 – In Operation and Summary

Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Inline Feedbacks
View all comments