Config options - HyperNylium/mdnx-auto-dl GitHub Wiki
config.json
usage
Notes for All items in the Config
column would go in the app
section.
For example, if i wanted to modify CR_USERNAME
, i would put it here:
{
"app": {
"CR_USERNAME": ""
}
}
The only exception here is monitor-series-id
. That is in the global scope of the JSON file, not in a property like app
or mdnx
.
If you wanted to modify q: 0
and dubLang: ["jpn", "eng", "zho"]
in cli-defaults.yml
for multi-downloader-nx, you just need to modify the mdnx
key like this.
Any setting from multi-downloader-nx's documentation is valid as long as the option has a cli-default Entry
that isn't NaN
:
{
"mdnx": {
"q": 0,
"dubLang": ["jpn", "eng", "zho"]
}
}
Standered JSON formatting still applies. Separate list items with a ,
(comma), integers are going to be stand-alone numbers, not in ""
(quotes). Anything you put in quotes is a string object.
config.json
Config options for Config | Default value | Explanation |
---|---|---|
monitor-series-id |
[] |
List of Crunchyroll series IDs to watch for new episodes. |
TEMP_DIR |
/app/appdata/temp |
Temporary staging directory. Raw downloads are written here before moving into your library. |
BIN_DIR |
/app/appdata/bin |
Path containing bundled binaries (e.g. multi-download-nx , Bento4-SDK ) inside the container. |
LOG_FILE |
/app/appdata/logs/app.log |
Absolute path of the application log file in the container. |
DATA_DIR |
/data |
Root of your anime library on the host. Finished files are organized here according to FOLDER_STRUCTURE . |
CR_USERNAME |
"" |
Crunchyroll username for authentication. |
CR_PASSWORD |
"" |
Crunchyroll password for authentication. |
BACKUP_DUBS |
["zho"] |
List of backup dubs to download if the primary dubs are not available. |
FOLDER_STRUCTURE |
${seriesTitle}/S${season}/${seriesTitle} - S${seasonPadded}E${episodePadded} |
Template for how seasons and episodes are laid out under DATA_DIR . |
DOWNLOAD_SPECIAL_EPISODES |
false |
If true , download special episodes (e.g. S00EXX , movies); if false , ignore them. |
SPECIAL_EPISODES_FOLDER_NAME |
Special |
Folder name (inside each series) that stores special episodes. |
CHECK_MISSING_DUB_SUB |
true |
When true , detect and report episodes missing dub or subtitle tracks. |
CHECK_MISSING_DUB_SUB_TIMEOUT |
300 |
Seconds to wait before timing out when checking for missing dubs/subs on a file. |
CHECK_FOR_UPDATES_INTERVAL |
3600 |
Seconds to wait between complete library scans for new episodes or missing tracks. |
BETWEEN_EPISODE_DL_WAIT_INTERVAL |
30 |
Delay in seconds after each episode download to reduce API rate‑limiting. |
CR_FORCE_REAUTH |
false |
When true , always perform a fresh Crunchyroll login and overwrite cr_token.yml , then reset to false . |
CR_SKIP_API_TEST |
false |
When true , skip the startup self‑test that probes the Crunchyroll API. |
NOTIFICATION_PREFERENCE |
none |
Set what service you want to use to receive notifications. Options: none , smtp ,ntfy . |
LOG_LEVEL |
info |
Set the logging level. Options: debug , info , warning , error , critical . |
REMOVE_ALL_ACTIVE_STREAMS |
false |
When true , remove all active streams before starting a new download. Sets --tsd to true in mdnx |
FOLDER_STRUCTURE
Options for Variable | Example value | Explanation |
---|---|---|
${seriesTitle} |
Kaiju No. 8 |
Sanitised series title (filesystem-unsafe characters replaced). |
${season} |
1 |
Season number, no leading zeros. |
${seasonPadded} |
01 |
Season number padded to two digits. |
${episode} |
1 |
Episode number, no leading zeros. |
${episodePadded} |
01 |
Episode number padded to two digits. |
${episodeName} |
The Man Who Became a Kaiju |
Sanitised episode title. |
Example of FOLDER_STRUCTURE
with the above variables:
${seriesTitle}/S${season}/${seriesTitle} - S${seasonPadded}E${episodePadded}
This would result in the following folder structure:
Kaiju No. 8/S1/Kaiju No. 8 - S01E01
NOTIFICATION_PREFERENCE
Options for Option | Explanation |
---|---|
none |
No notifications will be sent. |
smtp |
Send notifications via SMTP email. Requires additional configuration in config.json . |
ntfy |
Send notifications via ntfy.sh. Requires additional configuration in config.json and app/appdata/config/ntfy.sh |
For smtp
, add the following key-value pairs to config.json
right under the NOTIFICATION_PREFERENCE
key:
"NOTIFICATION_PREFERENCE": "smtp",
"SMTP_FROM": "who we sending as?",
"SMTP_TO": "who we sending to?",
"SMTP_HOST": "smtp.gmail.com, or whatever your email provider is",
"SMTP_USERNAME": "your username. For gmail, this is your email address",
"SMTP_PASSWORD": "your password. For gmail, this is your app password",
"SMTP_PORT": 587,
"SMTP_STARTTLS": true
For ntfy
, add the following key-value pairs to config.json
right under the NOTIFICATION_PREFERENCE
key:
"NOTIFICATION_PREFERENCE": "ntfy",
"NTFY_SCRIPT_PATH": "/app/appdata/config/ntfy.sh"
Make sure to set NTFY_URL
in app/appdata/config/ntfy.sh
to the URL of your ntfy server.
To modify things like tags and such, you can modify the ntfy.sh
script.
Environment variables
These are the environment variables that you can set in the docker-compose.yaml
file under the environment
section.
Variable | Default value | Explanation |
---|---|---|
UID |
1000 |
User ID that mdnx-auto-dl will run as. |
GID |
1000 |
Group ID that mdnx-auto-dl will run as. |
TZ |
America/New_York |
Timezone for the container. Set to your local timezone from the "TZ identifier" column here. |
CONFIG_FILE |
/app/appdata/config/config.json |
config.json file location in the container. |
QUEUE_FILE |
/app/appdata/config/queue.json |
queue.json file location in the container. |
BENTO4_URL |
https://raw.githubusercontent.com/HyperNylium/mdnx-auto-dl/refs/heads/master/app/appdata/bin/Bento4-SDK.zip |
URL for downloading Bento4-SDK.zip if both the file itself and extracted folder doesn't exist. |
MDNX_URL |
https://raw.githubusercontent.com/HyperNylium/mdnx-auto-dl/refs/heads/master/app/appdata/bin/mdnx.zip |
URL for downloading mdnx.zip if both the file itself and extracted folder doesn't exist. |