White Loader, v2.0
Posted on

Utility for a bulk downloading of images from social media.
Major release. Combine the bookmarklet and the console script in a single app based on the Electron framework.
Change Log
- combine the bookmarklet and the console script in a single app based on the Electron framework;
- config:
- support a loading of config with properties of supported sites;
- collect images:
- doesn't consider gallery pages without images in a total number of downloading images;
- download images:
- generate unique filenames (UUID v1) for all downloaded images;
- download few images simultaneously;
- support a working through a proxy;
- select the app icon (
).
Features
- config:
- support a loading of config with properties of supported sites;
- predefine config for following sites:
- VK;
- Telegram Web;
- Instagram*;
- collect images:
- collect images URLs from galleries:
- convert Object URLs to Data URLs (in the Base64 encoding);
- switch images by clicking on "Next" button in galleries:
- random delay between clicks for a simulation of an user behavior;
- skip gallery pages without images;
- request from user a maximal number of images by the prompt dialog:
- detect a default maximal number of images by a gallery info (optional);
- collect images URLs from galleries:
- download images:
- download images by collected URLs:
- save images from Data URLs (in the Base64 encoding);
- generate unique filenames (UUID v1) for images;
- download few images simultaneously;
- download images by collected URLs:
- support a working through a proxy.
* Запрещена в России / Banned in Russia.
Config with Properties of Supported Sites
Format of the config with properties of supported sites in the JSON Schema format:
{
"type": "object",
"minProperties": 1,
"additionalProperties": false,
"definitions": {"nonemptyString": {"type": "string", "pattern": "\\S+"}},
"patternProperties": {"\\S+": {
"type": "object",
"additionalProperties": false,
"required": ["url", "image", "nextButton", "clickEvent"],
"properties": {
"url": {"$ref": "#/definitions/nonemptyString"},
"maximalCounter": {"$ref": "#/definitions/nonemptyString"},
"image": {"$ref": "#/definitions/nonemptyString"},
"nextButton": {"$ref": "#/definitions/nonemptyString"},
"clickEvent": {"$ref": "#/definitions/nonemptyString"}
}
}}
}
Example:
{
"example": {
"url": "http://example.com/",
"maximalCounter": ".gallery__counter_maximal",
"image": ".gallery__image",
"nextButton": ".gallery__button_next",
"clickEvent": "mouseup"
}
}
Screenshots
Finish of a downloading of images

Help message of the app

Log of a downloading of images
