Feishin : client et agrégateur de serveurs de musique Navidrome, Jellyfin et Subsonic

Feishin : client et agrégateur de serveurs de musique Navidrome, Jellyfin et Subsonic


Je crois que j’ai ENFIN trouvé le lecteur de musique que j’aime !

feishin1

J’ai jamais été consommateur de musique, de qualité lossless du moins (Rikito, si tu me lis), au point d’être un gros membre de WCD et ses successeurs où je ne suis d’ailleurs plus.

Mais en bon geek curieux, j’ai toujours eu un œil sur les solutions d’hébergement/téléchargement/streaming de musique. Je me contente d’ajouter des .torrent à Decypharr/AllDebrid, ne voulant plus stocker directement chez moi (hormis un peu de partage via DecypharsSeed) et ne supportant plus Lidarr (même en hébergeant mon instance pour les métadonnées).


Il m’a cependant été impossible de trouver un lecteur (Web et/ou iOS/Android) qui réponde à mes besoins : beau & moderne, simple, avec recherche par genres, artistes similaires, playlists et paroles notamment. En gros : une copie de Spotify.

J’ai relancé il y a quelques semaines mon Navidrome qui prenait la poussière dans un vieux reste de stack audio auto-hébergée. Après avoir des années utilisé Subsonic et dérivés, Plex ou encore Jellyfin pour jouer un peu de musique, j’étais passé sur Navidrome pour sa modularité et « bonne allure » de serveur de streaming dédié à ce type de médias.
Comme je veux l’utiliser avec Decypharr/AD, j’ajuste les volumes en conséquence :
– /mnt/:/mnt/:rshared
– /mnt/Fichiers/decypharr/qbit/music:/music:ro

Et j’utilise toujours Spotify, en sus de Deezer, pour les métadonnées. Pour le reste des variables d’environnement, tout est expliqué dans la documentation.
Pour cet article je n’ai mis que 3 albums en test.

services:
  navidrome:
    image: deluan/navidrome:latest
    user: 1000:1000
    ports:
      - "4533:4533"
    restart: always
    environment:
      - TZ=Europe/Paris
      - ND_BASEURL=https/audio.domain.tld
      - ND_AGENTS=spotify,deezer
      - ND_DEEZER_ENABLED=true
      - ND_ENABLEDOWNLOADS=false
      - ND_ENABLEEXTERNALSERVICES=false
      - ND_HTTPSECURITYHEADERS_CUSTOMFRAMEOPTIONSVALUE=SAMEORIGIN
      - ND_IGNOREDARTICLES="The El La Los Las Le La Les Os As O A Du"
      - ND_IMAGECACHESIZE=10GB
      - ND_LASTFM_ENABLED=false
      #- ND_LISTENBRAINZ_BASEURL=https://mb.domain.tld
      - ND_LISTENBRAINZ_ENABLED=true
      - ND_RECENTLYADDEDBYMODTIME=true
      - ND_SCANNER_ENABLED=true
      - ND_SCANNER_SCHEDULE="0 * * * *"
      - ND_SCANNER_WATCHERWAIT="10s"
      - ND_SCANNER_ARTISTJOINER= " | "
      - ND_SCANNER_FOLLOWSYMLINKS=true
      - ND_SCANNER_PURGEMISSING=always
      - ND_SEARCHFULLSTRING=true
      - ND_SPOTIFY_ID=xxx
      - ND_SPOTIFY_SECRET=xxx
      - ND_SUBSONIC_ARTISTPARTICIPATIONS=true
    volumes:
      - /mnt/:/mnt/:rshared
      - /mnt/Docker/navidrome:/data
      - /mnt/Fichiers/decypharr/qbit/music:/music:ro


feishin4

Mais il me manquait encore surtout un tri par genres et… une WebUI plus moderne.


Je suis tombé sur Feishin qui est à la fois un client (desktop/Web) de streaming pour Navidrome, Jellyfin et Subsonic et un agrégateur de serveurs puisqu’on peut en ajouter plusieurs. On peut donc imaginer un partage de serveurs de musique Jellyfin entre amis.

feishin74

Gavé d’options !


Attention, c’est avant-tout un client desktop (tous OS) et donc ne propose pas de système d’authentification. Ce qui fait que lorsque comme moi on l’installe en Docker pour en profiter hors LAN (via mon iPhone notamment), il faut ajouter un système d’authentification tel qu’Authelia ou bien « à l’ancienne », via Nginx proxy Manager dans mon cas :

Sur une machine Linux (ou dans un Docker), installer de quoi créer le mot de passe encoder à filer ensuite à NPM.

sudo apt install apache2-utils


Puis, créer un fichier htpasswd avec un utilisateur et un mot de passe dans un dossier auquel accède NPM

root@StreamBox:/home/aerya/docker/npm/data# htpasswd -c htpasswd aerya
New password:
Re-type new password:
Adding password for user aerya


Et on peut alors passer ça en paramètre dans NPM pour avoir le fameux pop-up d’identification quand on va sur l’URL concernée

feishin12

Comme j’ai déjà Navidrome qui tourne sur https://audio.domain.tld, je mets Feishin sur https://music.domain.tld

feishin13

Et le compose de Navidrome est très léger vu que ce n’est qu’une interface pour un autre outil

services:
    feishin:
        container_name: feishin
        image: 'ghcr.io/jeffvli/feishin:latest'
        environment:
            - SERVER_NAME=Musique
            - SERVER_LOCK=false
            - SERVER_TYPE=navidrome
            - SERVER_URL=https://audio.domain.tld
            - TZ=Europe/Paris
        ports:
            - 9180:9180
        restart: always

À la 1ère connexion il faut ajouter ton serveur. Il propose par défaut celui configuré dans le compose du dessus

feishin2
feishin3


Sur AndroidTV, j’utilise Symfonium de Tolriq, que j’ai bien connu dans une autre vie. Application payante (onetime 7-10€ selon frais) mais qui vaut le coup, jetez un œil à sa présentation sur le PlayStore.


Et sur iPhone, j’avais Amperfy et suis passé depuis peu sur Arpeggi, qui est en TestFlight (et closed source hélas…).

Loading

S’abonner
Notification pour
guest
0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires