Twitter regularly changes the location of source videos because as X they now charge for the ability to download them directly. I've also noticed on iOS, if you attempt to screen record a video the app essentially crashes or glitches the video player.
As with many things, the solution is ffmpeg. After I got that upsell thing when I tried to download a video about a week ago, I found the correct ffmpeg incantation, mostly out of spite for Twitter. If you find the m3u8 request in devtools on a tweet, you can use something like the following:
(if anyone runs that command...you're welcome for the meme, unfortunately I don't know where it came from)