Auto-Downloder Chrome Extension
post by jefftk (jkaufman) · 2021-09-19T01:30:04.215Z · LW · GW · 0 commentsLet'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.
Make a folder somewhere for a browser extension.
-
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), }); });
Visit
chrome://extensions
Enable Developer Mode
Click the "Load unpacked" and select the extension directory
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.)
0 comments
Comments sorted by top scores.