Chromium MV3 extension that adds a download button to every video on x.com
  • JavaScript 73.7%
  • CSS 26.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Nikita Kolmogorov d1bb4c5d2d Add funding links
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 15:24:48 -07:00
.github Add funding links 2026-10-08 15:24:48 -07:00
icons X Video Downloader: MV3 extension adding a download button to x.com videos 2026-05-25 06:41:17 -07:00
.gitignore X Video Downloader: MV3 extension adding a download button to x.com videos 2026-05-25 06:41:17 -07:00
background.js X Video Downloader: MV3 extension adding a download button to x.com videos 2026-05-25 06:41:17 -07:00
content.css X Video Downloader: MV3 extension adding a download button to x.com videos 2026-05-25 06:41:17 -07:00
content.js X Video Downloader: MV3 extension adding a download button to x.com videos 2026-05-25 06:41:17 -07:00
LICENSE X Video Downloader: MV3 extension adding a download button to x.com videos 2026-05-25 06:41:17 -07:00
manifest.json X Video Downloader: MV3 extension adding a download button to x.com videos 2026-05-25 06:41:17 -07:00
README.md X Video Downloader: MV3 extension adding a download button to x.com videos 2026-05-25 06:41:17 -07:00

X Video Downloader

A minimal Chromium (Manifest V3) extension that adds a download button to every video on x.com. Click the button and the post's video is saved to your downloads. That's all it does.

How it works

X plays videos from a blob URL, so the real file isn't present on the page. The extension:

  1. Adds a small download button over each <video> (visible on hover).
  2. On click, finds the tweet id that owns the video.
  3. Asks the service worker to resolve the file via the public cdn.syndication.twimg.com/tweet-result endpoint, which returns the post's media with direct .mp4 URLs.
  4. Downloads the highest-bitrate .mp4 via the chrome.downloads API.

No tracking, no accounts, no other behavior.

Install (unpacked)

  1. Open chrome://extensions in Chromium.
  2. Toggle Developer mode on (top right).
  3. Click Load unpacked and select this folder.

The extension stays installed across restarts. Visit x.com, hover a video, and click the download button in the top-left corner.

Limitations

  • Only works for videos resolvable through the public syndication endpoint. Protected, deleted, or age-restricted posts won't resolve.
  • Videos inside a quoted tweet aren't currently handled.

Files

File Purpose
manifest.json MV3 manifest, permissions, scripts
content.js Injects the button, finds the tweet id
content.css Button styling and states
background.js Resolves the mp4 URL and downloads it

License

MIT