Videos or GIFs on X are black in Safari
A video or GIF on X (Twitter) shows its first frame or a black box. You press play, the timer runs, the picture stays black. In Chrome the same post plays fine.
The short answer: quit Safari completely with Cmd+Q and open it again. Closing its windows isn't enough.
What it looks like
- GIFs and videos on x.com show their first frame, or a black or grey box.
- You press play: the timer counts up, the picture stays black.
- Even the video's own link (an .mp4 on video.twimg.com) is black, and so is the preview of a video you're attaching to a new post, which is still only on your Mac.
- Chrome plays the same post fine.
How to fix it, in this order
- Quit Safari with Cmd+Q (or Safari › Quit Safari) and open it again. Closing the windows leaves Safari running. This is the step that fixed it for us.
- Still black? Restart the Mac.
- Still black? Turn off Safari extensions one at a time in Safari › Settings › Extensions, and try the video after each one.
Why Safari, and not Chrome
Chrome decodes and draws video in its own engine. Safari hands video to a separate helper process, com.apple.WebKit.GPU, which uses macOS's own media system. Closing Safari's windows doesn't stop that helper. On the Mac where we saw this, Safari and the helper had been running for 16 hours and the helper had got stuck: every video played black. Quitting Safari starts it fresh.
It isn't the file or your network
- The video was arriving: the timer kept moving.
- A video stored on the Mac, with no network involved, was black too.
- Chrome and Safari got the same address for the video server. (Chrome can switch to DNS over HTTPS when you use Cloudflare or Google DNS, but the answer was the same.)
Optional: see how long the helper has been running
In Activity Monitor, search for “WebKit”. Or paste this into Terminal:
ps -axo etime,comm | grep WebKit.GPU
The first column is how long each helper has been running (hours:minutes:seconds, with the days in front after a day). Other apps use the same helper, so you may see several lines. A long time is a hint, not proof.
We hit this while posting a Bytewell demo. Bytewell itself is a disk cleaner for Mac developers.