Zemi is a browser extension that allows you to download images in bulk from message boards or websites. Designed to be simple to use and easy on memory, Zemi supports selecting file type, folder specification, and progress tracking.
- Easily download multiple images from a website with one click.
- Supports popular file formats such as
.png
,.jpg
,.jpeg
,.gif
, and.webm
. - Supports specifying download folder location.
- folders can contain multiple words, this doesn't cause errors as browsers handle this.
- Progress Tracking: View real-time progress using a dynamic progress bar.
- Cancelation Support: Cancel ongoing downloads directly from the popup interface.
- No duplicates: Prevent duplicate downloads using efficient hash-based file tracking.
- Zemi works seamlessly on active tabs, injecting scripts dynamically for DOM interaction.
The user interface is presented as a popup with the following components:
- Folder Input Field: Specify the subfolder for downloads.
- File Type Checkboxes: Select the image formats you want to download.
- Buttons:
- Download: Start the download process.
- Clear: Reset all inputs.
- Cancel: Stop the ongoing downloads.
- this button is available when download starts.
- Handles communication between the popup and the active tab.
- Injects the content script (
zemi.js
) to process DOM elements and gather image links. - Tracks and manages downloads, ensuring efficiency and avoiding duplicates.
- Clone or download the repository.
- Open your browser and navigate to the Extensions page:
- For Chrome:
chrome://extensions/
--> Porting is a work in progress will update in the future - For Firefox:
about:addons
- For Chrome:
- Enable Developer Mode (Chrome) or load a temporary add-on (Firefox).
- Click Load Unpacked (Chrome) or Load Temporary Add-on (Firefox) and select the downloaded folder.
- Open Zemi from the browser toolbar.
- Enter the folder name for saving downloads.
- Select the image file types you want to download.
- Click the Download button to start the process.
- Track progress in the progress bar. Cancel ongoing downloads if necessary.
Note: The extension as of version 1.0.0 relies on the downloads API to track the downloads this means that if you click away from the extension popup or go to another tab, there will be no UI persistance on the downloads within the popup. This does not mean that the downloads will stop downloading it just means you wont be able to track progress.
- This can be fixed by haivng a progress persistance within the zemi.js injected in the active tab.
- Furthermore this introcused a potential problem where you might not be able to cancel cerain downloads if you've run the extension in more active tabs.
Suggestion: Click the 'Download' button and let the downloads finish before moving on to another tab. If you are absolutelly sure that you want to download all the images and will not cancel them for any reason then you can use the extension however you want.
manifest.json
: Defines extension metadata and permissions.popup.js
: Controls popup interactions and sends messages to the background script.content_script.js
: Injected into active tabs to process DOMs and extract image links.background.js
: Manages extension lifecycle, handles downloads, and ensures deduplication.
Zemi requires the following permissions:
- Tabs: To access active tabs for DOM injection.
- Scripting: To inject and execute scripts in web pages.
- Downloads: To manage and track image downloads.
- Storage: To save persistent download metadata.
- Clone the repository:
git clone https://github.com/BBoushe/zemi.git
- Make changes to the files as needed.
- Reload the extension in your browser to test updates.
Use Zemi responsibly and ensure compliance with website policies and copyright laws. Unauthorized scraping or downloading may violate terms of service.
Feel free to contribute to this extension.