A free, open-source Chrome extension (Manifest V3) that bulk downloads media from WhatsApp Web, images, videos, voice notes/audio, and documents, from one or more chats at once, either as loose files or a single ZIP.
Built by Jstarzz. A star on the repo helps other people find it.
- No limits and no license key. Everything is unlocked.
- Select multiple chats in the popup and it works through each one in turn.
- Files save through
chrome.downloads(via the background service worker) rather than by clicking a hidden link inside the WhatsApp Web page. Chrome blocks a page from firing off a stream of automatic downloads but does not block an extension doing the same through its downloads API, which is what makes downloading many files back to back possible at all. - Media is fetched fresh from WhatsApp instead of read out of whatever the page happens to have cached, so files save at their original quality.
- Downloads run 2, 4, 6, or 8 files at a time rather than strictly one.
- Individual files land in
Downloads/WA Media Downloads/<Chat Name>/...instead of loose in your Downloads root. - Progress reporting, a bounded log panel so a large batch does not bog down the popup, and "All types" / "Videos only" filter buttons.
inpage/vendor/wppconnect-wa-wrapped.jsis the open-source WPPConnectwa-jslibrary, bundled as-is. It gives the extension a supported way to read chats and messages from WhatsApp Web's own in-memory store. That project has its own license (Apache-2.0 at the time of writing), keep its copyright notice intact and check its repo for the current terms before redistributing this extension.inpage/app.jsruns in the page's main world, useswa-jsto list chats, scan chats for media messages, and download each one's underlying blob.content.jsbridges page and extension messages.background.jsis the MV3 service worker. It is the only place that actually callschrome.downloads.download().popup.html/popup.js/popup.cssare the toolbar UI.
- Open
chrome://extensions. - Enable Developer mode (top right).
- Click Load unpacked and select this folder.
- Open web.whatsapp.com, log in, then click the extension icon.
- Select one or more chats from the list (click Update chat list if nothing shows up yet).
- Optionally set a date range, pick media types, and adjust naming options.
- Optionally use Load More Messages first, for a single chat, if you need media further back than WhatsApp Web has already loaded locally.
- Click Download all. Files save individually, or as one ZIP per chat if Save as single ZIP is checked.
- This only ever touches chats you already have open in your own WhatsApp Web session. It cannot access anything you do not already have access to.
- WhatsApp Web generally only keeps roughly a year of history loaded locally. Load More Messages nudges it to fetch further back, but very old media may already be gone from WhatsApp's servers.
- Media quality is whatever the sender's own device uploaded to WhatsApp. There is no separate hidden "HD" copy on the server for this extension to fetch instead, it downloads the same original file WhatsApp Web itself would show you.
- Very large batches will still take a while. Media has to be decrypted and fetched one file at a time from WhatsApp's side, the parallel-download setting only controls how many of those requests are in flight together.
- This project is not affiliated with, endorsed by, or associated with WhatsApp or Meta.
Nothing is collected, stored, or transmitted anywhere. See PRIVACY.md.
MIT for the code in this repository (see LICENSE). The bundled wa-js
vendor file remains under its own upstream license, see the note above.