Download images from any X/Twitter profile in bulk, complete with optional metadata and automatic ZIP packaging.
- One-click download button injected directly into profile timelines and media tabs.
- Smart image collection that scrolls the page, deduplicates results, and captures original-resolution media.
- Optional redirect to the Media tab to bypass the 3,200 tweet timeline cap.
- Rate-limit aware downloader with retry logic, cancelation, and partial export support.
- Metadata embedding (tweet ID, URL, author, timestamp, text) plus bundled
metadata.txt/metadata.jsonfiles. - Zipped downloads with consistent filenames and a progress HUD for clear feedback.
- Node.js 18+
- Bun (recommended) or another Node.js package manager
bun install
# or
npm installbun run dev # Chrome-based browsers
bun run dev:firefox # FirefoxThe WXT dev server prints instructions for loading the temporary extension build. Typically this means enabling developer mode in your browser’s extensions page and selecting the generated .output/* directory.
- Start the dev server or load a production build of the extension.
- Open an X/Twitter profile. A download button appears beside the native action buttons.
- Choose how many images to fetch, whether to embed metadata, and (when available) whether to auto-redirect to the Media tab.
- The extension collects media, handles rate limits when possible, and saves a ZIP archive containing all images and metadata files.
bun run build # Production build to dist/
bun run build:firefox
bun run zip # Create upload-ready archive(s)
bun run zip:firefoxWXT streamlines cross-browser extension development by handling manifest generation, bundling, and hot reloading out of the box. It provides a unified dev server, typed entrypoint helpers (defineContentScript, defineBackground), and ZIP packaging commands, letting this project focus on scraping logic instead of build tooling intricacies.