URL: https://linuxfr.org/news/scrobblerserver-un-serveur-de-scrobbles Title: ScrobblerServer, un serveur de « scrobbles » Authors: kaliko Nÿco, Benoît Sibaud et Florent Zara Date: 2013年05月01日T22:56:59+02:00 License: CC By-SA Tags: audio, lastfm et audioscrobbler Score: 7 kaliko a commencé il y a quelque temps [l'écriture d'un petit serveur [scserver]](http://git.kaliko.me/?p=scrobblerserver.git) sous licence GPLv3 lui permettant d'enregistrer ses habitudes d'écoute de la musique. Dans le jargon de last.fm, on appelle cela un serveur de scrobble (cf. audioscrobbler pour plus d'information), un scrobble étant simplement l'unité atomique d'information enregistrée par le serveur, à savoir un titre (nom, artiste, album, etc.) associé une date et un auditeur. NdM : _merci à kaliko pour son journal._ ---- [Journal à l'origine de la dépêche](http://linuxfr.org/users/kaliko/journaux/scrobblerserver) [ScrobblerServer](http://git.kaliko.me/?p=scrobblerserver.git) [gnu.fm](http://foocorp.org/projects/fm/) [libre.fm](http://libre.fm) [mpdsima](http://codingteam.net/project/sima) [API complète scapi](http://kaliko.me/media/scapi/api.html) [MPD_sima sur linuxfr](https://linuxfr.org/news/mpd_sima) ---- ## Historique Avant que kaliko débute ce serveur, le projet [gnu.fm](http://foocorp.org/projects/fm/) (l'applicatif derrière [libre.fm](http://libre.fm)) est apparu, se voulant une alternative libre à last.fm. Cependant, outre le fait que le projet semble au point mort, les différents choix techniques initiaux et l'évolution du projet ne convenaient pas vraiment à son besoin ou à ce qu'il attendait d'une alternative FLOSS à last.fm. Libre.fm s'est clairement positionné comme alternative à last.fm ; entre autres, même API et la possibilité d'écouter et de découvrir de la musique. Le frontal web Nixtape et le serveur GNUkebox qui forment la solution gnu.fm n'étaient pas vraiment dissociables à l'époque. Le choix de PHP comme langage était justifié pour faciliter le déploiement de la solution. ## ScrobblerServer Son besoin dans un premier temps était bien plus simple, il voulait pouvoir enregistrer un historique de ses écoutes de musique et produire des statistiques à partir de cette base. La partie « réseautage social » de last.fm/libre.fm n'est pas un objectif prioritaire, il voulait cependant une solution multi-utilisateur. Au delà des polémiques quant à PHP, il n'a pas d'expertise dans ce langage et pas l'envie d'en développer une, il préférait partir sur une solution Python, grâce à un autre projet lié à last.fm lui aussi, MPD Sima, [un client utilitaire pour MPD](http://codingteam.net/project/sima). Il a donc débuté l'écriture de [ScrobblerServer](http://git.kaliko.me/?p=scrobblerserver.git) avec Django 1.4. Il s'agissait dans un premier temps de faire une preuve de concept simple et de me familiariser avec le web et l'écriture d'une API. Les spécifications sont les suivantes : * Un interface [REST](http://fr.wikipedia.org/wiki/Representational_State_Transfer) avec le serveur * [Authentification HTTP de base](http://en.wikipedia.org/wiki/Basic_access_authentication), pas de compatibilité avec l'API last.fm * Multi-utilisateur et indépendance vis à vis du lecteur utilisé * Servir les statistiques rudimentaires, c'est-à-dire artistes|titres les plus joués sur une période de temps définie En l'état le serveur expose une [API complète (scapi)](http://kaliko.me/media/scapi/api.html) permettant de soumettre ses scrobbles, récupérer son historique d'écoutes et quelques statistiques. Le choix de l'authentification HTTP simple impose bien évidement le déploiement du serveur sur une connexion chiffrée TLS pour éviter de voir vos identifiants circuler en clair (non critique sur un LAN domestique cependant). L'interface web (navigable) est rudimentaire et non stylée, elle permet simplement de contrôler que le serveur fonctionne, de consulter ses derniers scrobbles ou de changer de mot de passe. La création des utilisateurs se fait via l'interface d'administration de django par l'administrateur de l'application. Ce projet est artisanal, n'étant pas développeur et connaissant assez peu le web (ie. soyez indulgents avec le code), vous ne trouverez pas là un joyau de technologie web x.y, mais un simple petit serveur permettant de jouer avec ses habitudes d'écoute. Je n'ai pas de feuille de route précise sur ce projet, je voulais cependant le confronter à la communauté. Dans un premier temps pour avoir des retours mais aussi pour partager l'application avec d'autres personnes qui comme moi auraient en vain cherché un serveur du genre sans trouver de projet à leur goût. Puisse scrobblerserver être utile à d'autres. Les possibles futurs : * utiliser Tastypie pour construire l'API (et potentiellement supporté l'API last.fm afin d'hériter simplement des clients existants). * faire des affichages des statistiques du type [streamgraph](http://en.wikipedia.org/wiki/Streamgraph) * écrire de simple client web html/javascript pour l'affichage des statistiques * pas de futur est aussi une possibilité...

AltStyle によって変換されたページ (->オリジナル) /