Closed devgaucho closed 1 year ago
it was working this morning but it appears nitter is now broken. viewing any profile results in the following error being thrown
An error has occured in one of your routes.
Detail: jsony.nim(45) parseHook
asyncfutures.nim(389) read
asyncfutures.nim(389) read
asyncfutures.nim(389) read
asyncfutures.nim(389) read
asyncfutures.nim(389) read
asyncfutures.nim(389) read
Expected { but end reached. At offset: 0
Libreddit gone tomorrow.
Wonder how long Invidious and FreeTube will last?
It's so over
the twitter rank has already dropped 6 places from yesterday to today 🤦♂️ https://ciscorank.com/s/twitter.com
Libreddit gone tomorrow.
Wonder how long Invidious and FreeTube will last?
At least reddit still has the old.reddit.com. Which is a pretty descent front-end (as long as you don't care with privacy), with twitter, you are pretty much forced to use that horrible garbage interface. But yeah, this data rush pretty much will make all platforms to garden walled themselves.
There are plenty of people who only engage in the modern internet through front-ends; myself being one of them. I have no interest in registering for sites; it took me ages to register a proper git.
One wonders what will happen when these self-inflicted stab-wounds deplete 'profit' rather then generate it?..
Removing access isn't going to make people want to use a site more.
And it certainly won't inflate user numbers, which I'd imagine is the end goal.
C'est la vie.
I'm glad I got to experience the internet as it was.
No chance in hell this is temporary unless it affects ad revenue
Maybe people will be smart enough to stop using proprietary garbage finally...
"Temporary emergency" measure that will always be in place forever.
This fork is working
This fork is working
But privacydev.net isn't.
I can confirm after building that fork that it also has the same issue
ERROR jsony.nim(45) parseHook
asyncfutures.nim(389) read
redpool.nim(68) getUserIdIter
asyncfutures.nim(389) read
asyncfutures.nim(389) read
asyncfutures.nim(389) read
asyncfutures.nim(389) read
asyncfutures.nim(389) read
Expected { but end reached. At offset: 0
404 Not Found: --- url: https://api.twitter.com/graphql/gkjsKepM6gl_HmFWoWKfgg/SearchTimeline?variables=%7B%22rawQuery%22%3A%22include%3Anativeretweets+%5C%22%23RoshamboCoin%5C%22%22%2C%22count%22%3A20%2C%22product%22%3A%22Latest%22%2C%22withDownvotePerspective%22%3Afalse%2C%22withReactionsMetadata%22%3Afalse%2C%22withReactionsPerspective%22%3Afalse%7D&features=%7B%22blue_business_profile_image_shape_enabled%22%3Afalse%2C%22creator_subscriptions_tweet_preview_api_enabled%22%3Atrue%2C%22freedom_of_speech_not_reach_fetch_enabled%22%3Afalse%2C%22graphql_is_translatable_rweb_tweet_is_translatable_enabled%22%3Afalse%2C%22highlights_tweets_tab_ui_enabled%22%3Afalse%2C%22interactive_text_enabled%22%3Afalse%2C%22longform_notetweets_consumption_enabled%22%3Atrue%2C%22longform_notetweets_inline_media_enabled%22%3Afalse%2C%22longform_notetweets_richtext_consumption_enabled%22%3Atrue%2C%22longform_notetweets_rich_text_read_enabled%22%3Afalse%2C%22responsive_web_edit_tweet_api_enabled%22%3Afalse%2C%22responsive_web_enhance_cards_enabled%22%3Afalse%2C%22responsive_web_graphql_exclude_directive_enabled%22%3Atrue%2C%22responsive_web_graphql_skip_user_profile_image_extensions_enabled%22%3Afalse%2C%22responsive_web_graphql_timeline_navigation_enabled%22%3Afalse%2C%22responsive_web_text_conversations_enabled%22%3Afalse%2C%22responsive_web_twitter_blue_verified_badge_is_enabled%22%3Atrue%2C%22rweb_lists_timeline_redesign_enabled%22%3Atrue%2C%22spaces_2022_h2_clipping%22%3Atrue%2C%22spaces_2022_h2_spaces_communities%22%3Atrue%2C%22standardized_nudges_misinfo%22%3Afalse%2C%22tweet_awards_web_tipping_enabled%22%3Afalse%2C%22tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled%22%3Afalse%2C%22tweetypie_unmention_optimization_enabled%22%3Afalse%2C%22verified_phone_label_enabled%22%3Afalse%2C%22vibe_api_enabled%22%3Afalse%2C%22view_counts_everywhere_api_enabled%22%3Afalse%7D
This fork is working https://github.com/PrivacyDevel/nitter/
But privacydev.net isn't.
That instance is always pegged from the sheer volume of traffic alone.
thoughts?
"There is nothing more permanent than a temporary measure". Either now or in the future.
https://github.com/miguelfreitas/twister-core https://github.com/szelok/twister-android
It's time to admit: providing an alternative frontend to Twitter was an idea determined to fail. What should have been done, is mirroring the content of Twitter into Twister automatically, this way having more content in twister than in twitter and creating incentives for users to join twister instead of twitter.
Nitter.net returns the following "Jester route exception" which seems quite unusual for the twitter gateway not being accessible:
"An error has occured in one of your routes.
Detail: /home/ubuntu/nitter/src/nitter.nim(61) nitter /home/ubuntu/.nimble/pkgs/jester-#baca3f/jester.nim(511) serve /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(1956) runForever /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(1653) poll /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(1394) runOnce /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(234) processPendingCallbacks /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncmacro.nim(28) getGraphUserNimAsyncContinue /home/ubuntu/nitter/src/api.nim(13) getGraphUserIter /home/ubuntu/nitter/src/experimental/parser/graphql.nim(7) parseGraphUser /home/ubuntu/.nimble/pkgs/jsony-#ea811be/jsony.nim(590) fromJson /home/ubuntu/.nimble/pkgs/jsony-#ea811be/jsony.nim(45) parseHook [[reraised from: /home/ubuntu/nitter/src/nitter.nim(61) nitter /home/ubuntu/.nimble/pkgs/jester-#baca3f/jester.nim(511) serve /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(1956) runForever /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(1653) poll /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(1394) runOnce /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(234) processPendingCallbacks /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncmacro.nim(28) getCachedUserNimAsyncContinue /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncmacro.nim(131) getCachedUserIter /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncfutures.nim(389) read ]] [[reraised from: /home/ubuntu/nitter/src/nitter.nim(61) nitter /home/ubuntu/.nimble/pkgs/jester-#baca3f/jester.nim(511) serve /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(1956) runForever /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(1653) poll /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(1394) runOnce /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(234) processPendingCallbacks /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncmacro.nim(28) fetchProfileNimAsyncContinue /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncmacro.nim(131) fetchProfileIter /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncfutures.nim(389) read ]] [[reraised from: /home/ubuntu/nitter/src/nitter.nim(61) nitter /home/ubuntu/.nimble/pkgs/jester-#baca3f/jester.nim(511) serve /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(1956) runForever /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(1653) poll /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(1394) runOnce /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(234) processPendingCallbacks /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncmacro.nim(28) showTimelineNimAsyncContinue /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncmacro.nim(131) showTimelineIter /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncfutures.nim(389) read ]] [[reraised from: /home/ubuntu/nitter/src/nitter.nim(61) nitter /home/ubuntu/.nimble/pkgs/jester-#baca3f/jester.nim(511) serve /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(1956) runForever /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(1653) poll /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(1394) runOnce /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(234) processPendingCallbacks /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncmacro.nim(28) matchNimAsyncContinue /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncmacro.nim(131) matchIter /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncfutures.nim(389) read ]] [[reraised from: /home/ubuntu/nitter/src/nitter.nim(61) nitter /home/ubuntu/.nimble/pkgs/jester-#baca3f/jester.nim(511) serve /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(1956) runForever /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(1653) poll /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(1394) runOnce /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(234) processPendingCallbacks /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncmacro.nim(28) dispatchNimAsyncContinue /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncmacro.nim(131) dispatchIter /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncfutures.nim(389) read ]] [[reraised from: /home/ubuntu/nitter/src/nitter.nim(61) nitter /home/ubuntu/.nimble/pkgs/jester-#baca3f/jester.nim(511) serve /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(1956) runForever /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(1653) poll /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(1394) runOnce /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncdispatch.nim(234) processPendingCallbacks /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncmacro.nim(28) handleRequestSlowNimAsyncContinue /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncmacro.nim(131) handleRequestSlowIter /home/ubuntu/.choosenim/toolchains/nim-1.6.10/lib/pure/asyncfutures.nim(389) read ]] Expected { but end reached. At offset: 0"
Thanks anyway for providing and maintaining Nitter.
This is a sad year for social media.
Cheers lads, was a wild ride.
Couldn't we use accounts to scrape the data (one per instance)? As far as I know this was already done for NSFW-content so maybe it could be applied to all content now
There is one instance that is still functional: https://tweet.whateveritworks.org Partly functional, anyway...individual tweets are displayed, but profiles produce a 502 error.
Well, big thanks to @zedeus for nitter, have been enjoying it for some time. Hope it can be fixed, but... it was going downhill for some time already. Around a month ago twitter stopped working with disabled cookies, now this.
Okay, well, to Mastodon I guess. It's a shame they're killing this. I don't think there are many here who will respond to this by going back to regular Twitter. I'm now just done with Twitter for good I suppose. Thanks to everyone who tried their best.
Couldn't we use accounts to scrape the data (one per instance)? As far as I know this was already done for NSFW-content so maybe it could be applied to all content now
Almost certainly yes, but 1) this requires registering burner accounts, possibly with some regularity as I suspect they'll get banned, and 2) the accounts will need to be linked to phone numbers because Twitter requires this if your account looks suspicious at all.
I don't think this is all that hard but it adds extra cost on top of running a server and it's annoying.
Thanks Nitter devs, you have been heroes of privacy, for a while. :)
I don't think this will affect me much, because I have not been interested in Twitter's content for a while. This network has been slowly and painfully dying since Musk bought it (and even before that, it became mostly a trolling platform for political people to hate each others), so whatever. Most of my social feeds go through Mastodon and Lemmy, nowadays, anyway. This is the end of an era, what comes next is exciting!
Glad to see all sorts of "social" media dying 😍
Can you scrape the embedded tweet instead?
https://platform.twitter.com/embed/Tweet.html?id=1674865731136020505
i don't particularly know how nitter scrapes, but i'm able to see tweets and profiles in my browser by setting the useragent to "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
i don't particularly know how nitter scrapes, but i'm able to see tweets and profiles in my browser by setting the useragent to "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
Someone has reported that this trick does not work anymore. Fun fact: it was the same trick that was used to get the pre-Polymer UI back on YouTube, when it was still available.
I don’t know how long this “temporary” measure will last, nor if it will be temporary at all. In the worse scenario, it was a real pleasure to use Nitter, @zedeus ! Let’s stay tuned, but until facts get me wrong, I consider both Nitter and Twitter are dead from now on.
Thank you!
(Now, if you want to do a Nitter clone for Mastodon, to be able to browse it without JS needed, I won’t say no to this)
Can you scrape the embedded tweet instead?
https://platform.twitter.com/embed/Tweet.html?id=1674865731136020505
This could definitely work. Problem is that we still have to get the tweets from a specific user.
Can you scrape the embedded tweet instead? https://platform.twitter.com/embed/Tweet.html?id=1674865731136020505
This could definitely work. Problem is that we still have to get the tweets from a specific user.
Could possibly scrape this for user timeline, although it only has the last couple of tweets. https://syndication.twitter.com/srv/timeline-profile/screen-name/TwitterDev?showReplies=true
note the Android app still works without login, which means the "anonymous flow" is still possible:
im having success scraping the embedded timeline as suggested by @fREAST
https://rss-bridge.org/bridge01/?action=display&bridge=TwitterBridge&context=By+username&u=DailyCaller&format=Html (1 hour cache)
[0] code for the temp fix: https://github.com/dvikan/rss-bridge/commit/c4a82ee3baf832cca6068634cfd1a97b104afeb9
Is this true? I can't check because I don't have a_ twitter _account hehe
true https://platform.twitter.com/embed/Tweet.html?id=1674865731136020505
You can in fact live without Twitter, you should give it a try
Libreddit gone tomorrow.
Wonder how long Invidious and FreeTube will last?
Libreddit isn't using the Reddit API. it's scraping via public information. Unless Reddit decides to lock you out unless you're logged in, Libreddit will continue to work
You can in fact live without Twitter, you should give it a try
Absolutely! in fact this is what i do daily.
However, there are still certain things that i need to use twitter for in my work, such as inspecting certain tweets from services that i use. Or just watching around friends that did not made the move just yet.
That's not to mention that, for nitter in particular, you can easily use a twitter account as an RSS feed for brands and services that don't have any other ways of communication.
Yes, a life without twitter is possible. Which is what Nitter mostly stands out for. Refraining from using twitter as a main tool and instead as an assistive thing.
You can in fact live without Twitter, you should give it a try
This would be easier if people stopped using twitter to share current news which the MSM is entirely incapable of reporting on accurately.
You can live without all that stuff too. Stop reading news
Libreddit gone tomorrow. Wonder how long Invidious and FreeTube will last?
Libreddit isn't using the Reddit API. it's scraping via public information. Unless Reddit decides to lock you out unless you're logged in, Libreddit will continue to work
@tuxpizza False. So much, that even the current maintainer is fearful of Libreddit's Future at the moment
You can live without all that stuff too. Stop reading news
"Ignorance is bliss" (If only bad things went away when you didn't know about them)
You know less when you read the news though
Can you stop with the lecturing? It's asinine.
Libreddit gone tomorrow. Wonder how long Invidious and FreeTube will last?
Libreddit isn't using the Reddit API. it's scraping via public information. Unless Reddit decides to lock you out unless you're logged in, Libreddit will continue to work
@tuxpizza False. So much, that even the current maintainer is fearful of Libreddit's Future at the moment
Ahh I guess I was mistaken. I thought it was similar to Nitter but they are using the API but with an "Anonymous" endpoint. I'm betting on Reddit removing that aswell. Sucks.
You know less when you read the news though
How can I mark this as spam/off-topic? The report button is missing from the three dots.
How can I mark this as spam/off-topic? The report button is missing from the three dots.
That's because this isn't reddit
The privacydev fork does work, but in an extremely limited manner. only tweet search works, and only if the xCsrfToken and cookieHeader settings are configured. both values are request headers when you're logged into twitter.
using it for multi-account feeds also works* in a limited manner, when not receiving instance limited/bad gateway errors of course. :/
*edit: seems it's no longer the case.
thank you to everyone developing + working on nitter all this time.
why is everyone crying? all you have to do is make an account (and log it into the instance) now
accounts can be deleted and have limited access, which increases the complexity of the code
why is everyone crying? all you have to do is make an account (and log it into the instance) now
Requires a phone number with tor and having an account at all reduces anonymity.
https://techcrunch.com/2023/06/30/twitter-now-requires-an-account-to-view-tweets/
the nitter crawler will need to be recreated...