1 pontos por GN⁺ 2023-07-11 | 1 comentários | Compartilhar no WhatsApp
  • O PR #927 “Fix everything” do zedeus/nitter foi mesclado ao master em 10 de julho de 2023, trazendo mudanças para restaurar funcionalidades quebradas
  • A recuperação foi feita usando um novo bearer token e um conjunto atualizado de endpoints, junto com uma atualização do parser
  • A busca não foi totalmente restaurada; pelo commit, a busca de usuários foi ativada, mas a busca de tweets foi desativada
  • Como mudança adicional, multi-user timelines foram desativadas por enquanto, e também foi incluida uma correção de parsing de pinned tombstone
  • O RSS funciona, mas está desativado no nitter.net, então a disponibilidade depende da configuração da instância

Escopo das correções mescladas

  • O PR #927 “Fix everything” do zedeus/nitter foi mesclado do branch elon-fix para o master
    • A data do merge foi 10 de julho de 2023
    • Foram incluídos 4 commits no total
    • Após o merge, o branch elon-fix foi excluído

Principal método de recuperação

  • O ponto central da mudança é usar um novo bearer token e um conjunto atualizado de endpoints
  • O parser também foi atualizado para funcionar com a nova estrutura de respostas
  • Na descrição inicial, a funcionalidade ausente foi resumida como search

Mudanças relacionadas a busca e timelines

  • A busca foi restaurada apenas parcialmente
    • Com o commit Enable user search, disable tweet search, a busca de usuários foi ativada
    • A busca de tweets foi desativada
  • Com o commit Disable multi-user timelines for now, as multi-user timelines foram desativadas por enquanto

Correção de parsing

  • O commit Fix parsing of pinned tombstone foi incluído
  • Um problema de parsing relacionado a pinned tombstone foi corrigido separadamente

Estado do RSS

  • Nos comentários, foi perguntado se o RSS funcionava
  • zedeus respondeu que o RSS funciona, mas está desativado no nitter.net
  • Portanto, o suporte a RSS em si e o estado de ativação no nitter.net são coisas separadas

1 comentários

 
GN⁺ 2023-07-11
Opiniões no Hacker News
  • Aviso: isto pode soar como uma longa ostentação meio relacionada, mas, em resumo, contornar o limite de taxa do Twitter não é tão difícil
    Eu não queria mexer no irritante certificate pinning do Twitter, então coloquei o APK do Twitter no Corellium, ativei o “network monitor” lá e abri o app do Twitter, que dava para usar mesmo sem login
    Ao pesquisar e ver tweets enquanto conferia os logs de requisições, havia um procedimento de token de convidado parecido com o do site, com apenas algumas diferenças
    Reproduzindo essas requisições, dá para criar alguns tokens OAuth sem expiração por dia com um único IP. Esses tokens são para usuários não autenticados, então não têm permissão de escrita, mas isso não era necessário aqui
    Comprando cerca de 1 GB de banda de um provedor de proxy com um grande pool de IPs, é fácil obter milhares de tokens/secrets usando pouquíssima banda, e cada um tem seu próprio limite de taxa. Não importava muito de qual IP o token era realmente usado
    Depois segui https://docs.google.com/document/d/1xVrPoNutyqTdQ04DXBEZW4ZW... e, aproveitando que /statuses/lookup.json ainda conseguia retornar 100 tweets de uma vez, reconstruí algo próximo a 50% do Firehose do Twitter
    O Twitter também não bloqueava IPs de datacenter. Tentei exibir os dados em https://firehose.lol, mas isso exigia centenas de requisições por segundo, o que me deixou desconfortável, então acabei desligando o programa sem deixá-lo rodar por mais do que alguns minutos
    Foi interessante ver uma parte do Firehose por alguns minutos. No começo esqueci de ocultar tweets marcados como possibly_sensitive, então vi por alguns segundos bastante material sugestivo; havia muitos anúncios de apostas em chinês, embora o Twitter seja bloqueado na China; contas suspeitas promovendo investimentos; contas com nomes de usuário como FirstnameLastname3781264872 tuitando três palavras aleatórias umas para as outras a cada poucos segundos; e alguns tweets engraçados

    • Usando archive.md, dá para contornar o limite de taxa de forma muito menos eficiente, mas mais simples. O archive.md não é afetado pelo limite de taxa, então é útil quando você só quer ver alguns tweets de vez em quando sem ter uma conta
  • É o projeto em Nim mais impressionante que já vi até agora. Recriar um grande front-end, fazer a autenticação funcionar e ainda lidar com comportamentos peculiares de uma API privada é um trabalho enorme
    Para contextualizar, dentro do Twitter provavelmente haveria uma equipe com mais de 20 pessoas só para dar suporte a essa funcionalidade. Aplausos ao autor por ter conseguido fazer isso

    • O front-end usa Karax, que é minha biblioteca de front-end/aplicação de página única favorita entre todas as linguagens. Tem algumas arestas, mas é realmente muito divertido de usar
      https://github.com/karaxnim/karax
    • Claro que no Twitter haveria uma equipe com mais de 20 pessoas, mas isso também é porque ninguém se importa muito se o Nitter sair do ar
  • É engraçado que o efeito dos limites de taxa quase não tenha afetado bots e scrapers, mas tenha prejudicado seriamente a base de usuários comuns do site

    • É algo bem anedótico, mas nas minhas contas a atividade de bots vinha aumentando no mês passado e parou completamente depois das medidas recentes de limite de taxa
    • Entrando no modo teoria da conspiração: e se esse fosse o objetivo desde o início? O Twitter era um espaço importante para organizar protestos como a Primavera Árabe ou o Occupy Wall Street
      Uma das pessoas mais ricas do mundo, e também fortemente antissindical, comprou esse espaço e o tornou inutilizável em um momento em que a desigualdade está piorando cada vez mais e a coesão social está se desfazendo
      Agora não há mais um espaço para se organizar, e há uma ameaça a menos ao capital
    • Em muitos casos, é verdade. Quase qualquer restrição adicionada prejudica apenas os usuários casuais leves, enquanto os atacantes geralmente não são usuários leves
    • Parece que os bots só continuam aumentando desde que Elon comprou o site. Tenho recebido cada vez mais DMs de contas de spam e, por algum motivo, algumas vêm do Japão
      Parece que nada que o Elmo faz funciona direito
  • Depois da mudança da API, o bearer token padrão que eu usava também parou, mas, mudando da mesma forma, meu app de download do Twitter Spaces voltou a funcionar normalmente
    0: https://github.com/Chiplis/moonbird

  • Ainda não dá para ver perfis ou respostas no Twitter sem login, e isso é realmente incrível
    Sou usuário do Nitter há 4 anos e vou continuar usando enquanto funcionar

    • Também dá para usar RSS. Basta acrescentar /rss ao fim da URL
  • Não era para falar sobre o Clube da Luta

    • Ainda assim, as páginas do Nitter são indexadas pelo Google, então não é exatamente um segredo
  • Isso é realmente permanente? Quero saber mais sobre esse bearer token
    Em outras threads de issues no GitHub, parecia que toda vez que encontravam uma forma de contornar as proteções do Twitter, ela era bloqueada
    Parece que o token foi literalmente hardcoded no código-fonte, o que significa que milhares de instâncias do Nitter no mundo todo e milhares de usuários vão usar o mesmo token
    Empresas de IA também poderiam potencialmente usar esse token, então não entendo como isso pode continuar funcionando

    • Esse token parece ser usado pelos apps oficiais web/mobile do Twitter. Por isso acho difícil o Twitter simplesmente desativá-lo ou bloqueá-lo imediatamente
    • É curioso que a API “não oficial” tenha sido autorizada a continuar funcionando, ao menos de forma intermitente. Embora eu use o Nitter com gratidão, sinto que alguma coisa não fecha muito bem
    • Parece que a API antiga voltou a funcionar
    • Então deve ser por isso que o NewPipe não funciona bem na maior parte do tempo. Mesmo quando funciona, é absurdamente lento
  • Quer dizer que o acesso anônimo foi restaurado. O Nitter, de qualquer forma, não usa a API do Twitter que desapareceu. Houve uma breve restauração, mas
    O Twitter deveria oferecer um portal web interoperável noscript/basic (x)html

  • Então o AI Scrapocalypse deixou de ser uma questão mortalmente importante?

    • Desde o começo eu era cético quanto a essa ser a verdadeira razão do limite de taxa
    • Talvez ele tenha ameaçado em voz alta demitir os duendes da fábrica, então os duendes trabalharam a noite toda, dormiram nos colchões velhos do escritório e conseguiram Make Twitter Scale Again, e agora o mundo dos balanceadores de carga voltou à paz
  • Isto é parecido com uma brecha analógica. Enquanto os dados forem entregues do servidor ao cliente, scraping sempre será possível
    Mas a Apple está tentando dificultar isso: https://developer.apple.com/documentation/devicecheck/prepar...

    • Não sou desenvolvedor iOS, mas, em relação à brecha usada aqui, fico curioso sobre o que o App Attest significa