Git Product home page Git Product logo

image-downloader-cnt's Introduction

Image Downloader Continued (IDC)

This is a fork of Image Downloader by Vlad Sabev (vdsabev). Original extension isn't updated and this projects aims to fill the gap. The goal is to fix bugs, support more websites (as many as possible), add new features and enhancements. Suggestions are welcome - please file an issue on github! IDC is not for sale, and will always be free, open-source, and without ads or tracking algorithms of any kind! You can find the source code here: https://github.com/kisdma/image-downloader-cnt

Description

If you need to bulk download images from a web page, with this extension you can:

  • See images that the page contains and links to
  • Filter them by width, height, and URL; supports wildcard and regex
  • Select images to download by clicking on the image
  • Use dedicated buttons to download or open individual images in new tabs
  • Customize image display width, columns, border size, and colour
  • Hide filters, buttons and notifications you don't need

When you press the "Download" button, all selected images are saved to the default download directory of Chrome, or to a directory inside it if you specify a subfolder name.

WARNING: If you haven't set up a default download directory, you will have to manually choose the save location for each image, which might open a lot of popup windows. It is not recommended to attempt to download too many images at once without a default download directory.

Change Log

2.9

  • Fixed a bug in relative url restoration
  • Added higher resolution images discovery for cloudfront.net
  • Restored parsing of 'link rel="mask-icon"' (previously disabled) 2.8:
    Improved image discovery and collection, many bugfixes
  • Added injection script to prevent pages from closing shadowDOM (that made images inside undiscoverable). Note: websites use this to circumvent adblockers
  • Added image discovery in shadowDOM
  • Added css style insertion to prevent adblocking of images added by IDC (affects only elements with class 'idc-image')
  • Added a listener to track DOM changes and discover intermittent images like webp (moving gif-like images) from youtube, or continuously added/deleted images like in instagram scrolling
  • Added saving the list of discovered images into serialized array in hidden tag on the page (disappears when page is updated)
  • Fixed bug in number of submitted downloads (was +1)
  • Improved regexp for better image discovery in 'style' tags (was missing some data:image urls)
  • Cleaned and moved to a function the code that checks and translates (if needed) relative urls to absolute. Used this function for tags where this check was missing
  • Improved an observer to make it discover more images from temporal elements like popups (extended the attribute filter list)
  • Improved image discovery in 'svg' tag - if it contains image tag(s), then returns images from them, instead of building base64 svg
  • Removed encodeURI() from the code that populates and accesses the image cache. Not sure what was the purpose of it since incoming links are extracted from tags where they're supposed to be already encoded. This was breaking links that were already encoded and had special characters escaped (discovered this on wikipedia - links with parenthesis)
  • Fixed a bug in parsing 'source' tag - added support of list with different resolutions in 'srcset' (1x, 2x, etc.)
  • Fixed a bug: duplicate youtube images addition in popup.js
  • Fixed a bug: incorrect urls were constructed when base url were ending with backslash
  • Fixed a bug in parsing img tag
  • Fixed a bug in relativeUrlToAbsolute - was returning "undefined" if empty input
  • Added discovery of links with "resize" command for a server in the query part of url - addition of links without the command provides images with higher resolution

2.7:
Improved image discovery, bug fixes in code and design

  • Added parsing of the attribute 'srcset' and 'lowsrc' in 'img' tags
  • Added parsing of the attribute 'srcset' in 'source' tags (inside of html5 'picture' tag)
  • Added canvas to image conversion - powerful technique to extract highly protected images (not even showing in Resources tab of Dev Tools). Note: at this time added images will pile up each time the extension button is clicked. They can be removed by updating the page.
  • Added check for long image urls (most probably data:image) and placement of them on top of the page instead of sending to the popup (to be coherent with canvas-to-image conversion which can produce large strings of data:image/jpeg)
  • Added selection of text info-shortcuts' colour (combined in one option with image selection colour) on options page. Icons are colourized accordingly too
  • Commented out an obsolete code to open Options page after install and check for versions before 2.1 (in defaults.js)
  • Commented out the minimum width option since it's currently broken (not sure if it's useful) (in options.html)
  • Made max-height to follow max-width option (to work better if small image preview is selected)
  • Replaced zepto.js with original unobfuscated source code
  • Fixed flashing animation for download message (apparently it was broken since the switch from jquery to zepto)

2.6:
Major redesign and improved image discovery

  • Modernized the popup look, images are placed on tiles with more image info, added tile color selection to options
  • Fixed several bugs, improved image discovery for many cases, including deep css parsing instead of broken styleSheets api
  • Added shortcuts to Reverse Image Search sites (Google, Bing, Yandex, TinEye) for each image

2.5:

  • Added display of image size and image file name (can be turned off in settings)
  • Added ordering images by size - two new options: 1) to order by width only (default) or by width+height, 2) largest-to-smallest (default) or reverse
  • Added scaling images vertically if they taller than 200px
  • SVG format wasn't being read from 'svg' tag - fixed
  • Added reading image from 'poster' of 'video' tag
  • Fixed background images being non-recognized. Reading styleSheets doesn't seem to work (to read from cssRules). Workaround implemented: fetching CSS files with links obtained from 'link' tags. Note: some sites use different second-level domain to store CSS, in this case fetch won't work if extension doesn't have permission for 'all_urls' (or particular domain). This just results in some images not showing up. Remove permission in Chrome Extensions if this is a concern.
  • Added maximum-resolution images discovery on Google Maps and Street View Photos (discovered undocumented api)
  • Added high-resolution previews for youtube thumbnails (including video of the current page)
  • Corrected regexp for 'a' tag's link parsing to prevent non-image links discovery

2.4.2:

  • Workaround for Chrome disallowing access to cross-domain CSS rules

2.4.1:

2.4:

  • Added an option for renaming files before downloading

2.3:

  • Added support for BMP, SVG, and WebP images
  • Added support for relative URLs
  • Improved popup loading speed by searching through less elements
  • Replaced deprecated chrome.extension calls with chrome.runtime

2.2:

  • Removed the unnecessary permission to access tabs
  • Removed the donation prompt due to complains from some users that it doesn't disappear after the first time as it should; now, the options page will be opened on first install instead
  • Save the value of the URL filter
  • Another attempt to fix some sizing issues

2.1:

  • Added image width / height filters
  • Added a one-time reset of all settings due to some people having sizing issues
  • Removed the sort by URL option

2.0:

  • Added the ability to save the files to a subfolder
  • Utilized the Google Chrome downloads API
  • Implemented a cleaner, grid-based design
  • Clicking on an image URL textbox will now automatically select the text so users can copy it
  • Fixed a few minor display issues
  • Added settings for number of columns, removed border style setting
  • Added donation buttons on the options page

1.3:

  • Images used in a style tag will now also be included at the end of the list. Only images from inline style attributes of elements used to be included.
  • Added support for data URI
  • Several bug fixes and optimizations

1.2:

  • Changed the URL above the image to be displayed in a read-only textbox
  • Moved the image checkboxes to the top and added open & download buttons below each
  • Initially disabled the "Download" button and "All" checkbox
  • Introduced a few new options to hide filters, buttons and notification
  • Removed the body width option; the width of the popup now resizes relatively to the maximum image width option
  • Streamlined the design

1.1:

  • Fixed saving of minimum and maximum image width
  • Added the URL above the image itself and an option to toggle it
  • Added wildcard filter mode (alongside normal and regex)
  • The state of the selected filters will now be saved
  • Moved the "Sort by URL" option back to the filters
  • Added a "Clear Data" button to options page. While the extension does not use a lot of local storage yet, someone might appreciate the option.
  • Refactored a lot of code, especially the use of local storage

1.0.13:

  • Added a notification to let the user know that download has started
  • Added some animations and polished the options notifications a bit more
  • Fixed some event handlers that were being attached multiple times

1.0.12:

  • Migrated to jQuery
  • Implemented indeterminate state for "All" checkbox
  • The "Download" button will now be disabled if no images are checked
  • Fixed a bug with reseting options - now the user can choose to save the reset values or simply cancel the reset by reloading the page - just like it says in the notification

1.0.11:

  • Changed the download mechanism to support Chrome v21+
  • Added an "Only show linked images" filter option that can be useful when you only want to download images that are in a URL on the page.

1.0.10:

  • Added a download confirmation

1.0.9:

  • The number of images will now be displayed next to the "All" checkbox

1.0.8:

  • Added detection of image URLs in anchor tags; note that this feature will not detect URLs that don't have .jpg, .jpeg, .gif or .png file extensions - it relies on a regular expression as to avoid possibly sending hundreds of requests to external servers

1.0.7:

  • Removed the desktop notification system that popped up when you press "Download" in favor of a text description that should feel easier to control (through Options) and less intrusive; this should also require less permissions for the extension
  • Added an option to hide the download notification; most people should understand the download process after only reading it once
  • Made some minor UI tweaks

1.0.6:

  • Fixed an issue with multiple unnecessary empty images

1.0.5:

  • Elements that display an image using the "background-image" CSS property will now also be extracted

1.0.4:

  • Added a notification that alerts the user when the download process has begun and explains where to look for the files

Credits

Based on the Google Chrome Extension sample "Download Selected Links": https://developer.chrome.com/extensions/examples/api/downloads/download_links.zip

Uses the tiny, but awesome JSS library: https://github.com/Box9/jss

And Zepto.js: http://zeptojs.com

Images: download.svg licensed by CC BY 3.0 from oNline Web Fonts http://www.onlinewebfonts.com/icon open.svg licensed by CC BY 3.0 from oNline Web Fonts http://www.onlinewebfonts.com/icon

License

Copyright (c) 2019 Dmitry Kislitsyn, Vladimir Sabev

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

image-downloader-cnt's People

Contributors

kisdma avatar kitlawes avatar purdeaandrei avatar vdsabev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

image-downloader-cnt's Issues

Split list on sections, so not everything is loaded at once

If a lot of images are discovered (e.g. HD versions added), then popup might take a long time to start and even can crash. Splitting list on sections may help. Navigating between list sections could be done with numbers 1,2,3,... on top

Request for default "Select All" toggle

Please add an option to where "Select All" in the images is defaulted to on/clicked.

I like to gather images from a particular website and after using the other filters I would like to save time by clicking on extention button and then just clicking download.

kiwi browser

it did work ok vk.com
but on Twitter it doesn't show anything

extensions slows down and cannot grab images on onlyfans

After loading a page with about 650 images. Clicking on the extension causes the popup to show, but only bit by bit. The extension barely reacts for some reason on onlyfans. It cannot find the images behind the thumbnails at this point. The only extension found those, but stopped working a while ago. Is there anything you can do grab the images from the links?

The slowness can be reproduced.

The inability to grab the images from the links only, seems to be limites to the grid view. If that is switched to the view with the images in one long continuous view one after the other, the extension can grab the images from the links. Maybe something worth looking into.

User request: Keyboard Shortcuts

Keyboard Shortcuts
Greetings there. Great extension! Is there any chance you add keyboard shortcuts? Personally referring mostly to the blue rectangle DOWNLOAD button and/or to the single image download option. I have enabled 99% of the time "Only images from links" then click the "select all" and then I click the download button. If all that can be done with 1 click, using a shortcut, and personally attaching it to my mouse via logitech's G-hub software, that would be a life saver! Thank you in advance.
Posted by Constantine Drosos - 2 weeks ago

Conflict with Loom video playback

Thanks for the Image Downloader Continued Chrome extension. I just ran into a conflict with it and the Loom video platform. The Loom page displays as expected, but clicking on the video play button (or anywhere in the video frame) generates this error message: An error occurred on the page: TypeError: Cannot read properties of undefined (reading ‘catch’)

When I disable the Image Downloader Continued extension, the video plays as expected. Please let me know if I can help you track down the conflict.

Here’s the Loom page:
https://www.loom.com/share/b81ebad700ec40a5b5deb21f153971

BCohen-Loom-Brave-error-2021-12-03.mp4

f5

Slow Network Bulk Image Download

Bulk Download of Images on Slow networks will actually stop downloads for all images.
This requires a way to know that the previous image download has finished starting another image download.

Another way is to have a "maximum" number of concurrent downloads as an option.

Logical Renaming

I had a previous bulk download extension (FatKun) which cleverly added a field to define how many digits a numeric sequence should fill. In the case of the way it is currently setup to rename files if we have more than ten files, the first nine are single digit numeros and the numbers at ten and beyond are two digits. Same applies to three digit numbers for over one hundred files.

Is there a way to define the digits so by example, setting the number two would start the first image as "01", and three digits as: "001". This way when we logically sort the files, so they will appear in the correct order (01, 02, 03, 04) instead of: 1, 10, 2, 20, 3, 30, etc.. ?

Currently I download 5-100+ images at a time and having to manually edit the numbers to insert a 0 or 00 in the number sequence is getting old. I use an old 2000-2001 Freeware bulk file renaming tool (Ant Renamer) to manually rename the files 1-9 to show as 01, 02, 03, 04, 05, 06, 07, 08, and 09. In the cases where I have over one hundred files then of course I rename the first nine to 001, 002, 003, etc, then for the numbers 10-99, I insert a single 0. All this extra steps when a single click in the original downloader would have been much productive.

I only stopped using Fatkun because they changed their search engine and it no longer works with the sites I used to use it on.

Add 'save to zip' option

Many users prefer to have a bundle of images downloaded as a single archive. One (main?) challenge is how to make sure that the code will finish archiving process even if the popup is closed.

Indirect links and per-url/domain download folder

Iosif Gagyi Palffy wrote on Jul 11, 2019:

It cannot download images from links that do not go straight to the image (so a link ending with an image extension like .jpg) but i haven't found anything that can do that and it might be impossible.

But it's biggest flaw and the reason i am no longer using it is that it does not automatically put all your images in their own folder (for each set), if you have Ask where to save turned off then it just puts everything in the same general folder (this is no good) and if you have it turned on (like i like it to be) then it asks where to save for each file and that's just too much. Other extensions like Video DownloadHelper do a much better job at this where it automatically creates a folder for each image set based on the URL you are downloading from (but it's limited to 50 images)

Could Not Move extension directory to profile

I was using this extension for months, but yesterday it would not load and when I checked my extensions, Chrome claimed it was corrupted so I uninstalled it. Rebooted and tried to install it again only to be flagged with the pop-up, "Could Not Move extension directory to profile". Solutions?

Chrome is up to date
Version 98.0.4758.81 (Official Build) (64-bit)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.