ClipSaver for Instagram

Adds a floating download button over Instagram videos, reels and posts that

Overview

ClipSaver for Instagram is a userscript that adds a floating, circular download button over Instagram videos, reels and posts. When you hover the mouse over a media element, the button appears and clicking it opens a download launcher for the current media in a new tab. A companion panel page can adjust the button and trigger downloads directly.

Instagram does not provide a convenient, built-in way to save a video, reel or post while you are browsing it. ClipSaver puts a one-click download control right on top of the media you are already looking at, so you do not have to copy links or look for a separate tool.

Instagram users who regularly view or keep videos, reels and posts and want a fast way to send the current media to a download service. It is intended for personal, everyday browsing on desktop browsers that support userscripts.

Key features

  • A floating circular download button appears automatically when you hover a video, reel or post, and hides when you move away from media.
  • Works across the Instagram feed, reel pages and post pages on instagram.com.
  • Resolves the media link from the post's own /p/, /reels/ or /reel/ link and falls back to the current page URL.
  • Opens the download launcher in a new tab, with the interface language matched to your browser (including English, Simplified Chinese and Traditional Chinese, among many others).
  • A companion control panel can enable or disable the button and adjust its position (12 presets), button size, icon size and edge offset.
  • The panel can also trigger "download current media" and "open download service" actions and reports running, done and error progress.
  • Panel communication runs over both postMessage and BroadcastChannel with message deduplication and a ping/pong heartbeat.
  • Built-in diagnostic log keeps the most recent events (including uncaught errors) for the panel to pull, while settings are saved via userscript storage with a localStorage fallback.

Supported sites

  • www.instagram.com

Permissions

This script requests the following userscript-manager permissions. Review them before installing.

  • GM_openInTab
  • GM.openInTab
  • GM_addStyle
  • GM_setValue
  • GM_getValue

How to install & use

  1. Install a userscript manager such as Tampermonkey or Violentmonkey for your browser.
  2. Click the "Download / install" button to open the script source on GitHub and install it with your userscript manager.
  3. Open the target site and use the script as documented.

How to use

  1. Install the script with a userscript manager.
  2. Open instagram.com, such as the feed, a reel or a post page.
  3. Move the mouse over a video, reel or post; a circular download button appears over the media.
  4. Click the button to open the download launcher for that media in a new tab.
  5. Open the companion panel page to change the button position, size, icon size and edge offset, or to disable the button entirely.
  6. Use the panel's action buttons to download the current media or to open the download service.

Limitations

  • The script only runs on instagram.com; other websites are not affected.
  • The button appears only when the mouse hovers a sufficiently large, visible media element, and a video must already be loaded before it is detected.
  • The script does not download files itself; it passes the media URL to an external download service, so results and availability depend on that service.
  • The companion panel is a separate page opened as a popup, which browsers or popup blockers may block.
  • The panel connection is attempted once per installation rather than on every visit.
  • Diagnostic logs are kept in memory only, are cleared on refresh and are not redacted.

FAQ

Why doesn't the download button appear?

The button is intentionally shown only while the mouse hovers a media element that is large enough and visible, and a video must have loaded first. Make sure you are on instagram.com and hover directly over a video, reel or post.

Does the script download the file by itself?

No. It detects the current media URL and opens an external download launcher in a new tab; the actual download is handled by that service.

Where are my button settings stored?

Settings such as enabled state, position, size and offsets are saved through the userscript manager's storage, with the browser's localStorage used as a fallback.

Does it work on websites other than Instagram?

No. The script is scoped to instagram.com and does nothing elsewhere.

What language will the download launcher use?

It follows your browser language and supports English, Simplified Chinese, Traditional Chinese and many other languages, defaulting to English when the language is not recognized.

Nothing happens when I click the button or open the panel.

A popup blocker may be preventing the new tab from opening, or the external download service may be temporarily unavailable. Allow popups for the site and try again.

Safety & privacy

The script requests GM_openInTab, GM.openInTab, GM_addStyle, GM_setValue and GM_getValue, reads navigator.language and the current media URL, and stores only its own button settings locally through userscript storage with a localStorage fallback. Panel messages are accepted only from the trusted panel origin and from the panel or opener window, and duplicate messages are discarded. Diagnostic logs may include page URLs and error details but stay in memory only, are never persisted and are not redacted; the only data sent externally is the media URL handed to the download service. It does not modify Instagram content and does not access your account credentials.