It's been a while since my last post on the subject, but here are some exciting news about #funkwhale: the #federation is actually usable now, as shown in the video below:
1. We follow another instance
2. We scan it's library
3. We import some tracks from it
4. We play those tracks from our own instance
You can't imagine how happy I am to see this actually working, after weeks working on the protocol/invisible stuff!
Also, on the example video, the files are never hosted on your instance unless you listen to them. Basically, the first time you listen to a federated track, the track is downloaded from the source instance and cached on your instance.
It's removed after a configurable duration, meaning you can federate with a lot of instance without eating to much disk space.
Ping @nicod_ :D cf mon message précédent ;)
@eliotberriot Ouais, ça a l'air vraiment cool.
Y'a beaucoup d'instances ? Faut que je teste ça en auto-hébergement, j'ai des dizaines de Go à partager avec les potes :)
@eliotberriot Ah, et sinon j'adore le nom :)
Et tu devrais remettre l'url à chaque fois...
@nicod_ Effectivement, au cas ou : https://funkwhale.audio/
@nicod_ pour l'instant il y a quatre ou cinq instances qui sont up je crois, mais la seule qui est publique et ouverte c'est https://funkwhale.mastodon.host/, gérée par @gled
@eliotberriot @gled J'ai un vieux NAS synology, faut que je voie si je peux le réinstaller pour faire tourner funkwhale et d'autres trucs en auto hébergement du coup.
Je vais regarder ça ce WE.
@nicod_ génial, hésite pas à passer sur https://riot.im/app/#/room/#funkwhale:matrix.org pour discuter de tout ça et poser tes questions.
Je sais pas si funkwhale tournera sur Synology, ça sera intéressant de tester :D
@eliotberriot Je pense pas m'emm... avec DSM mais installer une debian dessus, pour avoir les mains libres.
Pour le plaisir de bricoler quoi :)
Une autre question : n'importe qui peut venir écouter de la musique sur une instance funkwhale ? on peut gérer des autorisations ? Le but c'est aussi de filer l'adresse aux copains pas geeks, voir qu'ils puissent participer en uploadant aussi...
@nicod_ il va y avoir du boulot sur les permissions dans un avenir proche mais d'ores et déjà voici ce que tu as par défaut avec ton instance funkwhale:
- Un contrôle sur qui peut écouter la musique : tout le monde, même anonyme, ou seulement les utilisateurs authentifiés.
- Un contrôle sur les inscriptions: ouvertes ou fermées
- Un contrôle sur qui peut importer de la musique dans l'instance (il faut rajouter les permissions aux personnes concernées)
@nicod_ donc tu peux tout à fait mettre ton instance à disposition pour des ami.e.s ou de la famille :)
@eliotberriot Gé-nial :)
@eliotberriot En train d'installer une debian jessie en chroot sur mon NAS synology (qui est en DSM 4).
Ça peut marcher tu crois ?
@eliotberriot Ah mais je suis bloqué par le kernel du NAS, qui reste en 2.6 😕
DSM 6 peut être ?
Je tente...
@nicod_ euh je sais pas du tout. Funkwhale tourne de source sûre sur Jessie, donc a partir du moment où ton install est propre et ou tu peux installer les dépendances, je pense que ça devrait le faire ?
@eliotberriot
Pas pour Docker apparemment, qui demande un kernel au moins 3.2, et j'étais en 2.6
En train d'upgrade le nas...
@nicod_ après tu peux faire tourner funkwhale sans docker. Mais dans tous les cas, 2.6, ça commence à dater un peu, donc c'est peut-être pas plus mal d'upgrade.
@eliotberriot
J'ai pas vu dans la doc tu as un lien ?
@nicod_ bien sûr, tu trouveras ça ici https://docs.funkwhale.audio/installation/debian.html
@eliotberriot
Merci, j'ai mal lu effectivement. Mais la mise à jour fera pas de mal.
@nicod_ pas de soucis !
@eliotberriot Ah ben ça répond à ma précédente question :)
@eliotberriot Excellent
@eliotberriot c'est si beau *_*
@Panda_Fuligineux je suis assez content du résultat oui, c'est fluide. Après là je suis en local, il faudra tester dans la vraie fédération, mais déjà si ça tourne bien en local c'est pas mal :p
@eliotberriot Wow ! Bravo ! Faut vraiment que j'essaye.
On peut écouter des morceaux d'une autre instance sans les "télécharger" chez soi ?
@eliotberriot Youyouyouyou
@eliotberriot OMFG so its a decentralized soundcloud, isnt it ? 😍
@adidal yes, it is (I was more of a grooveshark user, so this was my target :D).
Note that this work is still not merged/released. It should happen pretty soon!
@igor je suis limité à 500 caractères par message donc je vais te répondre en plusieurs messages :p
Au niveau base de donnée, ce qui vient de la fédération et ce qui vient de la collection locale de l'instance est stocké de façon identifiable et exploitable. Il n'y a pas de contrôles pour le moment, mais c'est techniquement simple de filtrer seulement les pistes locales dans la recherche, par exemple.
@igor pour nginx et le flac, tu n'es pas la première personne à me remonter ça. Ce sont des problèmes ou des manques connus, mais j'ai manqué de temps ou de compétences (pour Apache) pour les traiter jusqu'à maintenant.
Une option en attendant d'avoir un config apache propre, c'est de faire tourner le nginx dans du docker (je l'ai fait avec quelqu'un, ça fonctionne), et d'utiliser apache comme reverse proxy devant.
@igor concernant ton besoin, à savoir ne pas dupliquer ta collection, là aussi, c'est un problème connu, (cf https://code.eliotberriot.com/funkwhale/funkwhale/issues/153).
Pour le moment, funkwhale copie les fichiers à l'import, ce qui est bloquant dans ton cas. Cela va changer dès qu'on aura bosser sur ce ticket, qui permettra de laisser le choix à l'utilisateur (on copie ou pas).
Cela va demander un peu de changements, mais je suis assez confiant dans le fait qu'on va arriver à le faire sans trop de problèmes.
@igor dernier point (si je n'ai rien oublié), sur la qualité des métadonnées stockées dans Funkwhale : on est clairement en deçà de ce que tu décris. On stocke relativement peu d'informations.
Le bon côté c'est que l'on stocke les identifiants musicbrainz systématiquement (dans la mesure où on les a), donc on peut facilement récupérer ces infos.
Mais il faudra rajouter des champs dans me schéma de base de données de funkwhale, et aussi implémenter la recherche correspondante.
@igor je ne te cache pas que ce dernier point n'est pas une priorité *pour le moment*, vu tout ce qu'il y a faire sur d'autres aspects.
Cela ne veut pas dire que cela n'arrivera jamais, mais je préfère être réaliste, vu qu'on est assez peu à contribuer du code pour le moment :)
@igor pour moi, la difficulté ne réside pas tant dans la partie indexation/recherche que dans la partie interface, car offrir des recherches avancées sur des filtres complexes ça demande du développement, surtout si on ne veut pas déstabiliser les personnes qui ont une utilisation plus simple.
Au niveau stockage, on a les métadonnées qui sont dans postgresql, effectivement, et les fichiers audio, qui sont dans un dossier sur le serveur. Mais par défaut, les fichiers fédérés ne sont pas répliqués sur le serveur (enfin dans un dossier de cache, mais sur des périodes courtes).
Du coup, aucun risque de mélange avec tes collections :)
@igor surtout que souvent il y des softs spécialisés qui font ça très bien. Après il y a peut-être d'autres façons d'aborder la question, par exemple en exposant les données via API et en intégrant ça avec un client existant ?
@eliotberriot Ça m'intéresse carrément ce projet, j'en avais jamais entendu parler encore. Il y a des instances ouvertes aux inscriptions ou pas encore ?
@satak si tu as besoin, voici le site du projet, avec un lien vers la démo : https://funkwhale.audio/
Tu peux également t'inscrire sur l'instance publique https://funkwhale.mastodon.host/, qui est à ma connaissance la seule instance en accès libre.
Par contre la bibliothèque n'est pas très fournir encore, mais ça te permettra de tester :)
@eliotberriot merci à toi, je fonce voir ça ;)
@eliotberriot That looks really fucking cool, congratz on the work and handing all the bunches of invisible stuff !
@aleks
Thank you!
@eliotberriot
Be sure I'll spent some time helping to package your app for #YunoHost :) Bravo !
@jibec
That would be really great, it was requested by a lot of people but I lack the time and knowledge to do it!
@eliotberriot
Well, when I'll try, I'll ask you many questions. For now, if just publish releases and a minimalist documentation, it will be enough.
@jibec
You should find some answers and starters here : https://docs.funkwhale.audio/ 😃
@eliotberriot
Well, this is too much, now I feel like doing it before RMLL, stop teasing me ;)
@jibec :D
@eliotberriot Bravo ! C'est vraiment super ! :-)
@eliotberriot wait whoa https://medium.com/we-distribute/funkwhale-an-open-source-grooveshark-alternative-begins-activitypub-implementation-cbc10a412b20
there are a bunch of activitypub implementations in progress I apparently don't even know about now
@cwebber
Yes, I'm sorry I forgot to mention you about that! Funkwhale will be using activitypub soon to federate music libraries accrues instances :)
@eliotberriot that's awesome!
So, what's next?
First, there are still some things to implement, especially, right now, we're importing by hand, but it can be completely automated. I have to work on that part.
Also, the front-end part to administrate the federation still miss some features/views.
This should be done by the next release though!