Nitter voltou a funcionar
(github.com/zedeus)- O PR #927 “Fix everything” do zedeus/nitter foi mesclado ao
masterem 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-fixpara omaster- A data do merge foi 10 de julho de 2023
- Foram incluídos 4 commits no total
- Após o merge, o branch
elon-fixfoi 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
- 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 tombstonefoi 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
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
É 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
https://github.com/karaxnim/karax
É 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
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
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
/rssao fim da URLNão era para falar sobre o Clube da Luta
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
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?
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...