Notice: this is an archived website / Note: ceci est une ancienne page du site archivé

Reprendre possession de ses données Last.fm

C’est en m’intéressant au projet Libre.fm afin d’évaluer son utilisation en tant que backend dans l’un de mes projets que j’ai découvert Lastscrape, un set de petits scripts en python permettant de récupérer ses données d’écoutes confiées à Last.fm/Audioscrobbler.

Libre.fm fait partie des projets d’alternative libre et open-source à ces services en ligne auquel l’on confie tant de ses données en s’en retrouvant dépossédé quant à l’utilisation qui en est faite après par l’opérateur et/ou ses partenaires commerciaux.

La philosophie de ces alternatives qui commencent à voir le jour (la plus connue étant Identi.ca, concurrent libre de Twitter) est globalement (et expliquée grossièrement) que:
1. les technologies utilisées sont open-source
2. elles utilisent ou créent des standards ouverts
3. vous pouvez ré-utiliser ces technologies pour vous créer un service similaire, compatible et inter-connectable. Par exemple en local, dans votre entreprise, pour votre communauté ou derrière votre firewall…
4. les données envoyées au serveur central (si vous décidez d’utilisez celui-là) restent votre propriété ou sont mise en licence ouverte (pas de prise de possession ou de tentative de copyright)
5. vous restez maitre des données que vous avez publiées: import/export/modification/publication/suppression…

Mais revenons-en à Lastscrape…

Lastscrape

Lastscrape permet de gérer au mieux son passage de Last.fm à Libre.fm en récupérant son historique d’écoute afin de l’injecter dans son compte Libre.fm et ne pas repartir de zéro.

Tout est documenté sur le wiki: les fichiers à télécharger (lastscrape.py , gobble.py , import.py, mais aussi une version non bugguée de python-beautifulsoup à mettre dans le même répertoire), la ligne de commande pour récupérer les données, comment nettoyer ces données (dans le cas de doublons de la part de Last.fm) et la commande pour importer ces données vers Libre.fm, et en prime-abord rendre exécutable les deux scripts lastscrape.py et import.py par un chmod +x.

En lançant en ligne de commande un simple

./lastscrape.py monidentifiant dump.txt

la récupération des données se lance tranquillement, l’opération est un peu longue car Last.fm les envoie au compte-goute, mais au final j’ai pu récupérer mes 25000 scrobbles rapports d’écoute depuis la fin 2006 dans un fichier texte.

Un petit extrait:

Beat Pharmacy	Rooftops (feat. Coppa)	2009-05-24T13:34:28Z
Maurizio	Dublicator	2009-05-24T12:35:16Z
Blackdown	Crackle Blues (Burial Remix)	2009-05-24T12:29:22Z
Blackdown	Lata	2009-05-24T12:24:11Z
Los Black Stars	La Piragua	2009-05-24T12:21:07Z

Artiste, titre et date/heure, échappés par des tabulations… bref utilisable comme fichier csv pour l’importer à souhait dans ce que l’on veut (fichier excel, base de données, etc…).

J’en viens à m’effrayer que cela ne demande aucun mot de passe et que l’on peut donc récupérer l’historique d’écoute de n’importe qui!

Pour l’importation dans Libre.fm prière de lire entièrement la page du wiki avant de vous lancer, notamment pour éliminer les doublons parfois générés par Last.fm (pour cela une simple ligne de commande avec awk suffit) , car les doublons peuvent faire planter le script. Puis il suffit alors d’un simple

./import.py monidentifiant dump.txt

Bien entendu le mot de passe de votre compte libre.fm vous sera demandé cette fois-ci 😉
La phase d’importation est assez longue (surtout si vous avez une historique conséquente) car elle se fait par lot de 50 lignes pour ne pas surcharger le serveur.

Un petit tour sur le site utilisateur de Libre.fm pour voir que cela importe tranquillement…

Conclusion

Que vous désiriez utiliser Libre.fm et ne pas commencer sans historique d’écoute ou pas, Lastscrape est dans les deux cas utile afin d’avoir une sauvegarde en local de vos données stockée chez Last.fm.

Car comme tout service en ligne non-libre on ne sait jamais ce qu’il peut devenir à terme (changement de politique sur les données et leur accès,…). J’en veux pour exemple le cas de CDDB/Gracenote où des milliers d’utilisateurs ont permis pendant des années la constitution de la base de donnée en la remplissant manuellement et pouvaient y accéder à souhait, puis du jour au lendemain la société Gracenote a dit à ces utilisateurs d’aller se faire foutre, qu’il y avait un copyright sur cette base et que son accès serait commercialisé sous licence d’utilisation…