GALLERY-DL GUIDE PART 1: SETTING THE SCENE The main terminal tool for downloading images from hundreds of galleries and boorus. If you want to download albums off Flickr, galleries from deviantArt or all of your vornography from Eka's Portal. You heard that last one right, this one supports a lot of porn sites. Once you have rigged the script to your liking, you can tab out the window, do your other tasks and come back to a full archive. Installation Linux 1. Debian: python3 -m pip install -U gallery-dl 2. Arch: sudo pacman -S gallery-dl 3. RHEL: sudo dnf install gallery-dl 4. Others: python3 -m pip install -U gallery-dl 5. Verify installation: gallery-dl --version macOS 1. Homebrew: brew install gallery-dl 2. MacPorts: sudo port install gallery-dl 3. Nix: nix-shell -p gallery-dl 4. pip: python3 -m pip install -U gallery-dl 5. Verify installation: gallery-dl --version Windows 1. Scoop: scoop install gallery-dl 2. Chocolatey: choco install gallery-dl 3. pip: python3 -m pip install -U gallery-dl 4. Standalone executable: download from https://github.com/mikf/gallery-dl/releases 5. Verify installation: gallery-dl --version PART 2: USING GALLERY-DL Step 1: Learning the Basics 1. The basic syntax is simple. Open your terminal and pass a URL: gallery-dl "https://www.example.com/gallery/URL" 2. gallery-dl will automatically detect the site, find all images in the gallery, and download them. By default, files are saved to a gallery-dl/ subfolder inside your current directory, organised by site and username. 3. If you hit a rate limit, go down to Step 3 to learn how to handle them. If you have not yet, you can proceed as normal to Step 2. Step 2: Using Commands Download a gallery or user page: gallery-dl "URL" Download to a specific folder (Linux and macOS): gallery-dl -d ~/Pictures/gallery-dl "URL" Download to a specific folder (Windows): gallery-dl -d "C:\Users\YourUsername\Pictures\gallery-dl" "URL" List the URLs that would be downloaded (without downloading): gallery-dl -g "URL" See what keywords are available for a URL (useful for custom filenames): gallery-dl -K "URL" Username and password (command line): gallery-dl -u "yourusername" -p "yourpassword" "URL" See all available options: gallery-dl --help Step 3: Stopping the Rate Limits Most websites do not like having their servers pounded by legions of robots. Because we are the robots for once, this is a bit of a problem. Thankfully this requires one minimal input in addition to your existing configuration, which goes as such: --sleep 10-25 Websites know that bots are hitting them, but they will tolerate that activity as long as it is not too aggressive. And by default, as you may have seen in your test run, gallery-dl is quite aggressive. So it is not enough to just work with the normal settings. You will want to download larger galleries at better qualities, and you will eventually hit this one way or another. Rate-limiting is essentially how a website protects itself from bad actors, excessive bandwidth use and potential downtime. Every time your browser asks for something, whether that is an image, a page, or anything else, that counts as a request. If you send too many, whether you are a human or a robot, the site will start pushing back. Websites use a few different techniques for this. They may track your IP address, your login session, your browser session, or even an API key. If you exceed a certain threshold of requests per minute, you will get hit with a limit. Some sites also use what is called a sliding window or token bucket system. If you are familiar with LLMs, you will know exactly what this is. The service will allow you a certain number of requests, and if you go through them too quickly, you have to wait for it to refill. This is why large bursts cause problems, whereas spacing things out over time does not. The latter method does not hit the same limits in the same way. Now, while gallery-dl does allow you to retry if 429s happen, this particular method avoids that entirely. I have downloaded thousands of pictures using this approach and have not encountered a 429 since. You do not want to be working in bursts followed by five minute wait times. I have tried that, and it does not work. It does not matter how long you wait between bursts, the moment you start hammering the server again, it will push back with rate limits. What this random timer helps to achieve is a more organic appearance. By resembling a human user, you do not trip the server's bot detection. I went with 10 to 25 to begin with, but you can alter this however you see fit. Also, you might see some guides suggesting the use of accounts or API keys. I have deliberately avoided that here. Archiving is a free activity by default, and if you do not want to be tracked or tied to an account, it is just not necessary for this setup. An ounce of prevention, and all that. CONCLUSION Congratulations! You can now download image galleries from the command line. For a full list of configuration options, see the gallery-dl configuration documentation at: https://gdl-org.github.io/docs/configuration.html