Privacy policy
Last updated: July 22, 2026
Developer and server boundary
SocialSnag has no developer-operated backend. It does not send browsing history, account data, browser cookies, submitted post URLs, download history, preferences, analytics, telemetry, or tracking data to a SocialSnag server or another developer-operated server. There are no analytics scripts, remote logging, or usage tracking.
Data stored on your device
SocialSnag stores the following data locally using Chrome's built-in storage APIs:
- Preferences (
chrome.storage.sync): Enabled platforms, notification setting, download path, .zip preference, advanced mode, and resolver debug setting. Chrome may sync these settings through the signed-in browser account. - Download history (
chrome.storage.local): Filename, platform, media type, timestamp, and Chrome download ID for each successful download, up to 50 entries. Download history does not contain media URLs and is not synced. - Advanced-mode captures (
chrome.storage.session): Media URL, browser request type, and timestamp, up to 50 entries per tab. These entries are held in browser session storage and removed when the tab closes. - Pending .zip cleanup (
chrome.storage.session): A locally created blob URL keyed by its Chrome download ID while a .zip download is active. The entry is removed when the download completes, is erased, or can no longer resume.
Two download workflows
Right-click use: Open a supported post, right-click its media, and choose a SocialSnag action. The extension reads only the page data needed to resolve that media.
Direct post-link use: Paste a direct Instagram, X/Twitter, Facebook, or Bluesky post link into the SocialSnag GitHub Pages form. The static page sends the link directly to the locally installed extension through Chrome's runtime messaging. The extension resolves and downloads the media in your browser, using the platform accounts already signed in to that browser when access is required.
Landing-page privacy
The GitHub Pages site has no developer-operated backend, analytics, or remote logging. SocialSnag does not write submitted URLs to extension storage or send them to a SocialSnag server or another developer-operated server. The submitted value remains visible in the form until you change it or close the page.
Instagram submissions are resolved through direct platform API requests. X/Twitter, Facebook, and Bluesky submissions may load in a temporary inactive browser tab. That tab uses the browser's existing signed-in session and normal platform network behavior. Normal browser cache and history behavior may apply when a platform page loads. The extension closes the temporary tab when resolution finishes or fails.
The extension returns only success or failure, the supported platform name, and the number of downloads that started. Resolved CDN URLs, page content, browser cookies, and account data do not return to the GitHub Pages site.
If the extension cannot proceed because you are logged out, lack access, the post is private, expired, or deleted, the platform is rate-limiting requests, or the link is unsupported, the form shows a visible failure message.
Permissions
| Permission | Why it's needed |
|---|---|
| contextMenus | Adds the SocialSnag submenu (download this, download all, copy media URL, and download as .zip) to the right-click menu |
| downloads | Saves media files to your downloads folder (default: Downloads/SocialSnag/{platform}/, customizable in settings) |
| activeTab | Accesses the current tab to find media URLs when you right-click |
| storage | Stores your preferences and download history locally |
| notifications | Shows a notification when a download completes (can be disabled in settings) |
| scripting | Injects the media resolver into supported sites |
| offscreen | Creates a hidden document to build .zip archives and copy URLs to the clipboard, which the background service worker cannot do on its own |
| clipboardWrite | Optional. Requested the first time you use "Copy media URL", so the extension can write the URL to your clipboard |
| webRequest | Optional, advanced mode only. Intercepts network requests to find media not visible in the page DOM |
Host permissions
SocialSnag requests access to Instagram, Twitter/X, Facebook, and Bluesky domains (and their CDN subdomains) so it can find and download media on those sites. It does not access these sites in the background or when you're not using the extension.
LinkedIn and TikTok host permissions are optional and only requested if you enable those platforms.
Third-party services
SocialSnag does not use any third-party analytics, tracking, or data-collection services. When you download media, the extension may contact the social platform's own API or media hosts to resolve the download URL. These requests go directly to the selected platform. No SocialSnag or intermediary server is involved.
User control
- Clear download history: Open the SocialSnag popup and click the clear button.
- Disable platforms: Toggle individual platforms on or off from the settings page.
- Remove all data: Uninstall the extension. Chrome deletes all associated local storage.
Contact
Questions about this policy? Open an issue on GitHub.