1 điểm bởi GN⁺ 2023-07-11 | 1 bình luận | Chia sẻ qua WhatsApp
  • PR #927 của zedeus/nitter, “Fix everything”, đã được hợp nhất vào nhánh master ngày 10 tháng 7 năm 2023, đưa vào các thay đổi để khôi phục những chức năng bị hỏng
  • Việc khôi phục được thực hiện bằng cách dùng bearer token mới và bộ endpoint đã được cập nhật, đồng thời parser cũng được cập nhật theo
  • Chức năng tìm kiếm chưa được khôi phục hoàn toàn; tại thời điểm commit, tìm kiếm người dùng đã được bật nhưng tìm kiếm tweet bị tắt
  • Thay đổi bổ sung gồm việc multi-user timelines bị tắt tạm thời, và cũng bao gồm bản sửa cho việc phân tích pinned tombstone
  • RSS vẫn hoạt động nhưng đang bị tắt trên nitter.net, nên khả năng sử dụng sẽ khác nhau tùy theo cấu hình của từng instance

Phạm vi bản sửa đã được hợp nhất

  • PR #927 của zedeus/nitter, “Fix everything”, đã được hợp nhất từ nhánh elon-fix vào master
    • Ngày hợp nhất là 10 tháng 7 năm 2023
    • Bao gồm tổng cộng 4 commit
    • Sau khi hợp nhất, nhánh elon-fix đã bị xóa

Cách khôi phục cốt lõi

  • Trọng tâm của thay đổi là sử dụng bearer token mới và bộ endpoint đã được cập nhật
  • Parser cũng được cập nhật cùng lúc để hoạt động phù hợp với cấu trúc phản hồi đã thay đổi
  • Trong mô tả ban đầu, tính năng bị thiếu được tóm tắt là search

Thay đổi liên quan đến tìm kiếm và timeline

  • Tìm kiếm chỉ được khôi phục một phần
    • Với commit Enable user search, disable tweet search, tìm kiếm người dùng đã được bật
    • Tìm kiếm tweet bị tắt
  • Với commit Disable multi-user timelines for now, multi-user timelines bị tắt tạm thời

Sửa lỗi phân tích

  • Có bao gồm commit Fix parsing of pinned tombstone
  • Vấn đề phân tích liên quan đến pinned tombstone đã được sửa riêng

Trạng thái RSS

  • Trong phần bình luận có câu hỏi về việc RSS có hoạt động hay không
  • zedeus trả lời rằng RSS vẫn hoạt động nhưng bị tắt trên nitter.net
  • Vì vậy, bản thân việc hỗ trợ RSS và trạng thái kích hoạt trên nitter.net là hai việc riêng biệt

1 bình luận

 
GN⁺ 2023-07-11
Các ý kiến trên Hacker News
  • Cảnh báo: phần này dài và có thể nghe hơi giống khoe khoang chỉ liên quan chút ít, nhưng tóm lại việc né giới hạn tốc độ của Twitter không khó lắm
    Tôi không muốn đụng đến cơ chế ghim chứng chỉ phiền phức của Twitter, nên đã đưa APK Twitter lên Corellium, bật “network monitor” ở đó, rồi mở ứng dụng Twitter có thể dùng mà không cần đăng nhập
    Khi tìm kiếm và xem tweet rồi kiểm tra log request, tôi thấy có quy trình guest token tương tự website, chỉ khác vài điểm
    Nếu tái tạo các request này, với một IP có thể tạo vài OAuth token không hết hạn mỗi ngày. Các token này dành cho người dùng chưa xác thực nên không có quyền ghi, nhưng ở đây cũng không cần quyền đó
    Nếu mua khoảng 1GB băng thông từ một nhà cung cấp proxy có pool IP lớn, bạn có thể dễ dàng lấy hàng nghìn token/secret chỉ với rất ít băng thông, và mỗi cái có giới hạn tốc độ riêng. Việc thực sự dùng token từ IP nào không quan trọng
    Sau đó tôi làm theo https://docs.google.com/document/d/1xVrPoNutyqTdQ04DXBEZW4ZW..., và tận dụng việc /statuses/lookup.json vẫn có thể trả về 100 tweet mỗi lần để dựng lại một thứ gần giống Twitter 50% Firehose
    Twitter cũng không chặn IP datacenter. Tôi định hiển thị dữ liệu tại https://firehose.lol, nhưng việc đó cần hàng trăm request mỗi giây khiến tôi thấy không thoải mái, nên cuối cùng đã tắt chương trình sau khi chỉ chạy vài phút
    Xem một phần Firehose trong vài phút khá thú vị. Ban đầu tôi quên ẩn các tweet được đánh dấu possibly_sensitive nên trong vài giây đã thấy khá nhiều nội dung khiêu gợi; dù Twitter bị chặn ở Trung Quốc vẫn có nhiều quảng cáo cờ bạc bằng tiếng Trung; tôi cũng thấy các tài khoản quảng bá đầu tư đáng ngờ, những tài khoản có tên người dùng kiểu FirstnameLastname3781264872 cứ vài giây lại tweet ba từ ngẫu nhiên cho nhau, và vài tweet hài hước

    • Dùng archive.md thì kém hiệu quả hơn nhiều, nhưng là cách đơn giản hơn để né giới hạn tốc độ. archive.md không bị ảnh hưởng bởi giới hạn tốc độ, nên hữu ích khi bạn không có tài khoản và thỉnh thoảng chỉ muốn xem vài tweet
  • Đây là dự án Nim ấn tượng nhất mà tôi từng thấy đến nay. Việc dựng lại một frontend lớn, làm cho cả xác thực hoạt động, rồi xử lý cả những hành vi kỳ lạ của API riêng tư là một khối lượng công việc khổng lồ
    Để đặt trong bối cảnh, nếu ở nội bộ Twitter thì thực tế có lẽ phải có một đội hơn 20 người hỗ trợ tính năng này. Xin vỗ tay cho tác giả đã làm được điều đó

    • Frontend dùng Karax, đây là thư viện frontend/ứng dụng một trang tôi thích nhất trong mọi ngôn ngữ. Dù vẫn có vài chỗ hơi thô, dùng nó thật sự rất vui
      https://github.com/karaxnim/karax
    • Tất nhiên nếu là Twitter thì sẽ có đội hơn 20 người, nhưng một phần cũng vì nếu Nitter sập thì chẳng ai quá bận tâm
  • Thật buồn cười là tác dụng của giới hạn tốc độ gần như không ảnh hưởng đến bot và scraper, nhưng lại gây thiệt hại nghiêm trọng cho nhóm người dùng bình thường của trang

    • Chỉ là giai thoại cá nhân thôi, nhưng trên các tài khoản của tôi, hoạt động bot đã tăng trong tháng trước rồi hoàn toàn dừng lại sau biện pháp giới hạn tốc độ gần đây
    • Nếu bật chế độ thuyết âm mưu, liệu có khi ngay từ đầu đó đã là mục đích? Twitter từng là không gian quan trọng để tổ chức các phong trào biểu tình như Arab Spring hay Occupy Wall Street
      Một trong những người giàu nhất thế giới, đồng thời có xu hướng mạnh mẽ chống công đoàn, đã mua không gian đó vào thời điểm bất bình đẳng ngày càng nghiêm trọng và sự gắn kết xã hội tan rã, rồi khiến nó không còn dùng được
      Giờ không còn không gian để tổ chức nữa, và một mối đe dọa đối với tư bản đã giảm đi
    • Trong nhiều trường hợp thì đúng vậy. Gần như bất kỳ ràng buộc nào được thêm vào cũng chỉ làm hại người dùng bình thường nhẹ nhàng, còn kẻ tấn công thường không phải là người dùng nhẹ nhàng
    • Có vẻ bot thậm chí còn tiếp tục tăng kể từ khi Elon mua trang này. Tôi nhận ngày càng nhiều DM từ tài khoản spam hơn, và không hiểu sao còn có cả từ Nhật Bản
      Dù Elmo làm gì thì dường như cũng không hoạt động đúng
  • Sau thay đổi API, bearer token mặc định tôi đang dùng cũng ngừng hoạt động, nhưng đổi theo cùng cách thì ứng dụng tải Twitter Spaces của tôi cũng hoạt động bình thường trở lại
    0: https://github.com/Chiplis/moonbird

  • Không cần đăng nhập mà vẫn xem được hồ sơ hoặc trả lời trên Twitter thì thật sự tuyệt vời
    Tôi là người dùng Nitter đã 4 năm, và chừng nào nó còn hoạt động tôi sẽ tiếp tục dùng

    • Cũng có thể dùng RSS. Chỉ cần thêm /rss vào sau URL
  • Đáng lẽ không được nói về Fight Club chứ

    • Dù vậy các trang Nitter vẫn được Google lập chỉ mục, nên cũng không hẳn là bí mật
  • Cái này có thật sự vĩnh viễn không? Tôi muốn biết thêm về bearer token này
    Trong các luồng issue GitHub khác, có vẻ mỗi khi tìm được cách vượt qua cơ chế bảo vệ của Twitter thì lại bị chặn
    Có vẻ token được hardcode nguyên văn trong mã nguồn, nghĩa là hàng nghìn instance Nitter trên toàn thế giới và hàng nghìn người dùng sẽ dùng cùng một token
    Các công ty AI cũng có khả năng dùng token đó, nên tôi không hiểu làm sao nó có thể tiếp tục hoạt động

    • Token này có vẻ được ứng dụng web/mobile chính thức của Twitter sử dụng. Vì vậy tôi nghĩ Twitter khó có thể đơn giản vô hiệu hóa hoặc chặn ngay
    • Tôi thắc mắc vì sao API “không chính thức” vẫn được cho phép hoạt động, dù chỉ chập chờn. Tôi biết ơn vì có Nitter để dùng, nhưng cảm giác có gì đó không thật sự hợp lý
    • Có vẻ API cũ đang hoạt động trở lại
    • Vì vậy có lẽ NewPipe hầu như lúc nào cũng không chạy tốt. Ngay cả khi chạy được thì cũng chậm một cách vô lý
  • Nghĩa là truy cập ẩn danh đã được khôi phục. Dù sao Nitter cũng không dùng Twitter API vốn đã biến mất. Đã từng có lúc nó được khôi phục trong chốc lát
    Twitter nên cung cấp một cổng web noscript/basic (x)html có khả năng tương tác

  • Vậy thì AI Scrapocalypse không còn là vấn đề tối quan trọng nữa sao?

    • Ngay từ đầu tôi đã hoài nghi rằng đó là lý do thật sự của giới hạn tốc độ
    • Có lẽ ông ta đã đe dọa lớn tiếng sẽ sa thải các yêu tinh xưởng làm việc, nên các yêu tinh đã làm xuyên đêm, ngủ trên mấy tấm nệm cũ trong văn phòng và hoàn thành Make Twitter Scale Again; giờ thế giới load balancer đã yên bình trở lại
  • Cái này giống lỗ hổng analog. Chừng nào dữ liệu còn được truyền từ server đến client, scraping sẽ luôn khả thi
    Tuy nhiên Apple đang cố làm việc này khó hơn: https://developer.apple.com/documentation/devicecheck/prepar...

    • Tôi không phải lập trình viên iOS, nhưng tò mò App Attest có ý nghĩa gì liên quan đến lỗ hổng được dùng ở đây