La disparition de Nitter, une alternative libre au frontend de Twitter

Le dernier des exemplaires publics de Nitter est devenu obsolĂšte. Le projet Nitter dĂ©veloppait un frontend libre pour accĂ©der Ă  X.com/Twitter sans imposer JavaScript, analytics, trackers et services tiers. Le 31 janvier, l'Ă©mission de tokens utilisĂ©s dans Nitter pour organiser l'accĂšs au contenu sur X.com a Ă©tĂ© arrĂȘtĂ©e. Le 26 fĂ©vrier, la durĂ©e de vie des derniers tokens prĂ©cĂ©demment Ă©mis a expirĂ©, ce qui a conduit Ă  l'arrĂȘt complet du fonctionnement de Nitter.

AprĂšs l'achat par Elon Musk, Twitter (rebaptisĂ© X) a commencĂ© Ă  mettre en Ɠuvre un ensemble de mesures techniques et organisationnelles visant Ă  monĂ©tiser agressivement la plateforme, jadis considĂ©rĂ©e comme dĂ©ficitaire. Parmi les changements, un systĂšme de tarification a Ă©tĂ© mis en place pour les informations reçues par chaque compte (limites Ă©tablies pour diffĂ©rents types de comptes — 10 000 pour les dĂ©tenteurs de la « coche bleue » payante, 1 000 pour les comptes ordinaires, 500 pour les nouveaux comptes ordinaires) ; les comptes « dĂ©veloppeurs » ont Ă©tĂ© classĂ©s comme payants avec des limites adaptĂ©es Ă  l'extraction massive de donnĂ©es (scraping) ; et la transmission d'informations aux utilisateurs sans compte a Ă©tĂ© interrompue.

À titre de justification, il a Ă©tĂ© publiquement affirmĂ© (2023-07-01) que c'Ă©taient « des mesures d'urgence temporaires », en raison du fait que le tĂ©lĂ©chargement automatisĂ© de donnĂ©es par des bots dĂ©grade le service pour les utilisateurs ordinaires. Avant cela (2023-04-19), des insinuations ont Ă©tĂ© faites contre Microsoft, suggĂ©rant que cette entreprise utilisait illĂ©galement les donnĂ©es de Twitter pour former de l'IA. Plus tard (2023-11-17), l'imposition de limites a Ă©tĂ© justifiĂ©e par la promesse faite par Musk de lutter contre les bots.

Nitter était un projet de développement de logiciel pour protéger les utilisateurs de Twitter contre le suivi, en ne leur permettant pas d'envoyer des messages, mais simplement de lire des contenus, en leur fournissant un site alternatif pour consulter Twitter, ne nécessitant ni compte ni JavaScript activé. Ce logiciel agit en fait comme un scraper et un intermédiaire, qui au lieu de sauvegarder des données dans une base de données, les envoie à l'utilisateur final (néanmoins, certaines données opérationnelles sont mises en cache dans Redis).

Ainsi, le logiciel Nitter :

  • Ă©tait techniquement le type mĂȘme de logiciel contre lequel la direction de Twitter a dĂ©clarĂ© mener une lutte active ;
  • Ă©tait l'un des rares logiciels activement dĂ©veloppĂ©s pour accĂ©der aux donnĂ©es hĂ©bergĂ©es sur Twitter, ce qui a rendu son utilisation attractive en tant que module de scraping dans un sens plus Ă©troit de ce terme — collecte de donnĂ©es en contournant les interfaces officielles Ă  cet effet;
  • les instances publiques de Nitter sont elles-mĂȘmes devenues des objets de scraping, ce qui a conduit certaines d'entre elles Ă  mettre en place leur propre version de CAPTCHA (1 requĂȘte POST supplĂ©mentaire, spĂ©cifique Ă  chaque instance).

    À la suite de l'analyse des solutions de contournement pour continuer Ă  fonctionner dans de nouvelles conditions, des flux RSS et certains points d'entrĂ©e sur syndication.twitter.com ont Ă©tĂ© dĂ©couverts, fournissant des informations Ă  des utilisateurs non enregistrĂ©s au format JSON, et utilisĂ©s pour l'intĂ©gration avec d'autres rĂ©seaux sociaux. Pendant un certain temps, Nitter a obtenu des informations via ces interfaces, mais elles ont ensuite Ă©tĂ© fermĂ©es. AprĂšs cela, un moyen d'utiliser des « comptes invitĂ©s », ayant des privilĂšges de lecture, a Ă©tĂ© trouvĂ©. L'un des types de « comptes invitĂ©s » Ă©tait destinĂ© Ă  ĂȘtre utilisĂ© sur des appareils Internet des objets avec des navigateurs simplifiĂ©s.

    Mais Nitter a utilisĂ© un autre type de « comptes invitĂ©s », qui appliquaient OAuth au lieu des cookies, s'enregistraient via l'API et Ă©taient apparemment utilisĂ©s par l'application Android. Ce type de compte a des limites de 500 requĂȘtes API toutes les 15 minutes, et son « enregistrement » est liĂ© Ă  une adresse IP (d'une mĂȘme IP, un « compte invitĂ© » peut ĂȘtre enregistrĂ© en une journĂ©e, mais un « compte » dĂ©jĂ  enregistrĂ© peut ĂȘtre utilisĂ© avec d'autres adresses IP).

    Ces « comptes » (tokens d'accĂšs) Ă©taient opĂ©rationnels pendant 30 jours. À ce moment-lĂ , une solution adĂ©quate au problĂšme de l'enregistrement massif de comptes temporaires aurait pu ĂȘtre le crowdsourcing de leur inscription par les utilisateurs, utilisant quelque chose de similaire Ă  Bibliogram (un userscript qui prend le token invitĂ© d'un utilisateur et le transmet Ă  une instance publique).

    Fin janvier, X a cessé de délivrer de tels tokens. L'élimination du dernier moyen d'accÚs a mis un terme à Nitter en tant que service public gratuit multi-utilisateurs, conduisant l'auteur à déclarer Nitter mort.

    Une partie des instances s'est immĂ©diatement arrĂȘtĂ©e aprĂšs cela, d'autres ont modifiĂ© leur code pour Ă©conomiser strictement l'utilisation des tokens existants, en particulier en les utilisant principalement pour rĂ©cupĂ©rer des listes de tweets des comptes, avec des messages d'erreur pour tout le reste. Le 26 fĂ©vrier, la durĂ©e de vie des derniers tokens invitĂ©s a expirĂ©, ce qui a entraĂźnĂ© l'arrĂȘt de toutes les instances publiques. Cependant, des discussions sur la façon de traiter les comptes invitĂ©s se poursuivent dans le tracker de bugs.

    Une des solutions radicales au problĂšme pourrait ĂȘtre le remplacement de Twitter par la crĂ©ation d'un service alternatif dĂ©centralisĂ© basĂ© sur ActivityPub et IPFS, oĂč l'identifiant principal de chaque message serait son CID IPFS. On peut imaginer la structure multi-niveaux suivante :

  • Les donnĂ©es initialement publiĂ©es dans le service fĂ©dĂ©rĂ©, Ă  la fois sur la plateforme principale et reflĂ©tĂ©es dans IPFS.
  • Les donnĂ©es publiĂ©es sur Twitter par les utilisateurs eux-mĂȘmes, mais reflĂ©tĂ©es dans leurs comptes sur la plateforme fĂ©dĂ©rĂ©e grĂące Ă  une extension de navigateur, puis lĂ -bas - dans IPFS.
  • Les donnĂ©es que les utilisateurs de Twitter ont extraites en utilisant la fonction d'exportation et ont tĂ©lĂ©chargĂ©es dans Fediverse + IPFS via la fonction de tĂ©lĂ©chargement massif.

    Cependant, les données du point 3 ne résolvent pas le problÚme de l'absence de participation des utilisateurs de Twitter au programme de remplacement de Twitter.

    Pour chaque identifiant de post sur chaque plateforme centralisĂ©e, il pourrait ĂȘtre judicieux de maintenir son affichage dans le CID IPFS, qui fonctionne comme un cache, permettant sans connaĂźtre le texte mĂȘme du post, mais en connaissant son identifiant centralisĂ©, de connaĂźtre son identifiant dĂ©centralisĂ©. Lors de la gĂ©nĂ©ration d'URI dans IPFS (ce qui peut ĂȘtre fait sans tĂ©lĂ©chargement rĂ©el), le texte du post subit une canonicalisation, qui consiste Ă  placer les donnĂ©es dans un conteneur basĂ© sur HTML avec des mĂ©tadonnĂ©es lisibles par machine, normalisation de l'unicode, conversion en UTF-8, remplacement des espaces par des espaces simples, et remplacement de tous les liens vers des posts sur cette et d'autres plateformes, passant par une procĂ©dure similaire, par des URI dans IPFS.

    Chaque plateforme possĂšde un document lisible par machine qui dĂ©crit les rĂšgles de canonicalisation des publications, y compris de nombreux services dont les liens sont remplacĂ©s par des URI IPFS dans les publications de ce rĂ©seau. Chaque publication dans chaque rĂ©seau est canonique en fonction des rĂšgles de canonicalisation des publications de ce rĂ©seau en vigueur au moment oĂč la publication a Ă©tĂ© datĂ©e. Lors de la canonicalisation, si un lien vers une publication dans l'une des plateformes remplacĂ©es est prĂ©sent, l'implĂ©mentation extrait l'identifiant centralisĂ© du lien et vĂ©rifie sa prĂ©sence dans les index de confiance.

    En cas de prĂ©sence dans l'index, l'implĂ©mentation utilise l'identifiant dĂ©centralisĂ© des index. En l'absence, l'implĂ©mentation demande la publication via le lien, la canonise et gĂ©nĂšre un identifiant pouvant ĂȘtre inclus dans les index. L'implĂ©mentation n'est pas tenue d'inclure la publication demandĂ©e dans le rĂ©seau dĂ©centralisĂ©. L'implĂ©mentation peut vĂ©rifier la validitĂ© de l'identifiant dans l'index par une reproduction locale du processus. L'implĂ©mentation de l'index est tenue de vĂ©rifier la validitĂ© de la gĂ©nĂ©ration des identifiants par une reproduction locale du processus.

    Ce processus dĂ©terministe permet de gĂ©nĂ©rer des liens immuables vers le contenu mĂȘme pour les tweets dont les publications ne participent pas encore au programme de remplacement de Twitter. Lorsque certaines d'entre elles commenceront Ă  tĂ©lĂ©charger leurs tweets dans IPFS, l'algorithme gĂ©nĂ©rera pour elles des identifiants identiques Ă  ceux dĂ©jĂ  utilisĂ©s dans les liens, Ă  condition que l'index contienne des reprĂ©sentations correctes et que le contenu lui-mĂȘme n'ait pas changĂ©.

    Source : opennet.ru

  • Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster