1.1.2 • Published 1 year ago

fineartdown v1.1.2

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

npm.io

FineArtDown

Download full size images from Fine Art America, Conde Nast Store, Photos.com and Pixels.com. You can check results in the Results Gallery.

Usage

  1. Download the executable from Releases.
  2. Open your terminal in the path where the executable file is located.
  3. Run the command: ./fineartdown-[your-os] <url>
> ./fineartdown-win https://fineartamerica.com/featured/dancing-octopus-barathieu-gabriel.html

From npm

npm install -g fineartdown

fineartdown <url or artworkid>

Or run locally:

gh repo clone agmmnn/fineartdown
cd fineartdown
pnpm i

pnpm fineartdown <url or artworkid>

How it works?

The backend server sends a 10% smaller slice of the requested tile with 10% upscale.

  • User: Request: 600px.
  • Server: Send 10% less slice of the user's selection, upscaled by 10%. Response: 540px to 600px.

npm.io

So we need 3 layers to fill most of the gaps between the tiles. layer1, layer2, layer3

A 4th layer can be added, but this requires more requests to the server. And the server does not return the image more than a certain number of requests in a certain period of time. This time we have to put a delay between each download, which makes the total process longer. Using different proxy ip's can be a solution.

npm.io

You can make calculations using the calculator project.

Known Problems:

Gaps Between Tiles:

There are still gaps between tiles. Because 3 layers cannot cover the whole picture. As I mentioned before, adding the 4th layer takes a lot of time. Different layer sizes or different image sizes create different patterns.

  1. The first type of gap is a rectangular gap caused by the layers not covering the entire surface.

ApplicationFrameHost_gi2wJ9xWLc

  1. The second type of gap is caused by downsizing the 600px layer to 599. Because the server is actually sending 1 pixel lower probably due to the decimal values widthmedium and heightmedium. (it took me a long time to figure it out)

ApplicationFrameHost_94IWLMzX2R

This can be solved with the Healing Brush Tool in Photoshop.

Limited Request to Server

The server sends the content "---" instead of the image after a certain number of requests within a certain period of time. Therefore, I added a rule to the download function that if it fails, it retries after a certain delay. That's why it takes longer to download an image.

Results

You can find more results in the Results Gallery.

npm.io npm.io