Article tagué script

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…

Script d’upload sur omploader pour Gnome

Pour envoyer et héberger sur le web des images afin de les partager sur IRC, messagerie instantanée ou sur des forums, j’utilisais le service pix.nofrag.
Et par soucis de faire cela de façon pratique, j’utilisais un script bash pix.sh (qui utilise Zenity et curl, couplé à une action Nautilus) afin de n’avoir qu’à faire que deux clics sur mon fichier image, depuis le bureau ou l’explorateur de fichier, pour l’envoyer et récupérer l’url de l’image.

Or pix.nofrag est désormais fermé… Je me suis donc reporté sur Omploader.

Il existe certes une extension Firefox pour omploader, mais je préfère avoir cette fonctionnalité intégrée directement au bureau Gnome.

Donc j’ai modifié le script pix.sh afin de faire la même chose mais avec omploader.

omploader upload

More >

TimThumb, script php pour la génération de vignettes

TimThumb est un petit script php bien pratique qui permet de retailler à la volée des images.
Cela permet notamment de faire des vignettes (thubnails) assez facilement.
Il supporte les images de type jpeg, gif et png, il fonctionne avec GD Lib et php à partir de la version 4.3.

Concrètement comme fonctionne-t-il?
Tout simplement en lieu et place de l’appel à votre balise image habituelle sur votre site ou dans votre application php
<img src="monimage.jpg" />
remplacez par
<img src="/scripts/timthumb.php?src=monimage.jpg&h=150&w=150&zc=1" />
h pour la hauteur désirée, w pour la largeur désirée et z 1 si vous souhaitez utiliser le zoom, 0 sinon.

TimThumb ira automatiquement lire le fichier image, le retailler aux dimensions voulues et mettre le fichier en cache (afin de ne pas refaire le même traitement à chaque fois) puis afficher votre fichier. Tout cela de façon transparente.

More >