gallery-dl
gallery-dl is a command-line program to download image galleries and collections from several image hosting sites (see Supported Sites). It is a cross-platform tool with many configuration options and powerful filenaming capabilities.
Dependencies
Optional
- FFmpeg: Pixiv Ugoira to WebM conversion
- youtube-dl: Video downloads
Installation
Pip
The stable releases of gallery-dl are distributed on PyPI and can be easily installed or upgraded using pip:
$ python3 -m pip install -U gallery-dl
Installing the latest dev version directly from GitHub can be done with pip as well:
$ python3 -m pip install -U -I --no-deps --no-cache-dir https://github.com/mikf/gallery-dl/archive/master.tar.gz
Note: Windows users should use py -3
instead of python3
.
setuptools
and wheel
.
$ python3 -m pip install --upgrade pip setuptools wheel
From Source
Get the code by either
- Downloading a stable or dev archive and unpacking it
- Or via
git clone https://github.com/mikf/gallery-dl.git
Navigate into the respective directory and run the setup.py
file.
$ wget https://github.com/mikf/gallery-dl/archive/master.tar.gz
$ tar -xf master.tar.gz
# or
$ git clone https://github.com/mikf/gallery-dl.git
$ cd gallery-dl*
$ python3 setup.py install
Standalone Executable
Download a standalone executable file, put it into your PATH, and run it inside a command prompt (like cmd.exe
).
These executables include a Python interpreter and all required Python packages.
Snap
Linux users that are using a distro that is supported by Snapd can install gallery-dl from the Snap Store:
$ snap install gallery-dl
Chocolatey
Windows users that have Chocolatey installed can install gallery-dl from the Chocolatey Community Packages repository:
$ choco install gallery-dl
Scoop
Apart from Chocolatey, gallery-dl is also available in Scoop "main" bucket for Windows users.
$ scoop install gallery-dl
Usage
To use gallery-dl simply call it with the URLs you wish to download images from:
$ gallery-dl [OPTION]... URL...
See also gallery-dl --help
.
Examples
Download images; in this case from danbooru via tag search for 'bonocho':
$ gallery-dl "https://danbooru.donmai.us/posts?tags=bonocho"
Get the direct URL of an image from a site that requires authentication:
$ gallery-dl -g -u "<username>" -p "<password>" "https://seiga.nicovideo.jp/seiga/im3211703"
Filter manga chapters by language and chapter number:
$ gallery-dl --chapter-filter "lang == 'fr' and 10 <= chapter < 20" "https://mangadex.org/title/2354/"
$ gallery-dl "r:https://pastebin.com/raw/FLwrCYsT"
If a site's address is nonstandard for its extractor, you can prefix the URL with the extractor's name to force the use of a specific extractor:
$ gallery-dl "tumblr:https://sometumblrblog.example"
Configuration
Configuration files for gallery-dl use a JSON-based file format.
gallery-dl searches for configuration files in the following places:
- Windows:
-
%APPDATA%\gallery-dl\config.json
%USERPROFILE%\gallery-dl\config.json
%USERPROFILE%\gallery-dl.conf
(
%USERPROFILE%
usually refers to the user's home directory, i.e.C:\Users\<username>\
) - Linux, macOS, etc.:
-
/etc/gallery-dl.conf
${HOME}/.config/gallery-dl/config.json
${HOME}/.gallery-dl.conf
Values in later configuration files will override previous ones.
Command line options will override all related settings in the configuration file(s), e.g. using --write-metadata
will enable writing metadata using the default values for all postprocessors.metadata.*
settings, overriding any specific settings in configuration files.
Authentication
Username & Password
Some extractors require you to provide valid login credentials in the form of a username & password pair. This is necessary for pixiv
, nijie
, and seiga
and optional for aryion
, danbooru
, e621
, exhentai
, idolcomplex
, inkbunny
, instagram
, luscious
, pinterest
, sankaku
, subscribestar
, tsumino
, and twitter
.
You can set the necessary information in your configuration file (cf. gallery-dl.conf)
{
"extractor": {
"pixiv": {
"username": "<username>",
"password": "<password>"
}
}
}
or you can provide them directly via the -u/--username
and -p/--password
or via the -o/--option
command-line options
$ gallery-dl -u <username> -p <password> URL
$ gallery-dl -o username=<username> -o password=<password> URL
Cookies
For sites where login with username & password is not possible due to CAPTCHA or similar, or has not been implemented yet, you can use the cookies from a browser login session and input them into gallery-dl.
This can be done via the cookies option in your configuration file by specifying
-
the path to a Mozilla/Netscape format cookies.txt file exported by a browser addon(e.g. Get cookies.txt for Chrome, Export Cookies for Firefox)
For example:
{
"extractor": {
"instagram": {
"cookies": "$HOME/path/to/cookies.txt"
},
"patreon": {
"cookies": {
"session_id": "K1T57EKu19TR49C51CDjOJoXNQLF7VbdVOiBrC9ye0a"
}
}
}
}
You can also specify a cookies.txt file with the --cookies
command-line option:
$ gallery-dl --cookies "$HOME/path/to/cookies.txt" URL
OAuth
gallery-dl supports user authentication via OAuth for deviantart
, flickr
, reddit
, smugmug
and tumblr
. This is entirely optional, but grants gallery-dl the ability to issue requests on your account's behalf and enables it to access resources which would otherwise be unavailable to a public user.
To link your account to gallery-dl, start by invoking it with oauth:<sitename>
as an argument. For example:
$ gallery-dl oauth:flickr
You will be sent to the site's authorization page and asked to grant read access to gallery-dl. Authorize it and you will be shown one or more "tokens", which should be added to your configuration file.