Sno Station
Sno Station is your agents' workstation: open-source software that turns the AI agents you already run into one squad on your own machine. Two heads are better than one, and they get better with every
X Video Downloader is a free Chrome extension to download X (Twitter) videos in 1080p, plus GIFs and photos, in one click. No account, no watermark, no tracking.
PluginsJavaScript · CSSGitHub @wangsen2020OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Open-source Chrome/Edge (MV3) extension to download videos, GIFs and images from X / Twitter with quality selection, a custom folder, unique filenames and a full download history.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A rewritten, open‑source Chrome/Edge extension (Manifest V3) for downloading
videos, GIFs and images from X / Twitter.
In the X mobile app many videos have no Download or Save option at all — you
can watch them, but you can't keep them. Open the same post on your computer
and this extension puts a download icon right next to Like and Bookmark. If the
video plays in your browser, one click saves it as a normal MP4, in the highest
quality X serves. Right‑click the icon to pick another resolution.
It was also built to fix three things that the older “x‑downloader” style extensions
get wrong:Read the full README ↗A rewritten, open‑source Chrome/Edge extension (Manifest V3) for downloading videos, GIFs and images from X / Twitter.
In the X mobile app many videos have no Download or Save option at all — you can watch them, but you can't keep them. Open the same post on your computer and this extension puts a download icon right next to Like and Bookmark. If the video plays in your browser, one click saves it as a normal MP4, in the highest quality X serves. Right‑click the icon to pick another resolution.
It was also built to fix three things that the older “x‑downloader” style extensions get wrong:
| Problem in the old extension | What this one does |
|---|---|
| No download history | Every download is recorded on the options page — thumbnail, account, quality, size, date, state — with search, re‑download, “show file”, export/import JSON. |
| No control over where files go | A configurable subfolder inside your Downloads folder, plus an optional “Ask where to save every time” mode that opens Chrome’s Save‑As dialog so you can pick any location. |
| Always downloads the wrong quality | A default quality setting (Highest / 1080p / 720p / 480p / 360p / Lowest, “closest below” your target) and a per‑download quality picker in the popup and the timeline button. |
| Saves the same file twice | Already‑downloaded media is recognised (by the media itself, not the post, so reposts count too). One click shows “Already downloaded” instead of a (1) copy; a second icon downloads it anyway. |
| Everything in one heap | Files go into one folder per account by default: Downloads/X Media Downloader/<user>/. |
No servers, no tracking, no account. Everything runs locally in your browser.
Website, guides & support: xdown.goodexts.com — e.g. how to download X videos, getting the 1080p version.
Languages: English, 简体中文, 繁體中文, 日本語, 한국어, Español (España), Español (Latinoamérica), Português (Brasil), العربية. The whole interface (popup, history page, the icon's tooltip, menus and notices on X) follows your browser's language automatically, and falls back to English otherwise. Arabic gets a right‑to‑left popup and history page.
⬇ X (Twitter) Video Downloader — Chrome Web Store
One click, automatic updates. Works in Chrome, Edge and any other Chromium browser that can install from the Web Store.
For development, or if you would rather run the code you can read. There is no build step — you load the folder directly. Takes about a minute.
Get the code. Clone it, or download the ZIP from the green Code button above and unzip it somewhere permanent (don't delete the folder afterwards — Chrome loads the extension from it every launch).
git clone https://github.com/wangsen2020/x-media-downloader.git
Open the extensions page. Type chrome://extensions in the address bar
and press Enter. On Edge it's edge://extensions.
Turn on Developer mode. The toggle is in the top‑right corner of that page (在中文界面里是右上角的 “开发者模式”). Three buttons appear.
Load unpacked. Click Load unpacked (“加载未打包的扩展程序”) and
pick the repository folder — the one that directly contains manifest.json.
Done. The product website welcome page opens automatically on first install. Open the puzzle‑piece menu in the toolbar and pin X Media Downloader so its icon is always visible.
Chrome 116+ / Edge 116+ (needs
chrome.storage.sessionand MV3 service‑worker modules).
git pull
Then go back to chrome://extensions and click the ↻ reload icon on the
X Media Downloader card.
x.com/<user>/media),
click the toolbar icon and choose Download all media from @user. A small
panel at the top of the page shows progress, with pause and stop icons. See
Batch download below.| Setting | Notes |
|---|---|
| Default video quality | Highest, a target height (1080/720/480/360, resolved as the best rendition that does not exceed it), or Lowest. |
| Filename template | Default {user}_{text}_{datetime}_{id} — author + first words of the tweet + the tweet's post time + its id, so names are descriptive and collision-proof. Tokens: {user} {text} {datetime} {date} {time} {id} {quality} {height} {bitrate} {index}. .mp4 is appended automatically; / nests folders. |
| Subfolder | A relative folder inside your browser’s Downloads directory. Default X Media Downloader/{user} (one folder per account); takes the same tokens as the filename. Blank = straight into Downloads. |
| Ask where to save every time | Opens the native Save‑As dialog for every download. Overrides the subfolder. |
| Show a Download button in the timeline | Toggle the injected button. |
| Timeline button downloads immediately | Off = the button opens a quality menu instead. |
| Keep at most | History is trimmed to this many entries (oldest dropped). |
Batch download is built to look like a person scrolling, not a scraper:
Browser extensions are sandboxed: the chrome.downloads API can only write
inside the browser’s Downloads folder (a relative subfolder is allowed) or
prompt you with the Save‑As dialog. There is no API to set an arbitrary
D:\Videos\... target silently. This extension gives you both supported
options; pick “Ask where to save every time” if you need per‑file control, or
change Chrome’s Downloads location in chrome://settings/downloads.
injected.js (page context) – hooks fetch() / XHR, reads X's own GraphQL
responses, extracts video_info.variants
│ window.postMessage
▼
content.js (content script) – caches media per tweet, injects the timeline
button, relays to the worker
│ chrome.runtime.sendMessage
▼
background.js (service worker) – resolves media (live capture → session cache →
cdn.syndication.twimg.com fallback), picks the
variant for the requested quality, builds the
filename, calls chrome.downloads.download,
tracks progress into history
│
▼
options / popup (chrome.storage.local) – settings + history UI
The syndication fallback (cdn.syndication.twimg.com/tweet-result) is the same
public endpoint embedded tweets use, so single‑tweet pages work even if the API
response was never seen. Only progressive MP4 renditions are offered
(HLS/m3u8 playlists can’t be saved as a single file by the downloads API).
Images are read straight from the tweet’s <img> elements — both attached
photos (pbs.twimg.com/media/…) and link‑preview card thumbnails
(…/card_img/…). The name= size parameter is rewritten to orig so you get
full resolution, and the real extension (jpg / png) is kept. Multi‑image
posts download every picture, numbered _1…_4.
chrome.storage.local on your machine and never
leave it. Export is a manual button.downloads (save files), storage (settings/history),
host access to x.com / twitter.com and cdn.syndication.twimg.com.Plain JS, no build step. Edit files, then hit Reload on the extensions page.
src/
injected.js page hook
content.js content script + timeline UI (classic script, no imports)
content-batch.js Media-tab batch controller (loaded with dynamic import)
content.css
background.js service worker
lib/media.js variant parsing, quality pick, filename builder, syndication
lib/store.js settings, history and downloaded-index persistence
lib/batch.js batch pacing / rate-limit / queue policy (pure)
lib/i18n.js chrome.i18n helpers for popup and options
popup/ toolbar popup
options/ history + settings page
_locales/ 9 languages; every locale has the same keys as en
icons/ generated PNGs (see tools/genicons.mjs)
tools/poster/ localized store/README poster renderer (see its README)
tools/store-listing/ store descriptions + default screenshots per language
test/ node --test unit tests
npm run lint
npm test
npm run zip
Produces x-media-downloader-<version>.zip suitable for uploading to the
Chrome Web Store / Edge Add‑ons dashboard. The published listing lives
here.
For personal use. Respect the rights of content owners and X’s Terms of Service. Don’t redistribute downloaded media without permission. This project is not affiliated with X Corp.
X Media Downloader is part of GoodExts, a set of small, focused browser extensions:
MIT — see LICENSE.