{
  "id": 10049548,
  "title": "Hooking URL.createObjectURL: How My Chrome Extension Saves Instagram Voice Notes as They Play",
  "url": "https://urgent.news/2026/09/26/hooking-url-createobjecturl-how-my-chrome-extension-saves-instagram",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-26T19:37:34.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/jinchaoh/hooking-urlcreateobjecturl-how-my-chrome-extension-saves-instagram-voice-notes-as-they-play-4e7c"
  },
  "original_language": "en",
  "account": "Instagram no longer provides a way to download voice messages from Direct Messages. Users can either screen record with undesirable quality or use third-party downloaders, which often do not work for DM voice notes. I created a Chrome extension to download voice notes at their original quality as they play, without leaving the page. The extension leverages the URL.createObjectURL function, which wraps audio content in a Blob when Instagram loads it from its CDN. My extension intercepts this process by patching URL.createObjectURL in the page's JavaScript context before Instagram's code runs. The extension uses two scripts - one for patching createObjectURL and another for communicating with the background service worker - and uses CustomEvents to transmit metadata to the background worker. The extension filters out blobs that are not audio files and limits the size to keep the main thread responsive. Once the extension captures the audio, it creates a download button next to the voice bubble, allowing users to save the file directly to their device without any re-encoding or quality loss.",
  "summary": "Instagram still does not let you save voice messages from DMs. No download button, no archive, nothing. If a friend sends you a voice note worth keeping — or you hear a great sound on a Reels audio page — your options are screen recording (with UI noise, notifications popping in, and re-encoded quality) or third-party downloader sites (which usually need the message link and often do not work for…",
  "key_points": [
    "Chrome extension saves Instagram voice notes as they play",
    "URL.createObjectURL function used to wrap audio content in a Blob",
    "Extension intercepts process, filters audio files, creates download button"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}