1 Punkte von GN⁺ 2023-07-11 | 1 Kommentare | Auf WhatsApp teilen
  • PR #927 „Fix everything“ von zedeus/nitter wurde am 10. Juli 2023 in master gemergt und enthält Änderungen zur Wiederherstellung der defekten Funktionen
  • Die Wiederherstellung erfolgte durch die Verwendung eines neuen Bearer-Tokens und eines aktualisierten Satzes von Endpunkten; auch der Parser wurde entsprechend aktualisiert
  • Die Suchfunktion ist nicht vollständig wiederhergestellt; zum Stand des Commits ist die Benutzersuche aktiviert, die Tweet-Suche jedoch deaktiviert
  • Als zusätzliche Änderung wurden Multi-User-Timelines vorerst deaktiviert; außerdem ist eine Korrektur für das Parsing von pinned tombstones enthalten
  • RSS funktioniert, ist aber auf nitter.net deaktiviert, sodass die Verfügbarkeit von der jeweiligen Instanzkonfiguration abhängt

Umfang der gemergten Korrekturen

  • PR #927 „Fix everything“ von zedeus/nitter wurde vom Branch elon-fix nach master gemergt
    • Das Merge-Datum ist der 10. Juli 2023
    • Insgesamt sind 4 Commits enthalten
    • Nach dem Merge wurde der Branch elon-fix gelöscht

Zentrale Methode der Wiederherstellung

  • Kern der Änderung ist die Nutzung eines neuen Bearer-Tokens und eines aktualisierten Satzes von Endpunkten
  • Auch der Parser wurde aktualisiert, damit er an die geänderte Antwortstruktur angepasst funktioniert
  • In der ursprünglichen Beschreibung wurde search als fehlende Funktion genannt

Änderungen bei Suche und Timelines

  • Die Suche wurde nur teilweise wiederhergestellt
    • Mit dem Commit Enable user search, disable tweet search wurde die Benutzersuche aktiviert
    • Die Tweet-Suche wurde deaktiviert
  • Mit dem Commit Disable multi-user timelines for now wurden Multi-User-Timelines vorerst deaktiviert

Parsing-Korrekturen

  • Der Commit Fix parsing of pinned tombstone ist enthalten
  • Ein Parsing-Problem im Zusammenhang mit pinned tombstones wurde gesondert behoben

RSS-Status

  • In den Kommentaren wurde gefragt, ob RSS funktioniert
  • zedeus antwortete, dass RSS funktioniert, aber auf nitter.net deaktiviert ist
  • Daher sind die grundsätzliche RSS-Unterstützung und der Aktivierungsstatus auf nitter.net getrennt zu betrachten

1 Kommentare

 
GN⁺ 2023-07-11
Hacker-News-Kommentare
  • Warnung: Das kann lang werden und ein wenig wie eine verwandte Prahlerei klingen, aber kurz gesagt: Das Umgehen der Twitter-Rate-Limits ist gar nicht so schwer
    Ich hatte keine Lust, mich mit Twitters lästigem Certificate Pinning zu beschäftigen, also habe ich die Twitter-APK in Corellium hochgeladen, dort den „network monitor“ eingeschaltet und die Twitter-App geöffnet, die auch ohne Login nutzbar war
    Beim Suchen und Anschauen von Tweets habe ich die Request-Logs geprüft; es gab ein Guest-Token-Verfahren ähnlich wie auf der Website, nur mit ein paar Unterschieden
    Wenn man diese Requests nachbildet, kann man pro IP und Tag ein paar OAuth-Tokens ohne Ablaufdatum erzeugen. Diese Tokens sind für nicht authentifizierte Nutzer gedacht und haben daher keine Schreibrechte, aber die brauchte man hier auch nicht
    Kauft man bei einem Proxy-Anbieter mit großem IP-Pool etwa 1 GB Bandbreite, kann man mit sehr wenig Bandbreite problemlos Tausende Tokens/Secrets bekommen, die jeweils eigene Rate-Limits haben. Von welcher IP aus man die Tokens tatsächlich nutzt, spielte keine Rolle
    Danach bin ich https://docs.google.com/document/d/1xVrPoNutyqTdQ04DXBEZW4ZW... gefolgt und habe ausgenutzt, dass /statuses/lookup.json immer noch 100 Tweets auf einmal zurückgeben kann, um etwas zu rekonstruieren, das einem 50-%-Twitter-Firehose nahekommt
    Twitter blockierte auch keine IPs aus Rechenzentren. Ich wollte die Daten auf https://firehose.lol anzeigen, aber dafür wären Hunderte Requests pro Sekunde nötig gewesen, was mir ein ungutes Gefühl gab; am Ende habe ich das Programm nach wenigen Minuten wieder abgeschaltet
    Ein paar Minuten lang einen Teil des Firehose zu sehen, war interessant. Anfangs hatte ich vergessen, als possibly_sensitive markierte Tweets auszublenden, sodass ich für ein paar Sekunden ziemlich explizites Material sah; außerdem gab es viele chinesischsprachige Glücksspielanzeigen, obwohl Twitter in China blockiert ist, verdächtige Investment-Promo-Accounts, Accounts mit Nutzernamen wie FirstnameLastname3781264872, die alle paar Sekunden drei zufällige Wörter twitterten, und ein paar lustige Tweets

    • Mit archive.md kann man Rate-Limits umgehen, wenn auch deutlich weniger effizient, dafür einfacher. archive.md ist nicht von Rate-Limits betroffen und ist nützlich, wenn man ohne Account nur ab und zu ein paar Tweets ansehen möchte
  • Das ist das beeindruckendste Nim-Projekt, das ich bisher gesehen habe. Ein großes Frontend nachzubauen, Authentifizierung zum Laufen zu bringen und auch noch die Eigenheiten einer privaten API zu handhaben, ist eine enorme Arbeit
    Zum Kontext: Innerhalb von Twitter hätte vermutlich ein Team von über 20 Leuten an der Unterstützung dieser Funktion gearbeitet. Applaus an den Autor, der das geschafft hat

    • Das Frontend nutzt Karax, meine liebste Frontend-/Single-Page-App-Library über alle Sprachen hinweg. Es hat ein paar raue Kanten, macht aber wirklich großen Spaß in der Nutzung
      https://github.com/karaxnim/karax
    • Klar, bei Twitter wäre ein Team von über 20 Leuten dran, aber auch deshalb, weil es niemanden groß kümmert, wenn Nitter ausfällt
  • Witzig ist, dass die Rate-Limits Bots und Scraper kaum getroffen haben, der normalen Nutzerschaft der Seite aber erheblich geschadet haben

    • Rein anekdotisch, aber auf meinen Accounts nahm die Bot-Aktivität im letzten Monat zu und kam nach den jüngsten Rate-Limit-Maßnahmen komplett zum Stillstand
    • Im Verschwörungsmodus betrachtet: Was, wenn genau das von Anfang an das Ziel war? Twitter war ein wichtiger Raum für die Organisation von Protesten wie dem Arab Spring oder Occupy Wall Street
      Einer der reichsten Menschen der Welt, der zugleich stark gewerkschaftsfeindlich ist, hat diesen Raum in einer Zeit gekauft und unbenutzbar gemacht, in der Ungleichheit immer weiter zunimmt und der gesellschaftliche Zusammenhalt bröckelt
      Es gibt keinen Ort mehr, um sich zu organisieren, und eine Bedrohung für das Kapital ist weniger geworden
    • Das stimmt in vielen Fällen. Fast jede zusätzliche Einschränkung trifft nur leichte normale Nutzer, während Angreifer in der Regel keine leichten Nutzer sind
    • Seit Elon die Seite gekauft hat, scheinen Bots eher weiter zuzunehmen. Ich bekomme immer mehr DMs von Spam-Accounts, und aus irgendeinem Grund sind auch welche aus Japan dabei
      Was auch immer Elmo tut, scheint nicht richtig zu funktionieren
  • Nach der API-Änderung funktionierte auch das Standard-Bearer-Token, das ich verwendete, nicht mehr; mit derselben Anpassung läuft meine Twitter-Spaces-Download-App aber wieder normal
    0: https://github.com/Chiplis/moonbird

  • Ohne Login kann man auf Twitter immer noch keine Profile oder Antworten sehen, und das ist wirklich großartig
    Ich bin seit vier Jahren Nitter-Nutzer und werde es weiter verwenden, solange es funktioniert

    • RSS geht auch. Einfach /rss an die URL anhängen
  • Man sollte doch nicht über Fight Club reden

    • Allerdings sind Nitter-Seiten bei Google indexiert, also ist es nicht wirklich ein Geheimnis
  • Ist das wirklich dauerhaft? Ich würde gern mehr über dieses Bearer-Token wissen
    In anderen GitHub-Issue-Threads sah es so aus, als würde jede gefundene Methode zum Umgehen der Schutzmechanismen von Twitter wieder blockiert
    Es wirkt, als sei das Token buchstäblich im Source Code hartcodiert; das hieße, dass Tausende Nitter-Instanzen weltweit und Tausende Nutzer dasselbe Token verwenden
    Auch AI-Unternehmen könnten dieses Token potenziell nutzen, daher verstehe ich nicht, wie das weiter funktionieren kann

    • Dieses Token scheint von den offiziellen Twitter-Web-/Mobile-Apps verwendet zu werden. Deshalb glaube ich, dass Twitter es nicht einfach sofort deaktivieren oder blockieren kann
    • Ich frage mich, warum die „inoffizielle“ API zumindest zeitweise weiter funktionieren durfte. Ich nutze Nitter dankbar, aber irgendetwas daran fühlt sich nicht ganz stimmig an
    • Die alte API scheint wieder zu funktionieren
    • Deshalb funktioniert NewPipe wohl die meiste Zeit nicht gut. Und selbst wenn es funktioniert, ist es absurd langsam
  • Das bedeutet, dass anonymer Zugriff wiederhergestellt wurde. Nitter nutzt ohnehin nicht die verschwundene Twitter API. Sie war zwar kurzzeitig wiederhergestellt worden
    Twitter sollte ein interoperables noscript/basic-(x)html-Webportal bereitstellen

  • Ist die AI Scrapocalypse damit also kein kritisch wichtiges Problem mehr?

    • Ich war von Anfang an skeptisch, ob das der wahre Grund für die Rate-Limits war
    • Vielleicht hat er den Werkstatt-Elfen lautstark mit Entlassung gedroht, woraufhin die Elfen die ganze Nacht gearbeitet, auf den alten Matratzen im Büro geschlafen und Make Twitter Scale Again geschafft haben, und nun ist die Welt der Load Balancer wieder friedlich
  • Das ähnelt dem analogen Schlupfloch. Solange Daten vom Server an den Client geliefert werden, ist Scraping immer möglich
    Apple versucht allerdings, das zu erschweren: https://developer.apple.com/documentation/devicecheck/prepar...

    • Ich bin kein iOS-Entwickler, frage mich aber, welche Bedeutung App Attest im Zusammenhang mit der hier genutzten Lücke hat