Auto-Downloder Chrome Extension

September 18th, 2021
comments, tech
Let's say you want Chrome to automatically download pieces of pages, such as Facebook comments. How could you do it? I recently wanted to do this and couldn't find docs, so here's what I did.

  1. Make a folder somewhere for a browser extension.

  2. In that folder, make manifest.json with contents like:

    {
      "name": "Downloader",
      "description": "Downloads stuff",
      "version": "1.0",
      "manifest_version": 3,
      "permissions": [
        "activeTab",
        "downloads"
      ],
      "background": {
        "service_worker": "background.js"
      },
      "content_scripts": [{
        "matches": [
          "https://example.com/path/*",
        ],
        "js": ["content_script.js"]
      }]
    }
    
  3. In content_script.js put:

    // This file extracts what you want from the page
    // and asks the background script to save it.
    
    // You write the code to extract what you want.
    const yourStringToSave =
      yourFunctionToExtractFromPage();
    
    chrome.runtime.sendMessage(
        /* extension id not needed */ undefined,
        [fileNameToUse,
         yourStringToSave]);
    
  4. In background.js put:

    // This file receives messages from the content
    // script and puts them in your Dowloads folder.
    
    function makeDataUrl(body) {
      // We use a data: url because Chrome has
      // trouble with object URLs in Incognito.
      return "data:application/json;base64," +
        btoa(unescape(encodeURIComponent(body)));
    }
    
    chrome.runtime.onMessage.addListener(
      function(message) {
        const fname = message[0];
        const body = message[1];
    
        chrome.downloads.download({
          conflictAction: "overwrite",
          filename: fname,
          url: makeDataUrl(body),
        });
      });
    
  5. Visit chrome://extensions

  6. Enable Developer Mode

  7. Click the "Load unpacked" and select the extension directory

  8. If you need it in Incognito, click "Details" on the extension card and then enable "Allow in Incognito".

Example code: github.

(And, yes, this is how Facebook comments are back.)

Comment via: facebook, lesswrong, substack

Recent posts on blogs I like:

How to Make a Christmas Wreath

Yesterday, I made a Christmas wreath. Here's how to make one. First, find an evergreen tree near your house. Clip off a few branches from the tree. Try to have as many leaves or needles on the branches as possible. Next, bring them home. What I usu…

via Anna Wise's Blog Posts December 6, 2025

Live with Linch

A recording from Ozy Brennan and Linch's live video

via Thing of Things December 5, 2025

Against the Teapot Hold in Contra Dancing

The teapot hold is the most dangerous common contra dancing figure, so I’ve been avoiding it. The teapot hold, sometimes called a "courtesy turn hold,” requires one dancer to connect with their hand behind their back. When I realized I could avoid put…

via Emma Azelborn August 25, 2025

more     (via openring)