1 points par GN⁺ 2023-07-11 | 1 commentaires | Partager sur WhatsApp
  • La PR #927 de zedeus/nitter, « Fix everything », a été fusionnée dans master le 10 juillet 2023, apportant des changements pour rétablir les fonctionnalités cassées
  • Le rétablissement s’est fait via l’utilisation d’un nouveau bearer token et d’un ensemble d’endpoints mis à jour, avec une mise à jour du parseur en parallèle
  • La fonction de recherche n’est pas totalement rétablie : au moment du commit, la recherche d’utilisateurs est activée, mais la recherche de tweets est désactivée
  • Parmi les autres changements, les multi-user timelines ont été désactivées temporairement, et une correction du parsing de pinned tombstone est également incluse
  • Le RSS fonctionne, mais il est désactivé sur nitter.net, donc sa disponibilité dépend de la configuration de l’instance

Étendue des corrections fusionnées

  • La PR #927 de zedeus/nitter, « Fix everything », a été fusionnée de la branche elon-fix vers master
    • La fusion a eu lieu le 10 juillet 2023
    • Un total de 4 commits est inclus
    • Après la fusion, la branche elon-fix a été supprimée

Méthode principale de rétablissement

  • Le cœur du changement consiste à utiliser un nouveau bearer token et un ensemble d’endpoints mis à jour
  • Le parseur a également été mis à jour pour fonctionner avec la structure de réponse modifiée
  • Dans l’explication initiale, la fonctionnalité manquante est résumée comme étant la recherche

Changements liés à la recherche et aux timelines

  • La recherche n’a été que partiellement rétablie
    • Avec le commit Enable user search, disable tweet search, la recherche d’utilisateurs est activée
    • La recherche de tweets est désactivée
  • Avec le commit Disable multi-user timelines for now, les multi-user timelines sont désactivées pour le moment

Corrections de parsing

  • Le commit Fix parsing of pinned tombstone est inclus
  • Le problème de parsing lié à pinned tombstone a été corrigé séparément

État du RSS

  • Dans les commentaires, une question a été posée sur le fonctionnement du RSS
  • zedeus a répondu que le RSS fonctionne, mais qu’il est désactivé sur nitter.net
  • Le support du RSS en lui-même et son activation sur nitter.net sont donc deux choses distinctes

1 commentaires

 
GN⁺ 2023-07-11
Commentaires sur Hacker News
  • Avertissement : cela peut sembler long et vaguement fanfaron, mais en résumé, contourner la limitation de débit de Twitter n’était pas si difficile
    Je ne voulais pas toucher au pénible certificate pinning de Twitter, donc j’ai chargé l’APK Twitter sur Corellium, activé le « network monitor », puis ouvert l’app Twitter utilisable sans connexion
    En cherchant et en consultant des tweets tout en regardant les journaux de requêtes, j’ai vu qu’il y avait une procédure de jeton invité similaire à celle du site web, avec seulement quelques différences
    En reproduisant ces requêtes, on peut créer chaque jour quelques jetons OAuth sans expiration avec une seule IP. Ces jetons sont destinés aux utilisateurs non authentifiés, donc sans droits d’écriture, mais ce n’était pas nécessaire ici
    En achetant environ 1 Go de bande passante chez un fournisseur de proxy avec un grand pool d’IP, on peut facilement obtenir des milliers de jetons/secrets en consommant très peu de bande passante, chacun avec sa propre limite de débit. L’IP réellement utilisée pour exploiter le jeton n’avait pas d’importance
    Ensuite, j’ai suivi https://docs.google.com/document/d/1xVrPoNutyqTdQ04DXBEZW4ZW... et utilisé le fait que /statuses/lookup.json peut encore renvoyer 100 tweets d’un coup pour reconstituer quelque chose de proche de 50 % du Firehose de Twitter
    Twitter ne bloquait pas non plus les IP de datacenter. J’ai essayé d’afficher les données sur https://firehose.lol, mais cela demandait des centaines de requêtes par seconde, ce qui m’a mis mal à l’aise, donc j’ai fini par couper le programme au bout de quelques minutes
    Observer une partie du Firehose pendant quelques minutes était intéressant. Au début, j’avais oublié de masquer les tweets marqués possibly_sensitive, donc j’ai vu pendant quelques secondes des contenus assez suggestifs ; il y avait beaucoup de pubs de jeux d’argent en chinois alors que Twitter est bloqué en Chine, des comptes de promotion d’investissements douteux, des comptes avec des noms d’utilisateur du style FirstnameLastname3781264872 qui tweetaient trois mots aléatoires toutes les quelques secondes, et aussi quelques tweets drôles

    • On peut aussi contourner la limitation de débit plus simplement avec archive.md, même si c’est bien moins efficace. archive.md n’est pas affecté par la limitation de débit, donc c’est pratique si l’on veut simplement consulter de temps en temps quelques tweets sans compte
  • C’est le projet Nim le plus impressionnant que j’aie vu jusqu’ici. Refaire un front-end complet, faire fonctionner l’authentification et gérer les comportements particuliers d’une API privée, c’est un travail énorme
    Dans le contexte de Twitter, il y aurait sans doute eu plus de 20 personnes dédiées rien que pour prendre cela en charge. Chapeau à l’auteur pour y être arrivé

    • Le front-end utilise Karax, qui est de loin ma bibliothèque de front-end / application monopage préférée, tous langages confondus. Elle a quelques aspérités, mais elle est vraiment très agréable à utiliser
      https://github.com/karaxnim/karax
    • Bien sûr, chez Twitter, il y aurait plus de 20 personnes dessus, mais c’est aussi parce que personne ne se soucie vraiment si Nitter tombe
  • C’est assez drôle que l’effet de la limitation de débit ait eu très peu d’impact sur les bots et les scrapers, tout en causant de gros dégâts à la base d’utilisateurs ordinaires du site

    • C’est très anecdotique, mais sur mes comptes, l’activité des bots augmentait le mois dernier, puis s’est complètement arrêtée après les récentes mesures de limitation de débit
    • Si on passe en mode théorie du complot, et si c’était le but depuis le début ? Twitter a été un espace important pour organiser des mouvements comme l’Arab Spring ou Occupy Wall Street
      L’un des hommes les plus riches du monde, notoirement anti-syndical, a racheté cet espace et l’a rendu inutilisable à un moment où les inégalités se creusent et où la cohésion sociale s’effondre
      Il n’y a plus d’espace pour s’organiser, et cela fait une menace de moins pour le capital
    • C’est vrai dans beaucoup de cas. Quelle que soit la contrainte ajoutée, ce sont presque toujours les utilisateurs ordinaires et occasionnels qui en souffrent, alors que les attaquants ne sont généralement pas des utilisateurs occasionnels
    • Depuis qu’Elon a racheté le site, on dirait même que les bots n’ont fait qu’augmenter. Je reçois de plus en plus de DM de comptes de spam, certains venant apparemment du Japon
      Quoi qu’Elmo fasse, rien ne semble fonctionner correctement
  • Après les changements d’API, le bearer token par défaut que j’utilisais a lui aussi cessé de fonctionner, mais en le modifiant de la même manière, mon application de téléchargement de Twitter Spaces remarche aussi normalement
    0: https://github.com/Chiplis/moonbird

  • C’est quand même incroyable qu’on ne puisse toujours pas voir les profils ou les réponses sur Twitter sans se connecter
    J’utilise Nitter depuis 4 ans, et je continuerai tant que ça fonctionne

    • On peut aussi utiliser le RSS. Il suffit d’ajouter /rss à la fin de l’URL
  • On n’était pas censé parler de Fight Club

    • Pourtant, les pages Nitter sont indexées par Google, donc ce n’est pas vraiment un secret
  • Est-ce que c’est vraiment durable ? J’aimerais en savoir plus sur ce bearer token
    Dans d’autres fils d’issues GitHub, on avait l’impression qu’à chaque fois qu’une méthode pour contourner les protections de Twitter était trouvée, elle finissait bloquée
    On dirait qu’ils ont littéralement codé le jeton en dur dans le code source, ce qui signifie que des milliers d’instances Nitter et des milliers d’utilisateurs dans le monde utilisent le même jeton
    Des entreprises d’IA pourraient aussi potentiellement l’utiliser, donc je ne vois pas bien comment cela peut continuer à fonctionner

    • Ce jeton semble être celui utilisé par les applications web/mobile officielles de Twitter. Du coup, j’imagine qu’il est difficile pour Twitter de simplement le désactiver ou le bloquer
    • Je me demande pourquoi l’API « non officielle » a été autorisée à continuer à fonctionner, même par intermittence. Je suis heureux d’utiliser Nitter, mais il y a quelque chose qui ne colle pas vraiment
    • L’ancienne API semble de nouveau fonctionner
    • C’est sans doute pour cela que NewPipe ne marche pas très bien la plupart du temps. Et même quand ça marche, c’est absurdement lent
  • Cela signifie que l’accès anonyme a été rétabli. Nitter n’utilise de toute façon pas l’ancienne API Twitter disparue. Elle a été brièvement rétablie, mais
    Twitter doit fournir un portail web interopérable noscript/basic (x)html

  • Donc l’AI Scrapocalypse n’est plus un sujet d’importance critique ?

    • J’étais sceptique dès le départ sur le fait que ce soit la véritable raison de la limitation de débit
    • Peut-être qu’il a tellement menacé de licencier les lutins de l’atelier qu’ils ont travaillé toute la nuit en dormant sur les vieux matelas du bureau pour réussir leur Make Twitter Scale Again, et que le monde des load balancers est désormais redevenu paisible
  • C’est comparable à une faille analogique. Tant que les données sont transmises du serveur au client, le scraping restera toujours possible
    Apple essaie toutefois de rendre cela plus difficile : https://developer.apple.com/documentation/devicecheck/prepar...

    • Je ne suis pas développeur iOS, mais je me demande ce que App Attest implique par rapport à la faille utilisée ici