Incorrect or missing information? Pre-queue scripts
You can choose to let SABnzbd run a script just before an NZB enters the queue. This script will tell whether the NZB should be accepted or not and can modify some parameters.
Scripts can be Python scripts, bash scripts and BAT scripts. All scripts must be located in the scripts-directory, that can be specified in Config->Folders. Furthermore, the script must be executable. On Linux this means the x-bit must be on. On Windows, the requirement is that the script's extension is listed in your system's
PATHEXT environment variable.
The script must write results to the console.
0 will make SABnzbd inspect the returned output.
If the script has an exit code other than
0, it's assumed the script failed, and the NZB will be accepted without changes.
All parameters (except 1) can be empty, meaning a default value. Use
%1 in Windows scripts and
$1 in Unix scripts. Note that on Windows the input parameters are surrounded by quotes (e.g.
Much more information is available to scripts via environment variables, see below!
|1||Name of the NZB (no path, no ".nzb")|
|2||Post Processing (PP) flags:
|4||Script (no path)|
|6||Size of the download (in bytes)|
|7||Group list (separated by spaces)|
The script can refuse or accept the NZB and it can also return alternative parameters. These parameters should be written to the console, each parameter on a separate line. SABnzbd uses the first 7 lines of output, so they should only contain proper data (or be empty). Anything after line 7 is ignored.
When you want to manipulate the show/season/episode parameters, you should assemble a new name and return a recognized format.
|2||Name of the NZB (no path, no ".nzb")|
|3||Post Processing (PP) flags:
|5||Script (no path)|
|7||Group to be used (in case your provider doesn't carry all groups and there are multiple groups in the NZB)|
v2.3.5+ Enviroment variables were added in SABnzbd 2.3.5.
Your script can get extra information via environment variables (return information should still be send as plain output):
|SAB_SCRIPT||The name of the current script|
|SAB_FINAL_NAME||The name of the job in the queue and of the final folder|
|SAB_FILENAME||The NZB filename (after grabbing from the URL)|
|SAB_CAT||What category was assigned|
|SAB_BYTES||Total number of bytes|
|SAB_DUPLICATE||Was it detected as duplicate|
|SAB_PASSWORD||What was the password supplied by the NZB or the user|
|SAB_STATUS||Current status (completed/failed/running)|
|SAB_PP||What post-processing was activated (download/repair/unpack/delete)|
|SAB_REPAIR||Was repair selected by user|
|SAB_UNPACK||Was unpack selected by user|
|SAB_PRIORITY||Priority set by user|
|SAB_GROUPS||Newsgroups listed in the NZB|
|SAB_VERSION||The version of SABnzbd used|
|SAB_PROGRAM_DIR||The directory where the current SABnzbd instance is located|
|SAB_PAR2_COMMAND||The path to the
|SAB_MULTIPAR_COMMAND||Windows-only (empty on other systems). The path to the MultiPar command on the system that SABnzbd uses|
|SAB_RAR_COMMAND||The path to the
|SAB_ZIP_COMMAND||The path to the
|SAB_7ZIP_COMMAND||The path to the
Example Script 1
Example of a Windows batch file that forces high priority on anything smaller than 2GB.
Save it as file
size-checker.cmd and put in the scripts folder.
Example Script 2
A python script to set prio to Force on downloads smaller than 50MB: