Instagram MD — Last updated October 2026
Instagram MD is a Chrome extension that converts your Instagram saved posts into Obsidian-ready markdown notes. It reads post captions, transcribes audio from Reels, and describes images by calling the Groq AI API using the API key you provide.
The extension has no backend server. The developer (Arnaldo Koo) does not operate any service that receives, stores, or processes your data.
The following is stored in your browser via chrome.storage.local — it never leaves your device except as described in section 3.
| What | Why | Where |
|---|---|---|
| Groq API key (AES-GCM encrypted) | Sent to Groq on your behalf when you click Process | Device only |
| Post queue (URLs, author handles, captions) | Holds posts awaiting processing between sessions | Device only |
| Processed markdown notes | Shown in the preview and available to download | Device only |
| Settings (batch size, AI model, theme) | Restores your preferences between sessions | Device only |
When you click Process, the extension sends Instagram post content to api.groq.com using your own Groq API key. The following content may be included depending on the post type:
| Content | Sent to | Purpose |
|---|---|---|
| Post captions and author handles | Groq chat API | Categorization and markdown note generation |
| Reel audio (fetched from Instagram CDN) | Groq Whisper API | Transcription |
| Image descriptions (generated locally via Groq vision) | Groq vision API | OCR and image understanding for markdown notes |
This data is sent under your Groq account and is subject to Groq’s Privacy Policy. The developer of Instagram MD has no access to any data passing through Groq’s API.
We do not:
| Permission | Why it is needed |
|---|---|
storage |
Saves your post queue, processed notes, encrypted API key, and preferences locally |
alarms |
Keeps the service worker alive during multi-post AI processing batches |
offscreen |
Decodes Reel audio and encodes it as WAV before sending to Groq Whisper |
tabCapture |
Fallback audio capture when Instagram CDN audio URLs have expired |
scripting |
Injects the content script into Instagram to collect saved-post metadata during bulk import |
| instagram.com host permission | Required for the content script to read saved-posts page and detect newly saved posts |
| api.groq.com host permission | Required to call Groq’s API for transcription, vision, and categorization |
| cdninstagram.com / fbcdn.net host permissions | Required to fetch Reel audio directly from Instagram’s CDN for transcription |
All data is stored in your browser’s local storage. You can delete it at any time by clicking Settings → Clear all data in the extension, or by removing the extension entirely from Chrome (which deletes all associated storage).
The developer has no copy of your data and therefore cannot delete it on your behalf — you are always in full control.
If this policy changes materially, the “Last updated” date at the top of this page will be revised. Continued use of the extension after a change constitutes acceptance of the updated policy.
Questions about this privacy policy? Open an issue on GitHub or email arnaldokoo@gmail.com.