Auto-Downloder Chrome Extension

https://www.lesswrong.com/posts/XGugpwMBHSWMQEyCP/auto-downloder-chrome-extension

Link post

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.

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"] }] }

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]);

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),
});

});

Example code: github.

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