Config Reference
This page documents how configuration values are resolved and what each configuration key does.
Precedence
The effective precedence is:
CLI Parameter
Environment Variable
Config File
Default (Host)
Default
Default (host) values come from web_novel_scraper/resources/host_config.json
and have some default settings for different hosts like using FlareSolverr or a
bigger timeout.
Config File Location Precedence
The location of the config file itself has its own precedence:
config_fileCLI ParameterSCRAPER_CONFIG_FILEEnvironment VariableInternal default path (
$HOME/.config/web-novel-scraper/config.jsonon Linux)
If file loading fails (missing, empty, malformed), the scraper falls back to an empty file config and continues with the rest of the precedence chain.
Configuration Schema
Top-level keys:
base_novels_dir(string)decode_guide_file(string)request_config(object)
request_config keys:
force_flaresolver(bool)flaresolver_url(string)request_timeout(int)request_retries(int)request_time_between_retries(int)request_cookies(dict)
Options Detail
base_novels_dir
Type: string path
Default:
platformdirs.user_data_dir("web-novel-scraper", "web-novel-scraper")Purpose: base directory where novel folders are stored.
- Sources:
parameter: base_novels_direnv: SCRAPER_BASE_NOVELS_DIRconfig file: base_novels_dir
decode_guide_file
Type: string path
- Default: bundled decode guide path
web_novel_scraper/decode_guide/decode_guide.json
Purpose: file used to load host extraction rules.
- Sources:
parameter: decode_guide_fileenv: SCRAPER_DECODE_GUIDE_FILEconfig file: decode_guide_file
request_config.force_flaresolver
Type: bool
Default:
falsePurpose: force requests through FlareSolverr.
- Accepted bool-like values:
true/false,1/0,yes/no(case-insensitive), plus native bool/int.
- Sources:
parameter: force_flaresolverenv: SCRAPER_FORCE_FLARESOLVERconfig file: request_config.force_flaresolverdefault(host): request_config.force_flaresolver
request_config.flaresolver_url
Type: string URL
Default:
http://localhost:8191Purpose: FlareSolverr endpoint.
- Sources:
env: SCRAPER_FLARESOLVER_URLconfig file: request_config.flaresolver_url
request_config.request_timeout
Type: int
Default:
20Purpose: request timeout in seconds.
- Sources:
parameter: request_timeoutenv: SCRAPER_REQUEST_TIMEOUTconfig file: request_config.request_timeoutdefault(host): request_config.request_timeout
request_config.request_retries
Type: int
Default:
3Purpose: max retries per request.
- Sources:
parameter: request_retriesenv: SCRAPER_REQUEST_RETRIESconfig file: request_config.request_retriesdefault(host): request_config.request_retries
request_config.request_time_between_retries
Type: int
Default:
3Purpose: seconds to wait between retries if request fails.
- Sources:
parameter: request_time_between_retriesenv: SCRAPER_REQUEST_TIME_BETWEEN_RETRIESconfig file: request_config.request_time_between_retriesdefault(host): request_config.request_time_between_retries
Minimal Config File Example
{
"base_novels_dir": "/home/user/novels",
"decode_guide_file": "/home/user/custom_decode_guide.json",
"request_config": {
"force_flaresolver": true,
"flaresolver_url": "http://localhost:8191",
"request_timeout": 30,
"request_retries": 5,
"request_time_between_retries": 4,
"request_cookies": {
"custom_toc": "10000"
}
}
}