Skip to content
jewdevPublic

About

Instagram downloader & enhancer extension for Chrome, Brave and Edge: download posts, reels and stories in HD, view full-size profile pictures, see story mentions, check unfollowers and declutter your feed. Free, open source, no tracking. Not affiliated with Meta.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Glassgram

Glassgram

The tools Instagram's website leaves out.
Download media, zoom profile pictures, see who's mentioned in a story, and clean up your feed.

Manifest V3 Chromium browsers GPL-3.0 license

Install · What you get · Settings · Shortcuts · Privacy · Disclaimer

An unofficial project. Not affiliated with, endorsed by, or sponsored by Instagram or Meta.


See Glassgram in action

glassgram-promo.mp4

The Instagram pages in the video are a recreation with fictional accounts. The Glassgram pages are real.

Install

Glassgram isn't in a web store yet, so you load it by hand. It takes about a minute and needs no coding tools.

  1. Download glassgram.zip and unzip it. On Windows, right-click it and pick Extract All.
  2. In your browser, open brave://extensions (or chrome://extensions, edge://extensions).
  3. Turn on Developer mode (top right).
  4. Click Load unpacked and pick the unzipped folder, the one that contains manifest.json.

Open Instagram and hover over a post. Pin Glassgram from the puzzle-piece menu to get quick access to its popup.

Important

Keep the unzipped folder where it is. The browser reads the extension from it, so moving or deleting it disables Glassgram.

To update, wait for the NEW badge on Glassgram's icon, or press Check now in the settings sidebar. The settings page shows what changed. Press Update now. The first time, Glassgram asks for the folder you picked with Load unpacked, because browsers don't tell extensions where they live. Show me where it is opens the page that lists the path, and picking the folder around it (like Downloads) works too. Glassgram refuses any folder without its own manifest.json. After that, it downloads the release, checks it matches the file published on GitHub, writes it into that folder and reloads itself. If writing fails, it puts the old files back.

One-click updates are off by default in Brave. Turn on brave://flags/#file-system-access-api and restart Brave, or update by hand: download the ZIP, unzip it over the old folder, and press Reload Glassgram. You can also grab the ZIP from the Releases page yourself.

Works in any Chromium browser with Manifest V3 (Brave, Chrome, Edge, Opera, Vivaldi) on Windows, macOS and Linux.

🛠️ Build from source

You need Node.js 20+ and Git (on macOS: xcode-select --install).

git clone https://github.com/jewdev/glassgram
cd glassgram
npm install
npm run build

Then load the dist folder with Load unpacked as above. To update, git pull, rebuild, and press reload on the extension's card.

What you get

⬇️ Downloads

  • Hover toolbar on posts, reels and stories: download one or all, copy media URL or caption. Always the highest resolution.
  • Filename templates with folders, e.g. Glassgram/{user}/{user}_{date}_{shortcode}_{index}.
  • ZIP or separate files for carousels and story trays.
  • Bulk profile download of the latest N posts. Off by default.
  • Right-click download and voice message download in chats.
  • Keep unsent messages: when someone unsends a message, it stays visible with an unsent mark, and the list can be saved to a file. Off by default.

👤 Profiles and stories

  • HD profile pictures in a zoomable viewer.
  • Story mentions & stickers, including hidden mentions, hashtags, locations, links and music.
  • Follow status badge: Follows you, Doesn't follow you back, and more on click.
  • Unfollowers checker with search and CSV export. Off by default.
  • No story auto-advance. Off by default.

🧹 Feed and video

  • Declutter: hide ads, suggested posts and accounts, stories tray, Reels and Explore tabs, Threads links.
  • Following-only feed, no double-click likes.
  • Video controls: seek, speed, volume, loop, autoplay off.

🔒 Privacy and links

  • Clean share links without tracking parameters, with an optional domain swap (e.g. kkinstagram.com).
  • Direct links that skip l.instagram.com, and analytics blocking.
  • Anonymous story viewing, hidden typing indicator and "Seen" in DMs. Off by default.

✨ Small extras

Exact timestamps, copy comment, save GIFs from comments, a searchable settings page with export/import, and a popup with quick toggles. Every feature can be switched off; see the settings reference for all options and defaults.

Keyboard shortcuts

Act on the hovered media, or the most visible post. Rebindable in settings.

Key What it does
D Download current photo, video or story
Shift + D Download all (carousel or story tray)
Z Open profile picture full size
Shift + C Copy media URL

In the image viewer: wheel to zoom, drag to pan, 0 to reset, Esc to close.

Privacy

Everything runs in your browser: no server, no analytics, nothing sent anywhere but Instagram. Requests use your logged-in session; the extension never sees your password. The one exception is the update check: twice a day it asks GitHub's public API for Glassgram's releases, sending nothing about you. Turn off Check for updates automatically in the settings sidebar to stop it. Settings sync via chrome.storage.sync; scan data and unsent messages stay local.

Permissions it asks for
Permission Why
downloads Saving files
storage Your settings
contextMenus The right-click entry
offscreen Building ZIPs
declarativeNetRequest Blocking the story "seen" request
alarms Checking for updates twice a day
instagram.com, cdninstagram.com, fbcdn.net Working on Instagram and loading its media
api.github.com Reading Glassgram's releases for the update check
github.com, release-assets.githubusercontent.com, objects.githubusercontent.com Downloading a release when you press Update now

Limitations

  • Uses Instagram's private web API, which can change and break things at any time.
  • Heavy use (bulk downloads, large unfollower scans) can get you rate-limited. Keep the default delays.
  • Ads and suggestions are detected by label text, in English and a few other languages.
  • Unsent messages are only caught while Instagram is open in this browser.

Disclaimer

Glassgram is an independent, unofficial project, not affiliated with, endorsed by, or sponsored by Instagram or Meta Platforms, Inc. "Instagram" is a trademark of Meta Platforms, Inc. Using it may go against Instagram's Terms of Use; you use it at your own risk. Downloaded content belongs to its creators: don't republish it without permission.

Contributing

See docs/DEVELOPMENT.md.

License

GNU GPL v3.0

About

Instagram downloader & enhancer extension for Chrome, Brave and Edge: download posts, reels and stories in HD, view full-size profile pictures, see story mentions, check unfollowers and declutter your feed. Free, open source, no tracking. Not affiliated with Meta.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages