Service auto-hébergé
jeffvli/feishin avatar
jeffvli/feishin

Feishin : un lecteur de musique auto-hébergé pour les serveurs Navidrome, Jellyfin et Subsonic

Un lecteur de musique auto-hébergé moderne. Feishin prend en charge tout serveur de musique qui implémente une API compatible Navidrome, Jellyfin ou OpenSubsonic.

9 872 étoiles524 forksTypeScriptGPL-3.0

En bref

De quoi s’agit-il ?
Feishin est une réécriture de Sonixd qui lit la musique des serveurs compatibles Navidrome, Jellyfin et OpenSubsonic, avec des backends de lecture MPV et Web.
À qui s’adresse-t-il ?
Feishin est un lecteur de musique auto-hébergé avec un client de bureau recommandé, une prise en charge de Docker et une compatibilité avec plusieurs API de serveur. Son README comprend des instructions d'installation, des options de variables d'environnement et des solutions aux problèmes courants.
Puis-je l’utiliser commercialement ?
Oui, sous conditions. GPL-3.0 est une licence copyleft : si vous distribuez un logiciel qui l’inclut, vous devez publier le code source de ce logiciel sous la même licence. Un usage interne, sans distribution, ne déclenche pas cette obligation.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 1 jour.
En quel langage est-il écrit ?
Principalement TypeScript, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Une réécriture de Sonixd avec deux backends de lecture

Feishin est un lecteur de musique auto-hébergé écrit en TypeScript. Le README le présente comme une réécriture de Sonixd, un projet antérieur du même auteur. Le lecteur prend en charge deux backends audio : un backend de lecture MPV pour le client de bureau et un backend de lecture Web pour une utilisation dans le navigateur. La liste des fonctionnalités inclut une interface moderne, le scrobbling de la lecture vers votre serveur, un éditeur de listes de lecture intelligentes spécifiquement pour Navidrome, et la prise en charge des paroles synchronisées et non synchronisées. Les métadonnées du dépôt montrent que le projet n'est pas archivé, avec une branche de développement active nommée 'development'. Le README renvoie également à une version Web hébergée et à un tableau de tâches pour les demandes de fonctionnalités.

Client de bureau et notes de plateforme

Le client de bureau est la méthode recommandée pour exécuter Feishin. Il prend en charge à la fois les backends de lecture MPV et Web et inclut la récupération intégrée des paroles. Les utilisateurs de macOS 12 ou supérieur doivent supprimer l'application de la quarantaine en suivant les instructions liées dans le README. Les touches média sous macOS nécessitent d'accorder à Feishin la permission de client d'accessibilité de confiance, et un redémarrage est nécessaire après cela. Les utilisateurs Linux peuvent installer Feishin depuis Flathub ou sous forme d'AppImage. Le script d'installation AppImage télécharge la dernière image, la rend exécutable, installe les icônes requises et génère un fichier .desktop pour le lanceur d'applications. Le script offre également une option pour ajouter des arguments de lancement pour le mode Wayland natif expérimental, et une commande de suppression supprime les fichiers téléchargés.

Web, Docker et Docker Compose

Une version Web hébergée de Feishin est disponible sur feishin.vercel.app, mais le client Web ne prend en charge que le backend de lecture Web. Feishin est également distribué sous forme d'image Docker hébergée sur ghcr.io. Le README fournit une commande docker run qui mappe le port 9180 et exécute la dernière image. Un extrait Docker Compose est fourni, qui fonctionne également avec Portainer. Le fichier Compose prend en charge des variables d'environnement pour un nom de serveur prédéfini, un verrou de serveur, un type de serveur, une URL de serveur, une URL distante, une authentification héritée pour les serveurs Subsonic et la désactivation des analyses. La variable d'analyse désactive le suivi Umami lorsqu'elle est définie sur true.

Configuration initiale et configuration du serveur

Au premier démarrage, Feishin demande le chemin du binaire MPV. Si MPV n'est pas installé, le README renvoie vers sa page d'installation. Après le redémarrage, l'utilisateur sélectionne un serveur en ouvrant le menu, en choisissant Gérer les serveurs, puis en ajoutant un serveur avec l'URL complète incluant le protocole et le port. Pour Navidrome, le README recommande d'enregistrer le mot de passe et d'augmenter le paramètre SessionTimeout dans Navidrome, par exemple à 72 heures. Les utilisateurs Linux peuvent choisir entre les magasins de mots de passe libsecret et kwallet, définis dans Paramètres > Fenêtre > Mots de passe / coffre-fort. Le README mentionne également que le client de bureau inclut la récupération intégrée des paroles.

Variables d'environnement pour les déploiements avancés

Plusieurs variables d'environnement facultatives modifient le fonctionnement de Feishin. PUBLIC_PATH permet d'héberger sur un sous-chemin, comme /feishin. SERVER_NAME, SERVER_TYPE et SERVER_URL peuvent coder en dur un serveur, et SERVER_LOCK empêche les utilisateurs de modifier ces paramètres si les trois sont définis. LEGACY_AUTHENTICATION active ou désactive l'authentification en texte clair pour les serveurs Subsonic/OpenSubsonic. REMOTE_URL est destiné aux serveurs ayant une URL publique séparée, comme une ShareURL Navidrome. ANALYTICS_DISABLED désactive les analyses Umami dans les versions Docker et Web. Les paramètres de l'application comme le thème et la langue peuvent être remplacés au premier lancement à l'aide de variables préfixées par FS_, documentées dans la documentation des variables d'environnement de paramètres.

Problèmes connus et dépannage

La FAQ traite d'un problème courant où MPV ne fonctionne pas ou alterne rapidement entre pause et lecture. La première étape consiste à vérifier le chemin du binaire MPV et à redémarrer l'application, puis à réinstaller MPV si nécessaire. Les versions connues pour fonctionner incluent v0.35.x et v0.36.x, tandis que v0.34.x est répertoriée comme cassée. Sous Linux, une erreur concernant l'assistant de bac à sable SUID peut survenir lorsque les espaces de noms non privilégiés sont désactivés. La solution consiste à rendre chrome-sandbox setuid avec chmod 4755 et chown root:root. Ubuntu 24.04 a modifié le comportement des espaces de noms, et le README renvoie aux notes de version d'Ubuntu pour des correctifs possibles.

Compatibilité des serveurs, thèmes et développement

Feishin fonctionne avec tout serveur implémentant une API compatible Navidrome, Jellyfin ou OpenSubsonic. Le README liste Navidrome, Jellyfin et plusieurs serveurs compatibles OpenSubsonic, notamment Airsonic-Advanced, Ampache, Astiga, Funkwhale, Gonic, LMS, Nextcloud Music, Supysonic et Qm-Music. Plex n'est pas pris en charge nativement ; un fork par lux032 fournit le support Plex. Des thèmes personnalisés peuvent être ajoutés à l'application de bureau en déposant des fichiers JSON dans le dossier Themes, accessible depuis Paramètres > Général > Thème > Ouvrir le dossier. Le développement est basé sur electron-vite, utilise Node v23.11.0 et propose une gamme de scripts pnpm pour construire, empaqueter, publier, vérifier les types, lint et générer les fichiers i18n. Les traductions sont gérées via Weblate.

Conclusion éditoriale

Feishin est un lecteur de musique auto-hébergé avec un client de bureau recommandé, une prise en charge de Docker et une compatibilité avec plusieurs API de serveur. Son README comprend des instructions d'installation, des options de variables d'environnement et des solutions aux problèmes courants.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté