Autoblog de Mitsukarenai

Ce site n'est pas le site officiel de Mitsukarenai
C'est un blog automatisé qui réplique les articles de suumitsu.eu

Sauvegarder son Twitter

Sat, 16 Mar 2013 15:54:54 +0000 - (source)

Coucou l’internet :)

L’actu autour de Twitter est plutôt chargée, et il y a 2 évènements notables: la fermeture progressive de l’API 1.0 a été amorcée, et la récupération d’archive a été étendu aux langues autre que l’anglais.

Twitter devient un hikikomori [?]

Petit état des lieux: Twitter est le plus utilisé des systèmes de microblogging. Très ouvert au départ, Twitter se renferme progressivement autant sur le plan esthétique (le nom des applications n’est plus affiché sous les tweets, sur le site) que technique (les flux RSS ne sont plus accessibles publiquement). Twitter impose de passer par sa plateforme technique, en utilisant leurs API, pour accéder aux données. Ainsi il est par exemple encore possible d’afficher le flux RSS de mon compte via cette URL:

 

Et c’est sous cette forme (l’API 1.0) que le Projet Autoblog permet(-tait) de sauvegarder les comptes Twitter. Las ! C’est trop ouvert au goût de Twitter, qui aime pas que les gens puissent garder leurs tweets ailleurs que sur Twitter. C’est pas dans l’intérêt de Twitter de laisser les utilisateurs gambader sur de plus vertes prairies. L’API 1.1 introduit une obligation d’authentification OAuth ne serait-ce que pour avoir la timeline d’un utilisateur, et OAuth c’est tout simplement immonde: je veux juste AVOIR LA TIMELINE, pourquoi doit-on faire des requêtes cURL signées timestampées avec 4 clés et tokens d’application ?!

1

2

3

4

Tant et si bien que je me suis pris une petite demi-heure sous Inkscape pour adapter Kitsu à mes émotions d’alors.

dEMpps3

(oui le truc bleu c’est l’oiseau de Twitter, tandis que Kitsu lui ouvre la gorge)

Bref, nouveau dépôt Github avec exemple pratique:

http://wwz.suumitsu.eu/social/twitterbridge/?u=mitsukarenai

Tant de sang et de sueur, juste parce que je ne veux pas donner à Twitter la mainmise exclusive sur MES TWEETS (avec lesquels ils font déjà du business à leur seul profit, ce qui explique bien cette fermeture progressive) . Bref, mes nouveaux tweets sont sauvegardés, et tout le monde a aussi la possibilité de sauvegarder ses nouveaux tweets. Mais quid des tweets plus anciens ?

L’archive Twitter

Il y a de ça plusieurs mois, Twitter a présenté un truc.. inattendu: l’archivage du compte Twitter. D’abord réservé au langage anglais (fallait passer le paramètre de langue du compte à « English » pour voir le bouton apparaitre), c’est maintenant disponible pour les autres langues aussi. Concrètement: vous cliquez sur le bouton, Twitter génère une archive de votre compte et vous envoie par mail le lien pour la télécharger.

Dans le fichier ZIP vous voyez tout de suite un fichier « tweets.csv »: je m’étais déjà un peu amusé dessus, mais l’échappement de caractères laisse à désirer et au final c’est juste bon à être ouvert dans un tableur (et encore). Ils fournissent un attirail HTML-CSS-JS qui vous permet de « naviguer sur un mini-site » vous permettant d’explorer votre archive dans une interface sympa. Mais là où ça devient intéressant:

/data/js/tweets/

Des fichiers JSON, un par mois, les données brutes de vos tweets ! Voilà qui est exploitable pour libérer ses tweets. J’ai ainsi pu formater mes tweets pour en nourrir ma sauvegarde sociale, la voici dotée de tous mes tweets (reply compris) depuis la création du compte. Puis j’ai abandonné mon script dans une Zerobin, peut-être que ça a pu servir à d’autres, mais j’en doute. Aujourd’hui je me rattrape.

Passer de JSON en RSS

script sur le wiki

Placer ce script dans /data/js/tweets, et exécuter (php exec.php). La première étape est déjà épique. Correction des données JSON, décodage en tableaux, itérations avec mise en forme XML, et enfin écriture du flux complété dans des fichiers RSS. Notez que les itérations prévoient jusqu’à 3.7 tweets par seconde durant 1 mois, ce qui me semble être une marge confortable pour ne rien rater. Et puis le correctif apporté tantôt, c’est l’exclusion des réponses. Après exécution de ce script, on retrouve pour chaque mois un fichier RSS contenant juste l’essentiel (texte, date, lien d’origine). On peut passer à la suite.

Injecter les données RSS dans une base SQLite

script sur le wiki

Placer ce script dans /data/js/tweets, ajouter aussi « autoblog.php« , et exécuter (php injector.php). Il vous faudra peut-être juste récrire la ligne 10, vu que j’ai prévu ça pour une exécution sur pc local et non sur serveur web (trop gourmand):

exec('php autoblog.php');

devient:

get_headers('http://www.monsite.web/autoblog.php');

Là c’est artisanal au possible: pour chaque fichier RSS, le script crée un nouveau fichier « vvb.ini » (essentiel pour autoblog), exécute autoblog, supprime vvb.ini et fait une pause (de 1,000001 secondes, car autoblog ne refraichit pas en dessous de 1 seconde). À chaque fois autoblog.php lit le contenu d’un fichier RSS mensuel, en extrait les données et les insère ensuite dans la base SQLite « articles.db ». Une fois terminé, ce fichier « articles.db » peut être placé dans un autoblog, l’autoblog ayant alors la timeline intégrale du compte qui peut être ré-extraite par la suite, bref tout ça est sauvegardé.

- merci à @Loadriku pour le test du script, du coup il a un autoblog intégral  ^^

Au passage si vous voulez aussi avoir un autoblog intégral de votre compte dans ma ferme d’autoblogs, vous pouvez m’envoyer votre « articles.db » complet ou même juste un ZIP avec les fichiers RSS dedans ( par contre le nombre de comptes autobloggés est limité car je dois autoriser les comptes dans ma twitterbridge). Une dizaine de comptes, pas plus :)

Les héros du développement PHP sont invités à venir réfléchir sur un réseautage simple de twitterbridge, genre pour que la mienne puisse servir de relais pour la timeline de Paul da Silva par exemple (avec redondance) pour que les autres twitterbridges contactent Twitter pour d’autres comptes :)


Powered by VroumVroumBlog 0.1.31 - RSS Feed
Download config articles