Windows 11/10 · JSON config · Copy-paste examples
The gallery-dl config file lets you set permanent defaults — output folder, filename templates, rate limiting, cookies and per-site options. No need to repeat flags on every command.
Config file location
gallery-dl checks these locations in order — first match wins.
%APPDATA%\gallery-dl\config.json
e.g. C:\Users\YourName\AppData\Roaming\gallery-dl\config.json — recommended for permanent setup
gallery-dl.conf (same folder as gallery-dl.exe)
Portable setup — config travels with the executable
gallery-dl --config "C:\path\to\myconfig.json" "URL"
Override config path per-command
%APPDATA%\gallery-dl\ if it doesn't exist. Press Win+R, type %APPDATA%, press Enter, then create a new folder named gallery-dl.
Starter config
Save this as config.json in %APPDATA%\gallery-dl\. Edit the paths and options to match your setup.
{
"extractor": {
"base-directory": "C:/Images/",
"filename": "{category}_{author}_{num:>04}_{filename}.{extension}",
"sleep-request": 1.5,
"retries": 5,
"timeout": 30,
"verify": true
},
"downloader": {
"part": true,
"rate": "2M"
},
"output": {
"mode": "terminal",
"progress": true,
"shorten": true
}
}
/ in paths — they work fine on Windows and avoid JSON escape issues with backslashes.
Key options explained
"base-directory": "C:/Images/"
"filename": "{category}_{author}_{num:>04}_{filename}.{extension}"
"directory": ["{category}", "{uploader}"]
"sleep-request": 2.0
"rate": "2M"
"instagram": {
"cookies": "C:/Tools/gallery-dl/instagram-cookies.txt"
}
Filename templates
Use these variables in "filename" and "directory" settings.
{filename}{extension}{category}{author}{uploader}{num}{date}{title}{id}Zero-pad numbers: {num:>04} → 0001, 0042. Date format: {date:%Y-%m-%d} → 2026-06-09.
FAQ
%APPDATA%\gallery-dl\config.json. Open Run (Win+R), type %APPDATA%\gallery-dl and press Enter to navigate there directly. You can also place gallery-dl.conf in the same folder as gallery-dl.exe for a portable setup.%APPDATA%\gallery-dl\ and save your JSON file there as config.json. Verify it's valid JSON — even a single missing comma or quote will break it.\\)."instagram": {"sleep-request": 3} inside the "extractor" object. Site keys match the {category} variable — instagram, twitter, pixiv, deviantart, reddit, etc."directory" option per site extractor. Example: "instagram": {"directory": ["C:/Insta/", "{uploader}"]}. This creates a subfolder per username automatically.