Créer facilement son cloud musical avec Nextcloud

Dans un article publié il y a quelques jours je vous expliquai pourquoi je quittais Spotify pour monter mon propre cloud musical. Dans cet article je vous avais notamment présenté Nextcloud Music, et j'avais fait un petit bilan après quelques semaines d'utilisation. Je n'étais par contre pas entré dans les détails techniques.

Aujourd'hui on va aborder le sujet de manière plus concrète : on va voir comment installer et configurer Nextcloud Music et comment y connecter des applications. Comme vous allez vite vous en apercevoir c'est extrêmement simple à faire, tout s'installe en quelques clics pour peu qu'on ait une instance Nextcloud sous la main !

Vous êtes prêts ? Alors c'est parti !

Nextcloud Music

L'application se présente elle-même comme un lecteur audio et un serveur de musique pour ownCloud et Nextcloud (Nextcloud étant un fork de ownCloud).

En pratique, cette application permet effectivement de gérer et d'écouter sa musique, ses webradios et ses podcasts directement dans Nextcloud, via son navigateur Web. Mais elle fournit également des APIs compatibles avec Ampache et Subsonic, ce qui permet d'y accéder via toute une variété d'applications clientes sur ordinateur (Linux, Windows, macOS,...), sur smartphone (Android, iOS), et même sur des montres connectées (une application pour Garmin watch existe) !

Voici une petite capture d'écran de l'interface Web pour vous donner une idée de la chose :

Capture d'écran : Interface principale de l'application Nextcloud Music

Interface principale de l'application Nextcloud Music

Pour plus de détails, je vous invite à aller lire mon précédent article :

Prérequis

Pour utiliser cette application, vous aurez besoin d'une instance Nextcloud (ou ownCloud). Si ce n'est pas le cas, il n'est jamais trop tard pour se lancer ! Je ne vais pas aborder l'installation de Nextcloud en lui-même car ce n'est pas le sujet de l'article, mais je vais tout de même vous pointer quelques ressources. 😉️

Si vous êtes un administrateur système Linux confirmé, le plus simple c'est de se référer à la documentation officielle de Nextcloud pour savoir comment l'installer et le paramétrer :

Si vous êtes un bidouilleur qui aimerait bien se lancer dans l'autohébergement de Nextcloud (ou d'autres services) mais que vous ne vous sentez pas assez à l'aise ou que tout simplement que vous ne voulez pas trop vous prendre la tête, il existe des solutions comme YunoHost qui permettent d'installer, de configurer et de maintenir tout ça en quelques clics :

Notez qu'il vous faudra également être administrateur de l'instance Nextcloud pour pouvoir y installer des applications.

Installation de l'application

L'installation se fait en quelques clics :

  • rendez-vous dans la page de gestion des applications de Nextcloud (Menu de droite (1) → Applications (2)),
  • puis allez dans la catégorie « Multimedia » à l'aide du menu de gauche (3),
  • cherchez-y l'application nommée « Music »,
  • et enfin cliquez sur « Télécharger et activer » (4).

Et voilà, c'était pas plus compliqué que ça ! 😁️

Capture d'écran : installation de Nextcloud Music

Configuration du dossier contenant les musiques

Par défaut, l'application va chercher la musique dans l'ensemble de vos fichiers ("/"). Dans mon cas, toute ma musique est rangée dans un dossier « Music » situé à la racine de mon espace de stockage ("/Music") ; je vais donc configurer Nextcloud Music pour ne chercher que dans ce dossier-là.

Pour ce faire,

  • ouvrez l'application « Musique » (le nom est traduit en français si votre instance Nextcloud est en français) via le menu du haut (1),
  • puis cliquez sur le bouton « Settings » situé en bas à gauche (2).

Vous pouvez ensuite changer le chemin du dossier via l'option « Chemin vers votre collection de musique » (3).

Capture d'écran : configuration de Nextcloud Music

Ajout de musiques à la bibliothèque

À la première utilisation, vous vous retrouverez face à une bibliothèque complètement vide. Si vous disposez déjà de fichiers musicaux dans votre stockage Nextcloud, cliquez sur le lien « Cliquez ici pour lancer le balayage » situé en plein milieu de l'écran pour que l'application cherche et ajoute vos musiques existantes à la bibliothèque.

Capture d'écran : premier démarrage de l'application Nexcloud Music

Par la suite, Nextcloud Music détectera automatiquement les nouveaux fichiers audio et les ajoutera directement à la bibliothèque.

Applications clientes

Comme je l'ai dit un peu plus tôt, Nextcloud Music fournit des APIs compatibles avec Ampache et Subsonic, deux solutions permettant également de créer des clouds musicaux. Ces APIs nous permettent donc d'utiliser quasiment toutes les applications développées pour ces deux solutions avec notre Nextcloud Music.

Le wiki du projet nous fournit une liste assez complète des applications qui ont été testées compatible :

Comme vous pouvez le constater, il y a pas mal d'applications disponibles. Je vais vous présenter rapidement celles qui ont retenu mon attention et que j'ai pu tester.

Subtracks (Android)

Au début j'avais commencé par utiliser Subtracks sur mon téléphone Android. L'application est jolie et la navigation agréable, mais elle ne semble malheureusement plus activement développée et il lui manque une fonctionnalité essentielle sur mobile : un mode offline pour avoir accès à la musique quand le réseau est indisponible.

Captures d'écran de Subtracks sur Android

Subtracks : écran d'accueil, vue « album » et vue « lecture en cours »

L'application est disponible via F-Droid et via le Play Store. L'APK est aussi téléchargeable sur GitHub. Je vous mets quelques liens ci-dessous pour retrouver tout ça facilement :

Power Ampache 2 (Android)

Pour Android j'ai ensuite découvert Power Ampache 2 qui correspond exactement à mes besoins et qui a une ergonomie qui me plait beaucoup. Elle dispose de plus de quelques fonctionnalités fort pratiques, comme un gros bouton permettant de lancer de la musique plus ou moins aléatoirement sans se poser de questions.

C'est l'application que j'utilise actuellement, et si elle souffre parfois de quelques problèmes de jeunesse, ils sont rapidement corrigés car elle est très régulièrement mise à jour. C'est pour moi la meilleure app dispo sur Android pour me connecter à Nextcloud Music.

Captures d'écran de Power Ampache 2 sur Android

Power Ampache 2 : écran d'accueil, vue « artiste » et vue « lecture en cours »

L'application n'est pas encore disponible sur le Play Store, mais elle peut être installée depuis F-Droid ou via l'APK téléchargeable sur GitHub :

Ultrasonic (Android)

Suite à mon précédent article, on m'a également beaucoup recommandé Ultrasonic pour Android. L'application est sobre, l'interface est simple et efficace, très facile à prendre en main. En naviguant dans les titres par ordre aléatoire, elle permet également de lancer de la musique en un clic, fonctionnalité importante pour moi.

Personnellement je lui préfère Power Ampache 2, mais mon père, lui, préfère Ultrasonic dont il apprécie la simplicité. Merci à tous ceux qui me l'ont recommandé du coup, vous avez fait un heureux ! 😉️

Catures d'écran d'Ultrasonic sur Android

Ultrasonic : liste des albums, liste des titres et lecture en cours

Ultrasonic est disponible via F-Droid et via le Play Store. Il peut également être téléchargé sur GitLab :

Sonixd (Linux, Windows, macOS)

Sur mon PC sous Ubuntu, j'utilise principalement Sonixd pour me connecter à mon cloud musical. J'aime bien son ergonomie et son look. De loin on lui donnerait même un petit air de Spotify. À noter que l'application est également disponible pour Windows et macOS.

Capture d'écran de l'application Sonixd sous Linux

Écran d'accueil de Sonixd

Le principal défaut de Sonixd est d'être une application Electron (en résumé il s'agit d'un navigateur Web affichant une interface en HTML / CSS / JavaScript), ce qui fait qu'elle est relativement lourde, tout comme Spotify, Discord, Slack, et bien d'autres applications « modernes » ; il faut faire avec... 😅️

Point important à noter : l'application n'est plus activement développée, une réécriture est en cours sous le nom de Feishin. Cette nouvelle application semble très prometteuse mais la compatibilité avec Subsonic n'a pas encore été réimplémentée, il faudra donc se montrer un peu patient avant de switcher. 😉️

Si vous souhaitez télécharger Sonixd, vous trouverez des releases pour l'ensemble des systèmes supportés sur GitHub :

Pour faire fonctionner Sonixd sous Ubuntu, il vous faudra installer une petite dépendance avant de commencer :

sudo apt install libfuse2

Ensuite, vous pouvez télécharger le fichier .AppImage sur GitHub, puis le rendre exécutable à l'aide de la commande suivante :

chmod +x Sonixd-*-linux-x86_64.AppImage

et enfin le lancer soit en double-cliquant dessus, soit via la commande suivante :

./Sonixd-0.15.5-linux-x86_64.AppImage --no-sandbox

Supersonic (Linux, Windows, macOS)

Dernier client dont je voulais parler : Supersonic. Son ergonomie est moins recherchée que celle de Sonixd et va droit au but : simple et efficace. L'application reste cependant agréable à utiliser au quotidien.

Le principal avantage de Supersonic par rapport à Sonixd est sa légèreté : il tourne parfaitement sur le vieux netbook qui me sert à écouter de la musique dans le salon / la cuisine.

Capture d'écran de l'application Supersonic sous Linux

Vue « Album » de Supersonic

Cette application est disponible sur FlatHub pour Linux et des fichiers sont également téléchargeables sur GitHub pour l'ensemble des plateformes supportées :

Connexion des applications clientes

La connexion d'applications clientes à Nextcloud Music est assez simple mais il est nécessaire de leur créer préalablement un mot de passe d'accès aux APIs. On ne va en effet pas utiliser le mot de passe de notre compte Nextcloud pour la connexion des applications.

Génération d'un mot de passe API pour les applications

Pour générer un mot de passe d'accès à une application,

  • rendez-vous sur la page de configuration de Nextcloud Music (1),
  • puis naviguez jusqu'à la section « Ampache and Subsonic » (2).
  • Entrez ensuite une description dans le champ de texte prévu à cet effet (3). Cette description est là pour que vous vous y retrouviez, vous pouvez y mettre ce que vous voulez (par exemple le nom du logiciel ou de la machine qui va utiliser cet accès).
  • Enfin validez avec le bouton « Générer un mot de passe de l'API » (4).
Capture d'écran : étapes de création du mot de passe API

Une fois ceci fait, Nextcloud Music vous affichera le nom d'utilisateur et le mot de passe nouvellement créé. Notez bien le mot de passe car il ne sera jamais réaffiché par la suite.

Pour la configuration des applications clientes, vous aurez besoin des trois informations suivantes :

  • l'URL de l'API Ampache (1) ou Subsonic (2) suivant le client choisi,
  • le nom de votre utilisateur Nextcloud (3),
  • et le mot de passe que l'on vient de générer (4).
Capture d'écran : informations à configurer dans les applications

Une fois en possession de ces informations, vous pouvez passer à la configuration des applications de votre choix.

Exemple de configuration avec Sonixd

Histoire d'illustrer la connexion d'une application à Nextcloud Music, je vais vous expliquer comment faire en prenant Sonixd comme exemple. Lors du premier lancement, l'application vous invitera à lui fournir les informations nécessaires à la connexion au serveur :

  • Pour le champ « Server type » il faudra sélectionner « Subsonic » (Sonixd supporte aussi les clouds basés sur Jellyfin).
  • Puis il faudra remplir l'adresse de l'API Subsonic récupérée dans les paramètres de Nexcloud Music dans le champ « Server » (l'adresse devrait ressembler à "https://your.nextcloud.org/apps/music/subsonic").
  • Ensuite vous pouvez renseigner votre nom d'utilisateur Nextcloud dans le champ « Username »,
  • puis le mot de passe API que vous avez générés depuis les paramètres de Nexcloud Music dans le champ « Password » (ATTENTION : il ne s'agit pas de votre mot de passe Nexcloud !).
  • Enfin, il faudra cocher la case « Legacy auth (plaintext) »,
  • et terminer en cliquant sur le bouton « Connect ».
Capture d'écran de l'écran de connexion de l'application Sonixd

Connexion de Sonixd à Nextcloud Music

Si tout s'est bien passé, vous devriez pouvoir commencer à écouter votre musique ! 😀️

Pour les autres applications la procédure sera assez similaire, il faut juste bien renseigner l'adresse de la bonne API (Subsonic ou Ampache) en fonction de ce que supporte le logiciel. Pour les clients Subsonic il faudra généralement cocher une case pour permettre la connexion à Nextcloud Music. Le nom de cette case varie d'un client à l'autre mais vous trouverez l'information sur le wiki de Nextcloud Music.

Utilisation avancée & Trouble Shooting

Je vais ici présenter quelques commandes pour forcer la mise à jour de la bibliothèque musicale et des métadonnées contenues dans les fichiers. Lors d'une utilisation « normale » de Nextcloud et de Nextcloud Music vous ne devriez pas en avoir besoin, les changements sont automatiquement détectés. Mais moi je suis développeur et j'ai codé (un peu à l'arrache) des scripts pour automatiser le traitement de ma musique :

  • trouver les nouveaux morceaux sur mon PC,
  • les réencoder dans un format adapté à une utilisation dans un cloud,
  • et les synchroniser avec mon serveur (avec rsync, donc sans passer par le WebDav de Nextcloud).

Il faudrait aussi que je passe un coup de ReplayGain sur les musiques pour en normaliser le niveau sonore mais j'ai pas encore eu le temps de me pencher sur la question... 🤔️

Du fait de mon utilisation particulière j'ai donc besoin :

  • de demander à Nextcloud de rescanner mes dossiers pour y détecter les nouveaux fichiers (et ceux supprimés),
  • de demander à Nexcloud Music d'indexer les nouvelles musiques,
  • et aussi de mettre à jour les métadonnées des fichiers modifiés.

Commande « occ » de Nextcloud

Nextcloud fournit une commande nommée occ permettant de lancer des tas d'actions sur Nextcloud lui-même et sur les applications installées. Cette commande est un fichier PHP situé à la racine de votre installation Nextcloud :

$ ls -l ./nextcloud/
[...]
-rw-r--r--  1 xxxxxxxxx xxxx     155 Jun 25 10:23 index.html
-rw-r--r--  1 xxxxxxxxx xxxx    4103 Jun 25 10:23 index.php
drwxr-xr-x  6 xxxxxxxxx xxxx       9 Jun 28 14:06 lib
-rw-r--r--  1 xxxxxxxxx xxxx     283 Jun 25 10:23 occ         <-- commande "occ"
[...]

Pour la lancer vous pouvez normalement vous rendre dans le dossier et taper quelque chose dans ce genre-là :

cd my-nextcloud/
php occ --help

Pour que ça marche, il faut que php-cli soit installé sur la machine, et dans la bonne version (la même version que celle que vous utilisez pour faire tourner Nextcloud). Généralement vous pouvez l'installer avec une commande similaire à celle-ci sous Debian / Ubuntu :

sudo apt install php8.x-cli

Il faudra bien sûr remplacer "8.x" par la version de PHP à utiliser (par exemple : "php8.3-cli").

De plus, il faut faire attention aux points suivants :

  • Si plusieurs versions de PHP sont installées sur la machine, il peut être intéressant de préciser cette version : au lieu d'appeler simplement la commande "php", on va par exemple appeler "php8.3".
  • Dans mon cas, il faut également que je force l'activation d'APC dans la CLI pour que ça fonctionne, ce qui se fait à l'aide de l'option "--define apc.enable_cli=1".

Pour des raisons de lisibilité, je vais par la suite écrire "php occ [...]" dans mes exemples mais en réalité ma commande ressemble plutôt à ceci :

php8.3 --define apc.enable_cli=1 ./occ [...]

Aider Nextcloud à détecter les nouveaux fichiers

Pour demander à Nextcloud de rescanner un dossier pour y trouver les nouveaux fichiers (et ceux supprimés), il faudra utiliser la commande "files:scan" avec le paramètre "--path" suivi du chemin du dossier tel qu'il est connu de Nextcloud. Ce chemin est composé de la manière suivante :

/<USER>/files/<PATH>

Pour le dossier "/Music" de l'utilisateur "flozz" ça nous donnerait donc "/flozz/files/Music". Si on recolle tout ça ensemble ça nous donne la commande :

php occ files:scan --verbose --path /flozz/files/Music"

Indexer les nouveaux fichiers musicaux

Une fois que les nouveaux fichiers sont connus de Nextcloud grâce à la commande précédente, on peut demander à Nextcloud Music de les indexer à l'aide de la commande "music:scan" suivie du nom de l'utilisateur à traiter, ce qui nous donne une commande similaire à :

php occ music:scan --verbose flozz

Mettre à jour les métadonnées des fichiers modifiés

Et enfin, on peut demander à Nextcloud Music de mettre à jour les métadonnées présentes dans sa base de données pour les fichiers qui ont été modifiés depuis leur scan initial. Pour ce faire, on reprend la commande précédente, en lui ajoutant l'option "--rescan-modified" :

php occ music:scan --verbose --rescan-modified flozz

C'était simple n'est-ce pas ?

Comme vous avez pu le constater, l'installation de Nextcloud Music est très simple, tout se fait en quelques clics. Si vous avez déjà votre instance Nextcloud, ajouter le service de streaming musical ne demande presque aucun effort !

J'espère ne pas vous avoir fait peur avec la dernière partie sur la ligne de commande. Je l'ai surtout ajoutée comme un mémo pour moi-même et pour les éventuelles personnes qui auraient envie de bidouiller des trucs à la main, mais je le répète, son usage n'est pas obligatoire ! 😉️

Voilà, si cet article vous a plus, n'oubliez pas de mettre un pouce bleu et à vous abonner à la ch-... Arf oui non on est pas sur YouTube là ! Je vais donc juste me contenter de vous souhaiter une bonne journée ! 😅️