A Tampermonkey userscript for downloading Facebook photos at the largest verified resolution Facebook exposes to the signed-in viewer.
This repository is a maintained fork of bibekchandsah/fb-ig-image-auto-download, originally created by Bibek Chand Sah. The upstream Facebook userscript declares the MIT license in its userscript metadata.
The original project supplied the initial downloader concept and interface foundation. The current maintained version is a substantial rewrite by TWIISTED-STUDIOS contributors, replacing the photo discovery, full-resolution resolution, folder access, duplicate handling, download history, and bulk-download systems.
The repository remains connected to the upstream project through GitHub’s fork relationship. The original upstream source and history are preserved on the legacy branch; see Project history and attribution.
- Install Tampermonkey in Chrome or Edge.
- Open
facebook-simple-downloader.user.js. - Confirm the Tampermonkey installation prompt.
- Reload Facebook.
Chrome or Edge is recommended. Bulk folder saving uses the File System Access API. Individual downloads use Tampermonkey’s download API.
- Verified full-resolution downloads resolved from each Facebook photo page in the background
- Deep scanning for long profiles, albums, and virtualised photo grids
- Compact hamburger launcher with green, yellow, and red scan states
- A 1–10 unchanged-bottom counter before scanning completes
- Original-style image selector with individual card downloads
- Choose-folder-first workflow
- Existing-file detection before download starts
- Grey and striped overlays for files already present in the selected folder
- Skip, replace, or keep-both behaviour for existing files
- Resume history and retry-failed controls
- Account-name filename prefix with stable photo identifiers
- Individual maximum-resolution download buttons on Facebook images
- Network permissions restricted to Facebook and Facebook CDN domains
- No ZIP generation and no large in-memory archive step
- Open a Facebook profile, album, or photo page.
- Click the green ☰ button.
- Choose Scan images.
- Leave the page alone while the launcher is yellow or red.
- When the selector opens, choose a destination folder.
- Existing matching files are marked and deselected when Skip it is active.
- Review the grid and click Download selected.
| State | Meaning |
|---|---|
| Green | Ready or idle |
| Yellow | Scrolling or finding new images |
| Red | At the bottom and waiting to see whether Facebook loads more |
| Red badge 1–10 | Consecutive unchanged bottom checks before the scan completes |
Hover over a supported Facebook image and click the save icon. The script resolves the photo in the background and downloads the verified largest working asset rather than the visible grid thumbnail.
Files use the detected account name plus a stable short identifier:
Account Name-48392017.jpg
Account Name-09247631.png
The prefix can be edited in the selector before checking the folder or downloading.
The script runs locally in the browser and does not contain analytics. It uses the current Facebook login session when requesting Facebook photo pages in the background, but it does not read, display, or store cookie values.
Persistent history contains only photo identifiers, filenames, verified dimensions, statuses, and timestamps. Signed CDN URLs are resolved at download time and are not kept in download history.
Network requests are limited by userscript metadata to:
facebook.comfbcdn.netfbsbx.com
See Privacy and permissions for details.
| Browser | Individual download | Bulk folder download |
|---|---|---|
| Chrome | Supported | Supported |
| Edge | Supported | Supported |
| Firefox | May work | Not supported by the required folder picker API |
| Safari | Not supported or tested | Not supported |
- Photos only. Reels and videos are deliberately not supported.
- “Maximum resolution” means the largest valid rendition Facebook exposes to the current signed-in viewer. It may not be the untouched original upload.
- Facebook can change its page structure at any time.
- Private photos are only available when the current Facebook account already has permission to view them.
- Keep the Facebook tab open during scanning and downloading.
- Usage guide
- Privacy and permissions
- Troubleshooting
- Project history and attribution
- Security policy
- Changelog
No build step or runtime third-party package is required.
npm run checkThe validation checks JavaScript syntax, release metadata, update URLs, restricted @connect permissions, attribution files, and the absence of JSZip.
See AUTHORS.md and NOTICE.md.
MIT. See LICENSE. Original-project attribution is retained in the userscript metadata, README, AUTHORS, NOTICE, and license files.