FxTwitter: FixTweet is currently broken due to Twitter API changes

Run curl https://d.fxtwitter.com/Twitter/status/1601692766257709056 would get Sorry, that Tweet doesn't exist :( Running in the browser will redirect to the raw link.

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Reactions: 8
  • Comments: 57 (19 by maintainers)

Most upvoted comments

API access is now based on tier levels with paid features. Fun times https://twittercommunity.com/t/announcing-new-access-tiers-for-the-twitter-api/188728

God, I hate Elon Musk.

I just finished refactoring everything to use the graphQL API in #325, and then an hour later it completely stops working with guest tokens that previously worked fine…

Twitter’s web app also no longer lets you view content when signed out, which is alarming. However, it seems it might not be the full story. I tried seeing if authenticating these requests as a user makes them function, and it seems it still fails to go through. Furthermore, while Twitter made it so you can’t view literally anything, FixTweet’s user API is still working with guest token API. So I’m pretty sure Twitter pushed several changes at once to try to lock down scraping of their API… This will likely not be impossible to work around, but it presents us with quite the challenge…

Edit: At the time of writing, what I said was true, and the user API still worked, but later on it seems Twitter even clamped down on guest token access of API using GraphQL. The syndication API should let us have at least some functionality as we look for longer term solutions. Thank you for your patience!

I don’t know it is temp or not but seems fxtwitter start working again?

PR branch was deployed directly. It works for sfw tweets, albeit missing some information that that endpoint does not expose. Going to clean up the messy janky implementation while waiting to see how everything unfolds, to see if the much better graphQL API becomes available

even if no other options open up, that syndication API would be enough for our use case. please don’t give up on fixtweet 🙂

@EthanC It does look very promising that we’ll be able to restore functionality 100%, it’s just a matter of changing how we request guest tokens (to be more like their method) and migrate to GraphQL endpoints

https://cdn.syndication.twimg.com/tweet-result?id=1674865731136020505&lang=en This endpoint is working for non-NSFW tweets

This isn’t working at all anymore.

https://syndication.twitter.com/srv/timeline-profile/screen-name/{handle} endpoint:

  • Accept a Twitter handle

  • HTML format, with JSON response inside a script tag

    • Tweet Objects are located under .props.pageProps.timeline.entries

      • In the same format as the original Guest API
  • Seems do not support arguments for loading beyond the oldest tweet provided

Welp, looks like this endpoint has stopped working now too. Right when I was in the process of refactoring things again… At least the other one still does… For now… image

Most functionality of FixTweet that was lost has been restored: -T.co link replacement -NSFW Tweets -Tweet translation

The only thing that is still missing is the dynamic colors for Discord embeds, and unfortunately it seems Twitter is not giving out that data on the graphql endpoints, so we might be hosed there.

Since almost all functionality is back, I’ll go ahead and close this specific issue. Feel free to open another issue if you have other issues with any particular tweets!

Yeah… The same issues that Twitter had before are back :S

I pushed a change I had been testing before which seems to have fixed this. I still need to fix other aspects of things not working, but at least basic functionality is back again!

Well let’s see how temporary this “temporary” fix is.

@NicoTheCinderace Wait, did Elon change anything else? NSFW Tweets are still broken (sorry), and other Tweets I tried seemed to work okay. Did Twitter/X undo the change? If not, please give me an example URL and I’ll see what I can do

https://fxtwitter.com/Xezeno1/status/1691100785546027008?t=mTtrwksFxgpuhXDWc7CD0A&s=19

Fxtwitter is broken again. You guys need to fix this before it gets worse. @dangeredwolf @Wazbat

@buxy-xyz The entire update hasn’t been undone, as you still can’t view profiles while logged out, and tweet replies don’t show. It’s also using a completely diferent endpoint. Also random requests still 404 when viewing tweets while logged out image

Situation still sucks

I’ve updated the fix PR to use this new endpoint, but user fetching may need another fix

@buxy-xyz From my understanding, Twitter still removed the conversation api we used before so we still need to move to GraphQL, but tweets appearing while logged out again is at least good news

Seeing how things are playing out I’m kind losing hope that the old endpoints start working again for logged out users

Some summary: https://cdn.syndication.twimg.com/tweet-result?id={tweet_id} endpoint:

  • Accept a Tweet ID
  • JSON format if Response Code is not 404
  • Tweet Object is in another format
    • created_at format is different
    • photos and video keys are used instead of extended_entities
    • No full_text, only text
    • No retweet count is provided

https://syndication.twitter.com/srv/timeline-profile/screen-name/{handle} endpoint:

  • Accept a Twitter handle
  • HTML format, with JSON response inside a script tag
    • Tweet Objects are located under .props.pageProps.timeline.entries
      • In the same format as the original Guest API
  • Seems do not support arguments for loading beyond the oldest tweet provided

https://platform.twitter.com/embed/Tweet.html?id=1675187969420828672 it would be interesting to redirect users to the official embed url so they don’t need to log into twitter to read it since the embeds are not working

Yep it seems moving to GraphQL fixes these issues, thank you so much @Wazbat for helping fix our API stack aaaaaaaaa

I’ve also updated the title as the issue is more all-encompassing.

Can confirm I am experiencing this issue with any fxtwitter embed