gallery-dl Config Generator
Choose common defaults and generate readable gallery-dl JSON in your browser. Download the file locally, review every value, place it in a supported location, and verify which configuration your installation actually loads.
Generate a gallery-dl config file
Create a conservative starting configuration. Values are generated locally and can be copied into one of gallery-dl's recognized config locations.
config.json
gallery-dl searches platform-specific locations and can also receive explicit config files. Use gallery-dl --config-status to see what your installed version loads; do not guess when several files may exist.
gallery-dl config file locations
Configuration locations differ by operating system and installation context. Common user paths include gallery-dl.conf in a Windows user application-data folder and gallery-dl/gallery-dl.conf under an XDG config directory on Linux. macOS and other Unix-like systems may use user config directories documented by the project. The authoritative answer is the status reported by your own executable.
A config file is JSON despite the .conf extension. Save it as plain UTF-8 text, keep keys and string values in double quotes, remove trailing commas, and escape backslashes when you use Windows-style paths. Forward slashes in Windows JSON paths are often easier to read. Run a JSON validator or use this generator before blaming an extractor for a parse error.
gallery-dl --config-statusgallery-dl --config-opengallery-dl --config "C:/path/gallery-dl.conf" --simulate "URL"gallery-dl --config-ignore --simulate "URL"Understand the gallery-dl JSON structure
Most general download defaults belong under the extractor object. A broad extractor section can set a base directory, filename pattern, archive database, cookies source, and request timing. Site-specific sections can override those defaults, but add them only after checking the exact configuration key and extractor name in official documentation.
Configuration is powerful because it runs on every matching request. That also makes broad changes risky. A filename expression copied for one extractor may refer to fields another extractor does not expose. A global filter can silently remove valid items. Begin with output location and archive settings, test multiple representative URLs, and introduce formatting or filtering only when -K confirms the required fields.
{
"extractor": {
"base-directory": "./gallery-dl/",
"archive": "./gallery-dl/archive.sqlite3"
}
}gallery-dl -K "URL"Useful gallery-dl config options
A base directory gives downloads a predictable root. An archive prevents successful IDs from being downloaded repeatedly. Browser cookies can authenticate sites using a local profile, and a small sleep interval can reduce request bursts. Metadata, ZIP, and filename choices change storage behavior, so evaluate them with small test jobs.
Never paste raw cookie values, passwords, API secrets, or private URLs into a public config example. Keep local configuration outside shared repositories or add it to ignore rules. If you synchronize config between machines, use separate secret storage and confirm that paths, browser profiles, and file permissions make sense on each device.
| Setting | Purpose | Test before making global |
|---|---|---|
| base-directory | Sets the download root | Confirm path permissions and free space |
| filename | Formats output names | Run -K on each extractor type |
| archive | Skips IDs already completed | Use a stable, backed-up path |
| cookies | Reads a local browser or file source | Confirm profile access without sharing data |
| sleep | Adds delay between requests | Balance site load and job duration |
| postprocessors: metadata | Creates metadata sidecars | Estimate file count and storage |
| postprocessors: zip | Writes archive output | Test recovery and disk-space behavior |
Test and troubleshoot a gallery-dl config
First check that the JSON parses and --config-status reports the expected path. Simulate one public URL with the config, then simulate the same URL with --config-ignore. A difference between those results proves configuration is involved. Narrow the cause by commenting through a copy is not valid JSON; instead, remove one suspect key at a time from a temporary file.
When more than one config file is loaded, later or more specific values may override earlier defaults. Keep the setup small enough to understand. Record why each non-obvious option exists, maintain a known-good backup, and retest after upgrades because extractors, metadata fields, and supported options can evolve.
- Validate JSON syntax before testing network behavior.
- Confirm the loaded file with --config-status.
- Use --simulate on a small, representative public URL.
- Compare with --config-ignore to isolate configuration.
- Add site-specific overrides only after global defaults work.
- Keep cookies and secrets local and out of version control.
Form values are converted to JSON with local JavaScript. The generated config is not uploaded to gallery-dl.wiki; your browser handles copy and download actions.
Keep gallery-dl config small enough to audit
Keep gallery-dl config small enough to explain without reconstructing old experiments. Start with a base directory and archive, then add filename, cookies, timing, or postprocessor rules only after each option succeeds on representative URLs. A compact gallery-dl config is easier to compare with --config-ignore and less likely to apply an extractor-specific assumption globally.
Treat every gallery-dl config change like a small deployment. Validate the JSON, preserve a known-good copy, simulate a public URL, inspect the planned paths, and then test a limited download. If cookies are referenced, confirm only the selector or protected local filename is stored—not raw session values. If the config is shared between computers, review paths, operating-system filename rules, browser profiles, and permissions separately on each machine.
Document the reason for non-obvious keys beside the file in a secret-free note. Record which URLs were used for validation and which gallery-dl version passed. When an extractor update changes metadata, that record helps you distinguish a new upstream field from an accidental gallery-dl config override. Remove obsolete keys instead of leaving disabled-looking fragments, because JSON has no standard comment syntax and a copied pseudo-comment can make the whole file invalid.
Authoritative references
Related gallery-dl resources
gallery-dl config FAQ
Where is the gallery-dl config file?
The search path depends on the operating system and installation. Run gallery-dl --config-status to see what your executable loads.
What format does gallery-dl config use?
It uses JSON. Keys and strings need double quotes, trailing commas are invalid, and Windows backslashes must be escaped.
How do I open gallery-dl config?
Use gallery-dl --config-open when supported, or read the path shown by --config-status and open it in a plain-text editor.
How can I test without my config?
Add --config-ignore to one simulated request. If behavior changes, isolate the relevant key in a temporary minimal config.
Can I have more than one gallery-dl config?
gallery-dl can load explicit or multiple config sources. Keep precedence understandable and confirm the effective paths with --config-status.
Is it safe to store cookies in gallery-dl config?
A gallery-dl config should prefer a local browser selector or protected local cookie file. Never publish raw cookies or commit authentication material to a repository.