# Sample configuration file for NZBGet # # On POSIX put this file to one of the following locations: # ~/.nzbget # /etc/nzbget.conf # /usr/etc/nzbget.conf # /usr/local/etc/nzbget.conf # /opt/etc/nzbget.conf # # On Windows put this file in program's directory. # # You can also put the file into any location, if you specify the path to it # using switch "-c", e.g: # nzbget -c /home/user/myconfig.txt # For quick start change the option MainDir and configure one news-server ############################################################################## ### PATHS ### # Root directory for all tasks. # # On POSIX you can use "~" as alias for home directory (e.g. "~/downloads"). # On Windows use absolute paths (e.g. "C:\Downloads"). MainDir=~/downloads # Destination directory for downloaded files. # # If you want to distinguish between partially downloaded files and # completed downloads, use also option . DestDir=${MainDir}/dst # Directory to store intermediate files. # # If this option is set (not empty) the files are downloaded into # this directory first. After successful download of nzb-file (possibly # after par-repair) the files are moved to destination directory # (option ). If download or unpack fail the files remain in # intermediate directory. # # Using of intermediate directory can significantly improve unpack # performance if you can put intermediate directory (option ) # and destination directory (option ) on separate physical # hard drives. # # NOTE: If the option is set to empty value the downloaded # files are put directly to destination directory (option ). InterDir=${MainDir}/inter # Directory for incoming nzb-files. # # If a new nzb-file is added to queue via web-interface or RPC-API, it # is saved into this directory and then processed by pre-processing # script (option ). # # This directory is also monitored for new nzb-files. If a new file # is found it is added to download queue. The directory can have # sub-directories. A nzb-file queued from a subdirectory is automatically # assigned to category with sub-directory-name. NzbDir=${MainDir}/nzb # Directory to store program state. # # This directory is used to save download queue, history, information # about fetched RSS feeds, statistics, etc. QueueDir=${MainDir}/queue # Directory to store temporary files. TempDir=${MainDir}/tmp # Directory with web-interface files. # # Example: /usr/local/share/nzbget/webui. # # NOTE: To disable web-interface set the option to an empty value. # This however doesn't disable the built-in web-server completely because # it is also used to serve JSON-/XML-RPC requests. WebDir= # Directory with post-processing and other scripts. # # NOTE: For information on writing scripts visit http://nzbget.net/Extension_scripts. ScriptDir=${MainDir}/scripts # Lock-file for daemon-mode, POSIX only. # # When started in daemon mode the program creates the lock file and # writes process-id (PID) into it. That info can be used in shell # scripts. If the lock file can not be created or the lock to the file # can not be acquired the daemon terminates, preventing unintentional # starting of multiple daemons. # # Set to empty value to disable the creating of the lock-file and the # check for another running instance (not recommended). LockFile=${MainDir}/nzbget.lock # Where to store log file, if it needs to be created. # # NOTE: See also option . LogFile=${DestDir}/nzbget.log # Configuration file template. # # Put the path to the example configuration file which comes with # NZBGet. Web-interface needs this file to read option descriptions. # # Do not put here your actual configuration file (typically stored # in your home directory or in /etc/nzbget.conf) but instead the unchanged # example configuration file (typically installed to # /usr/local/share/nzbget/nzbget.conf). # # Example: /usr/local/share/nzbget/nzbget.conf. ConfigTemplate= ############################################################################## ### NEWS-SERVERS ### # This section defines which servers NZBGet should connect to. # # The servers should be numbered subsequently without holes. # For example if you configure three servers you should name them as Server1, # Server2 and Server3. If you need to delete Server2 later you should also # change the name of Server3 to Server2. Otherwise it will not be properly # read from the config file. Server number doesn't affect its priority (level). # Use this news server (yes, no). # # Set to "no" to temporary disable the server. Server1.Active=yes # Name of news server. # # The name is used in UI and for logging. It can be any string, you # may even leave it empty. Server1.Name= # Level (priority) of news server (0-99). # # The servers are ordered by their level. NZBGet first tries to download # an article from one (any) of level-0-servers. If that server fails, # NZBGet tries all other level-0-servers. If all servers fail, it proceeds # with the level-1-servers, etc. # # Put your major download servers at level 0 and your fill servers at # levels 1, 2, etc.. # # Several servers with the same level may be defined, they have # the same priority. Server1.Level=0 # Group of news server (0-99). # # If you have multiple accounts with same conditions (retention, etc.) # on the same news server, set the same group (greater than 0) for all # of them. If download fails on one news server, NZBGet does not try # other servers from the same group. # # Value "0" means no group defined (default). Server1.Group=0 # Host name of news server. Server1.Host=my.newsserver.com # Port to connect to (1-65535). Server1.Port=119 # User name to use for authentication. Server1.Username=user # Password to use for authentication. Server1.Password=pass # Server requires "Join Group"-command (yes, no). Server1.JoinGroup=no # Encrypted server connection (TLS/SSL) (yes, no). # # NOTE: By changing this option you should also change the option # accordingly because unsecure and encrypted connections use different ports. Server1.Encryption=no # Cipher to use for encrypted server connection. # # By default (when the option is empty) the underlying encryption library # chooses the cipher automatically. To achieve the best performance # however you can manually select a faster cipher. # # See http://nzbget.net/Choosing_a_cipher for details. # # NOTE: One of the fastest cipher is RC4, it also provides strong 128 bit # encryption. To select it use the cipher string "RC4-MD5" (if NZBGet was # configured to use OpenSSL) or "NONE:+VERS-TLS-ALL:+ARCFOUR-128:+RSA:+MD5:+COMP-ALL" # (if NZBGet was configured to use GnuTLS). # # NOTE: You may get a TLS handshake error if the news server does # not support the chosen cipher. You can also get an error "Could not # select cipher for TLS" if the cipher string is not valid. Server1.Cipher= # Maximum number of simultaneous connections to this server (0-999). Server1.Connections=4 # Server retention time (days). # # How long the articles are stored on the news server. The articles # whose age exceed the defined server retention time are not tried on # this news server, the articles are instead considered failed on this # news server. # # Value "0" disables retention check. Server1.Retention=0 # Second server, on level 0. #Server2.Level=0 #Server2.Host=my2.newsserver.com #Server2.Port=119 #Server2.Username=me #Server2.Password=mypass #Server2.JoinGroup=yes #Server2.Connections=4 # Third server, on level 1. #Server3.Level=1 #Server3.Host=fills.newsserver.com #Server3.Port=119 #Server3.Username=me2 #Server3.Password=mypass2 #Server3.JoinGroup=yes #Server3.Connections=1 ############################################################################## ### SECURITY ### # IP on which NZBGet server listen and which clients use to contact NZBGet. # # It could be a dns-hostname (e. g. "mypc") or an ip-address (e. g. "192.168.1.2" or # "127.0.0.1"). An IP-address is more effective because does not require dns-lookup. # # Your computer may have multiple network interfaces and therefore multiple IP # addresses. If you want NZBGet to listen to all interfaces and be available from # all IP-addresses use value "0.0.0.0". # # NOTE: When you start NZBGet as client (to send remote commands to NZBGet server) and # the option is set to "0.0.0.0" the client will use IP "127.0.0.1". # # NOTE: If you set the option to "127.0.0.1" you will be able to connect to NZBGet # only from the computer running NZBGet. This restriction applies to web-interface too. ControlIP=0.0.0.0 # Port which NZBGet server and remote client use (1-65535). # # NOTE: The communication via this port is not encrypted. For encrypted # communication see option . ControlPort=6789 # User name which NZBGet server and remote client use. # # Set to empty value to disable user name check (check only password). # # NOTE: This option was added in NZBGet 11. Older versions used predefined # not changeable user name "nzbget". Third-party tools or web-sites written # for older NZBGet versions may not have an option to define user name. In # this case you should set option to the default value # "nzbget" or use empty value. ControlUsername=nzbget # Password which NZBGet server and remote client use. # # Set to empty value to disable authorization request. ControlPassword=tegbzn6789 # User name for restricted access. # # Restricted user can control the program with few restrictions. He # has access to web-interface and can see most program settings. He # can not change program settings and can not view security related # options or options provided by extension scripts. # # Use this user to connect to NZBGet from other programs and web-sites. # # In terms of RPC-API the user: # - cannot use method "saveconfig"; # - methods "config" and "saveconfig" return string "***" for # options those content is protected from the user. # # Set to empty value to disable restricted user. # # NOTE: Don't forget to change default username/password of the control # user (options and ). RestrictedUsername= # Password for restricted access. # # Set to empty value to disable password check. RestrictedPassword= # User name to add downloads via RPC-API. # # Use the AddUsername/AddPassword to give other programs or web-services # access to NZBGet with only two permissions: # - add new downloads using RPC-method "append"; # - check program version using RPC-method "version". # # In a case the program/web-service needs more rights use the restricted # user instead (options and ). # # Set to empty value to disable add-user. # # NOTE: Don't forget to change default username/password of the control # user (options and ). AddUsername= # Password for user with add downloads access. # # Set to empty value to disable password check. AddPassword= # Secure control of NZBGet server (yes, no). # # Activate the option if you want to access NZBGet built-in web-server # via HTTPS (web-interface and RPC). You should also provide certificate # and key files, see option and option . SecureControl=no # Port which NZBGet server and remote client use for encrypted # communication (1-65535). SecurePort=6791 # Full path to certificate file for encrypted communication. SecureCert= # Full path to key file for encrypted communication. SecureKey= # IP-addresses allowed to connect without authorization. # # Comma separated list of privileged IPs for easy access to NZBGet # built-in web-server (web-interface and RPC). The connected clients # have full unrestricted access. # # Example: 127.0.0.1,192.168.178.2. # # NOTE: Do not use this option if the program works behind another # web-server because all requests will have the address of this server. AuthorizedIP= # User name for daemon-mode, POSIX only. # # Set the user that the daemon normally runs at (POSIX in daemon-mode only). # Set MainDir with an absolute path to be sure where it will write. # This allows NZBGet daemon to be launched in rc.local (at boot), and # download items as a specific user id. # # NOTE: This option has effect only if the program was started from # root-account, otherwise it is ignored and the daemon runs under # current user id. DaemonUsername=root # Specify default umask (affects file permissions) for newly created # files, POSIX only (000-1000). # # The value should be written in octal form (the same as for "umask" shell # command). # Empty value or value "1000" disable the setting of umask-mode; current # umask-mode (set via shell) is used in this case. UMask=1000 ############################################################################## ### CATEGORIES ### # This section defines categories available in web-interface. # Category name. # # Each nzb-file can be assigned to a category. # Category name is passed to post-processing script and can be used by it # to perform category specific processing. Category1.Name=Movies # Destination directory for this category. # # If this option is empty, then the default destination directory # (option ) is used. In this case if the option # is active, the program creates a subdirectory with category name within # destination directory. Category1.DestDir= # Unpack downloaded nzb-files (yes, no). # # For more information see global option . Category1.Unpack=yes # Default list of post-processing scripts. # # For more information see global option . Category1.PostScript= # List of aliases. # # When a nzb-file is added from URL, RSS or RPC the category name # is usually supplied by nzb-site or by application accessing # NZBGet. Using Aliases you can match their categories with your owns. # # Separate aliases with commas or semicolons. Use wildcard-characters # * and ? for pattern matching. # # Example: TV - HD, TV - SD, TV* Category1.Aliases= Category2.Name=Series Category3.Name=Music Category4.Name=Software ############################################################################## ### RSS FEEDS ### # Name of RSS Feed. # # The name is used in UI and for logging. It can be any string. #Feed1.Name=my feed # Address (URL) of RSS Feed. # # Example: https://myindexer.com/api?apikey=3544646bfd1c535a9654645609800901&t=search&q=game. # # NOTE: When the feed is fetched for the very first time all existing # items are ignored. The items found on subsequentional fetches are processed. #Feed1.URL= # Filter rules for items. # # Use filter to ignore unwanted items in the feed. In its simplest version # the filter is a space separated list of words which must be present in # the item title. # # Example: linux debian dvd. # # MORE INFO: # NOTE: This is a short documentation, for more information visit # http://nzbget.net/RSS. # # Feed filter consists of rules - one rule per line. Each rule defines # a search string and a command, which must be performed if the search # string matches. There are five kinds of rule-commands: Accept, # Reject, Require, Options, Comment. # # NOTE: Since options in the configuration file can not span multiple # lines, the lines (rules) must be separated with %-character (percent). # # Definition of a rule: # [A:|A(options):|R:|Q:|O(options):|#] search-string # # A - declares Accept-rule. Rules are accept-rules by default, the # "A:" can be imitted. If the feed item matches to the rule the # item is considered good and no further rules are checked. # R - declares Reject-rule. If the feed item matches to the rule the # item is considered bad and no further rules are checked. # Q - declares Require-rule. If the feed item DOES NOT match to the rule # the item is considered bad and no further rules are checked. # O - declares Options-rule. If the feed item matches to the rule the # options declared in the rule are set for the item. The item is # neither accepted nor rejected via this rule but can be accepted # later by one of Accept-rules. In this case the item will have its # options already set (unless the Accept-rule overrides them). # # - lines starting with # are considered comments and are ignored. You # can use comments to explain complex rules or to temporary disable # rules for debugging. # # Options allow to set properties on nzb-file. It's a comma-separated # list of property names with their values. # # Definition of an option: # name:value # # Options can be defined using long option names or short names: # category (cat, c) - set category name, value is a string; # pause (p) - add nzb in paused or unpaused state, possible # values are: yes (y), no (n); # priority (pr, r) - set priority, value is a signed integer number; # priority+ (pr+, r+) - increase priority, value is a signed integer number; # dupescore (ds, s) - set duplicate score, value is a signed integer number; # dupescore+ (ds+, s+) - increase duplicate score, value is a signed integer number; # dupekey (dk, k) - set duplicate key, value is a string; # dupekey+ (dk+, k+) - add to duplicate key, value is a string; # dupemode (dm, m) - set duplicate check mode, possible values # are: score (s), all (a), force (f); # rageid - generate duplicate key using this rageid # (integer number) and season/episode numbers; # series - generate duplicate key using series identifier # (any unique string) and season/episode numbers. # # Examples of option definitions: # Accept(category:my series, pause:yes, priority:100): my show 1080p; # Options(c:my series, p:y, r:100): 1080p; # Options(s:1000): 1080p; # Options(k+:1080p): 1080p; # Options(dupemode:force): BluRay. # # Rule-options override values set in feed-options. # # The search-string is similar to used in search engines. It consists of # search terms separated with spaces. Every term is checked for a feed # item and if they all succeed the rule is considered matching. # # Definition of a term: # [+|-][field:][command]param # # + - declares a positive term. Terms are positive by default, # the "+" can be omitted; # - - declares a negative term. If the term succeed the feed # item is ignored; # field - field to which apply the term. If not specified # the default field "title" is used; # command - a special character defining how to interpret the # parameter (followed after the command): # @ - search for string "param". This is default command, # the "@" can be omitted; # $ - "param" defines a regular expression (using POSIX Extended # Regular Expressions syntax); # = - equal; # < - less than; # <= - equal or less than; # > - greater than; # >= - equal or greater than; # param - parameter for command. # # Commands @ and $ are for use with text fields (title, filename, category, # link, description, dupekey). Commands =, <, <=, > and >= are for use # with numeric fields (size, age, imdbid, rageid, season, episode, priority, # dupescore). # # Only fields title, filename and age are always present. The availability of # other fields depend on rss feed provider. # # Any newznab attribute (encoded as "newznab:attr" in the RSS feed) can # be used as search field with prefix "attr-", for example "attr-genre". # # Text search (Command @) supports supports wildcard characters * (matches # any number of any characters), ? (matches any one character) # and # (matches one digit). # Text search is by default performed against words (word-search mode): the # field content is separated into words and then each word is checked # against pattern. If the search pattern starts and ends with * (star) # the search is performed against the whole field content # (substring-search mode). If the search pattern contains word separator # characters (except * and ?) the search is performed on the whole # field (the word-search would be obviously never successful in this # case). Word separators are: !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~. # # Field "size" can have suffixes "K" or "KB" for kilobytes, "M" or "MB" # for megabytes and "G" or "GB" for gigabytes. Field "age" can have # suffixes "m" for minutes, "h" for hours and "d" for days. If suffix # is not specified default is days. # # Examples (the trailing ; or . is not part of filter): # 1) A: s01* -category:anime; # 2) my show WEB-DL; # 3) *my?show* WEB-DL size:<1.8GB age:>2h; # 4) R: size:>9GB; # 5) Q: HDTV. # # NOTE: This is a short documentation, for more information visit # http://nzbget.net/RSS. #Feed1.Filter= # How often to check for new items (minutes). # # Value "0" disables the automatic check of this feed. #Feed1.Interval=15 # Add nzb-files as paused (yes, no). #Feed1.PauseNzb=no # Category for added nzb-files. # # NOTE: Feed providers may include category name within response when nzb-file # is downloaded. If you want to use the providers category leave the option empty. #Feed1.Category= # Priority for added nzb-files (number). # # Priority can be any integer value. The web-interface however operates # with only six predefined priorities: -100 (very low priority), -50 # (low priority), 0 (normal priority, default), 50 (high priority), # 100 (very high priority) and 900 (force priority). Downloads with # priorities equal to or greater than 900 are downloaded and # post-processed even if the program is in paused state (force mode). #Feed1.Priority=0 ############################################################################## ### INCOMING NZBS ### # Create subdirectory with category-name in destination-directory (yes, no). AppendCategoryDir=yes # How often incoming-directory (option ) must be checked for new # nzb-files (seconds). # # Value "0" disables the check. # # NOTE: nzb-files are processed by scan and queue scripts. See # options and . NzbDirInterval=5 # How old nzb-file should at least be for it to be loaded to queue (seconds). # # NZBGet checks if nzb-file was not modified in last few seconds, defined by # this option. That safety interval prevents the loading of files, which # were not yet completely saved to disk, for example if they are still being # downloaded in web-browser. NzbDirFileAge=60 # Check for duplicate titles (yes, no). # # If this option is enabled the program checks by adding of a new nzb-file: # 1) if history contains the same title (see below) with success status # the nzb-file is not added to queue; # 2) if download queue already contains the same title the nzb-file is # added to queue for backup (if firt file fails); # 3) if nzb-file contains duplicate entries. This helps to find errors # in bad nzb-files. # # "Same title" means the nzb file name is same or the duplicate key is # same. Duplicate keys are set by fetching from RSS feeds using title # identifier fields provided by RSS provider (imdbid or rageid/season/episode). # # If duplicates were detected only one of them is downloaded. If download # fails another duplicate is tried. If download succeeds all remaining # duplicates are deleted from queue. # # NOTE: For automatic duplicate handling option must be # set to "Delete" or "None". If it is set to "Pause" you will need to # manually unpause another duplicate (if any exists in queue). # # NOTE: For more info on duplicates see http://nzbget.net/RSS. DupeCheck=yes ############################################################################## ### DOWNLOAD QUEUE ### # Save download queue to disk (yes, no). # # This allows to reload it on next start. SaveQueue=yes # Reload download queue on start, if it exists (yes, no). ReloadQueue=yes # Continue download of partially downloaded files (yes, no). # # If active the current state (the info about what articles were already # downloaded) is saved every second and is reloaded after restart. This is # about files included in download jobs (usually rar-files), not about # download-jobs (nzb-files) itself. Download-jobs are always # continued regardless of that option. # # Disabling this option may slighlty reduce disk access and is # therefore recommended on fast connections. ContinuePartial=yes # Propagation delay to your news servers (minutes). # # The option sets minimum post age for nzb-files. Very recent files # are not downloaded to avoid download failures. The files remain # on hold in the download queue until the propagation delay expires, # after that they are downloaded. PropagationDelay=0 # Decode articles (yes, no). # # yes - decode articles using internal decoder (supports yEnc and UU formats); # no - articles will not be decoded/joined. Useful to look at article's source text. # # NOTE: This option is primary for debugging purposes. You should not # disable it. Decode=yes # Memory limit for article cache (megabytes). # # Article cache helps to improve performance. First the amount of disk # operations can be significantly reduced. Second the created files are # less fragmented, which again speeds up the post-processing (unpacking). # # The article cache works best with option which can # effectively use even small cache (like 50 MB). # # If option is disabled the cache should be big enough to # hold all articles of one file (typically up to 200 MB, sometimes even # 500 MB). Otherwise the articles are written into temporary directory # when the cache is full, which degrades performance. # # Value "0" disables article cache. # # In 32 bit mode the maximum allowed value is 1900. # # NOTE: Also see option . ArticleCache=0 # Write decoded articles directly into destination output file (yes, no). # # Files are posted to Usenet in multiple pieces (articles). Each file # typically consists of hundreds of articles. # # When option is disabled and the article cache (option # ) is not active or is full the program saves downloaded # articles into temporary directory and later reads them all to write # again into the destination file. # # When option is enabled the program at first creates the # output destination file with required size (total size of all articles), # then writes the articles directly to this file without creating of any # temporary files. If article cache (option ) is active # the downloaded articles are saved into cache first and are written # into the destination file when the cache flushes. This happen when # all articles of the file are downloaded or when the cache becomes # full to 90%. # # The direct write relies on the ability of file system to create # empty files without allocating the space on the drive (sparse files), # which most modern file systems support including EXT3, EXT4 # and NTFS. The notable exception is HFS+ (default file system on OSX). # # The direct write usually improves performance by reducing the amount # of disk operations but may produce more fragmented files when used # without article cache. DirectWrite=yes # Memory limit for per article write buffer (kilobytes). # # When downloaded articles are written into disk the OS collects # data in the internal buffer before flushing it into disk. This option # controls the size of this buffer per connection/download thread. # # Larger buffers decrease the amount of disk operations and help # producing less fragmented files speeding up the post-processing # (unpack). # # To calculate the maximum memory required for all download threads multiply # WriteBuffer by number of connections configured in section # "NEWS-SERVERS". The option sets the limit, the actual buffer can be # smaller if the article size (typically about 500 KB) is below the limit. # # Write-buffer is managed by OS (system libraries) and therefore # the effect of the option is highly OS-dependent. # # Recommended value for computers with enough memory: 1024. # # Value "0" disables the setting of buffer size. In this case a buffer # of default size (OS and compiler specific) is used, which is usually # too small (1-4 KB) and therefore not optimal. # # NOTE: Also see option . WriteBuffer=0 # Check CRC of downloaded and decoded articles (yes, no). # # Normally this option should be enabled for better detecting of download # errors. However checking of CRC needs CPU time. On a fast connection and # slow CPU disabling of CRC-Check may improve performance. CrcCheck=yes # How many retries should be attempted if a download error occurs (0-99). # # If download fails because of incomplete or damaged article or due to # CRC-error the program tries to redownload the article from the same # news server as many times as defined in option . If all # attempts fail the program tries another news server. # # If download fails because of "article or group not found error" the # program tries another news server without retrying on the failed server. # # If download fails because of interrupted connection the program # tries another news server or the same server after the block interval # expires. Retries=3 # Wait interval between retries (seconds). # # If download of an article fails because of interrupted connection # the server is temporary blocked until the retry interval expires. RetryInterval=10 # Connection timeout for article downloading (seconds). ArticleTimeout=60 # Connection timeout for URL fetching (seconds). # # This includes fetching of nzb-files via URLs and fetching of RSS feeds. UrlTimeout=60 # Timeout until a download-thread should be killed (seconds). # # This can help on hanging downloads, but is dangerous. # Do not use small values! TerminateTimeout=600 # Set the maximum download rate on program start (kilobytes/sec). # # The download rate can be changed later via remote calls. # # Value "0" means no speed control. DownloadRate=0 # Accurate speed rate calculation (yes, no). # # During downloading using several connections the download threads may # interfere with each other when updating statistical data for speed # meter. This may cause small errors in current download speed reported # by the program. The speed meter recovers automatically from such errors # after max. 30 seconds (time window used for speed calculation). # # Enable the option to use thread synchronisation mechanisms in order to # provide absolutely accurate speed calculations. # # NOTE: Thread synchronisation increases CPU load and therefore can # decrease download speed. Do not activate this option on computers with # limited CPU power. Before activating the option it is recommended to # run tests to determine how the option affects the CPU usage and the # download speed on a particular system. AccurateRate=no # Pause if disk space gets below this value (megabytes). # # Disk space is checked for directories pointed by option and # option . # # Value "0" disables the check. DiskSpace=250 # Delete already downloaded files from disk when nzb-file is deleted # (yes, no). # # This option defines if downloaded files must be deleted when: # 1) download of nzb-file is cancelled (deleted from queue); # 2) history record with failure-status (par-failure or unpack-failure) # is deleted from history. DeleteCleanupDisk=yes # Delete source nzb-file when it is not needed anymore (yes, no). # # Enable this option for automatic deletion of source nzb-file from # incoming directory when the program doesn't require it anymore (the # nzb-file has been deleted from queue and history). NzbCleanupDisk=yes # Keep the history of downloaded nzb-files (days). # # After download and post-processing the items are added to history where # their status can be checked and they can be post-processed again if # neccessary. # # After expiring of defined period: # # If option is active the items become hidden and the amount # of data kept is significantly reduced (for better performance), only # fields necessary for duplicate check are kept. The item remain in the # hidden history (forever); # # If option is NOT active the items are removed from history. # # Value "0" disables history. Duplicate check will not work. KeepHistory=30 # Keep the history of outdated feed items (days). # # After fetching of an RSS feed the information about included items (nzb-files) # is saved to disk. This allows to detect new items on next fetch. Feed # providers update RSS feeds constantly. Since the feed length is limited # (usually 100 items or less) the old items get pushed away by new # ones. When an item is not present in the feed anymore it's not necessary # to keep the information about this item on the disk. # # If option is set to "0", the outdated items are deleted from history # immediately. # # Otherwise the items are held in the history for defined number of # days. Keeping of items for few days helps in situations when feed provider # has technical issues and may response with empty feeds (or with missing # items). When the technical issue is fixed the items may reappear in the # feed causing the program to redownload items if they were not found in # the feed history. FeedHistory=7 # Maximum number of simultaneous connections for nzb URL downloads (0-999). # # When NZB-files are added to queue via URL, the program downloads them # from the specified URL. The option limits the maximal number of connections # used for this purpose, when multiple URLs were added at the same time. UrlConnections=4 # Force URL-downloads even if download queue is paused (yes, no). # # If option is active the URL-downloads (such as appending of nzb-files # via URL or fetching of RSS feeds and nzb-files from feeds) are performed # even if download is in paused state. UrlForce=yes ############################################################################## ### LOGGING ### # How to use log file (none, append, reset, rotate). # # none - do not write into log file; # append - append to the existing log file or create it; # reset - delete existing log file on program start and create a new one; # rotate - create new log file for each day, delete old files, # see option . WriteLog=append # Log file rotation period (days). # # Defines how long to keep old log-files, when log rotation is active # (option is set to "rotate"). RotateLog=3 # How error messages must be printed (screen, log, both, none). ErrorTarget=both # How warning messages must be printed (screen, log, both, none). WarningTarget=both # How info messages must be printed (screen, log, both, none). InfoTarget=both # How detail messages must be printed (screen, log, both, none). DetailTarget=log # How debug messages must be printed (screen, log, both, none). # # Debug-messages can be printed only if the program was compiled in # debug-mode: "./configure --enable-debug". DebugTarget=log # Number of messages stored in buffer and available for remote # clients (messages). LogBufferSize=1000 # Create log for each downloaded nzb-file (yes, no). # # The messages are saved for each download separately and can be viewed # at any time in download details dialog or history details dialog. NzbLog=yes # Create a log of all broken files (yes, no). # # It is a text file placed near downloaded files, which contains # the names of broken files. BrokenLog=yes # Create memory dump (core-file) on abnormal termination, Linux only (yes, no). # # Core-files are very helpful for debugging. # # NOTE: Core-files may contain sensible data, like your login/password to # newsserver etc. DumpCore=no # Local time correction (hours or minutes). # # The option allows to adjust timestamps when converting system time to # local time and vice versa. The conversion is used when printing messages # to the log-file and by option "TaskX.Time" in the scheduler settings. # # The option is usually not needed if the time zone is set up correctly. # However, sometimes, especially when using a binary compiled on onother # platform (cross-compiling) the conversion between system and local time # may not work properly and requires adjustment. # # Values in the range -24..+24 are interpreted as hours, other values as minutes. # Example 1: set time correction to one hour: TimeCorrection=1; # Example 2: set time correction to one hour and a half: TimeCorrection=90. TimeCorrection=0 # See also option in section "PATHS" ############################################################################## ### DISPLAY (TERMINAL) ### # Set screen-outputmode (loggable, colored, curses). # # loggable - only messages will be printed to standard output; # colored - prints messages (with simple coloring for messages categories) # and download progress info; uses escape-sequences to move cursor; # curses - advanced interactive interface with the ability to edit # download queue and various output option. OutputMode=curses # Shows NZB-Filename in file list in curses-outputmode (yes, no). # # This option controls the initial state of curses-frontend, # it can be switched on/off in run-time with Z-key. CursesNzbName=yes # Show files in groups (NZB-files) in queue list in curses-outputmode (yes, no). # # This option controls the initial state of curses-frontend, # it can be switched on/off in run-time with G-key. CursesGroup=no # Show timestamps in message list in curses-outputmode (yes, no). # # This option controls the initial state of curses-frontend, # it can be switched on/off in run-time with T-key. CursesTime=no # Update interval for Frontend-output in console mode or remote client # mode (milliseconds). # # Min value 25. Bigger values reduce CPU usage (especially in curses-outputmode) # and network traffic in remote-client mode. UpdateInterval=200 ############################################################################## ### SCHEDULER ### # Time to execute the command (HH:MM). # # Multiple comma-separated values are accepted. # Asterix as hours-part means "every hour". # # Examples: "08:00", "00:00,06:00,12:00,18:00", "*:00", "*:00,*:30". # # NOTE: Also see option . #Task1.Time=08:00 # Week days to execute the command (1-7). # # Comma separated list of week days numbers. # 1 is Monday. # Character '-' may be used to define ranges. # # Examples: "1-7", "1-5", "5,6", "1-5, 7". #Task1.WeekDays=1-7 # Command to be executed (PauseDownload, UnpauseDownload, PausePostProcess, # UnpausePostProcess, PauseScan, UnpauseScan, DownloadRate, Script, Process, # ActivateServer, DeactivateServer, FetchFeed). # # Possible commands: # PauseDownload - pause download; # UnpauseDownload - resume download; # PausePostProcess - pause post-processing; # UnpausePostProcess - resume post-processing; # PauseScan - pause scan of incoming nzb-directory; # UnpauseScan - resume scan of incoming nzb-directory; # DownloadRate - set download rate limit; # Script - execute one or multiple scheduler scripts. The scripts # must be written specially for NZBGet; # Process - execute an external (any) program; # ActivateServer - activate news-server; # DeactivateServer - deactivate news-server; # FetchFeed - fetch RSS feed. # # On start the program checks all tasks and determines current state # for download-pause, scan-pause, download-rate and active servers. #Task1.Command=PauseDownload # Parameters for the command if needed. # # Some scheduler commands require additional parameters: # DownloadRate - download rate limit to be set (kilobytes/sec). # Example: 1000; # Script - list of scheduler scripts to execute. The scripts in # the list must be separated with commas or semicolons. Only # filenames without path must be used. All scripts must be # stored in directory pointed by option . For # more info see below; # Process - path to the program to execute and its parameters. # Example: /home/user/fetch.sh. # If filename or any parameter contains spaces it # must be surrounded with single quotation # marks. If filename/parameter contains single quotation marks, # each of them must be replaced with two single quotation # marks and the resulting filename/parameter must be # surrounded with single quotation marks. # Example: '/home/user/download/my scripts/task process.sh' 'world''s fun'. # In this example one parameter (world's fun) is passed # to the script (task process.sh). # ActivateServer - comma separated list of news server ids or server names. # Example: 1,3. # Example: my news server 1, my news server 2. # NOTE: server names should not have commas. # DeactivateServer - see ActivateServer. # FetchFeed - comma separated list of RSS feed ids or feed names. # Example: 1,3. # Example: bookmarks feed, another feed. # NOTE: feed names should not have commas. # NOTE: use feed id "0" to fetch all feeds. # # INFO FOR DEVELOPERS: # The rest of the description is for command "Script". # # NOTE: This is a short documentation, for more information visit # http://nzbget.net/Extension_scripts. # # NZBGet passes following arguments to scheduler script as environment # variables: # NZBSP_TASKID - id number of scheduler Task. # # In addition to these arguments NZBGet passes all nzbget.conf-options # as environment variables. These variables have prefix "NZBOP_" and # are written in UPPER CASE. For Example option "ParRepair" is passed as # environment variable "NZBOP_PARREPAIR". The dots in option names are # replaced with underscores, for example "SERVER1_HOST". For options # with predefined possible values (yes/no, etc.) the values are passed # always in lower case. # # NOTE: This is a short documentation, for more information visit # http://nzbget.net/Extension_scripts. #Task1.Param= #Task2.Time=20:00 #Task2.WeekDays=1-7 #Task2.Command=UnpauseDownload #Task2.Param= ############################################################################## ### PAR CHECK/REPAIR ### # Whether and how par-verification must be performed (auto, always, force, manual). # # Auto - par-check is performed when needed. One par2-file is always # downloaded. Additional par2-files are downloaded if needed # for repair. Repair is performed if the option # is enabled; # Always - check every download (even undamaged). One par2-file is # always downloaded. Additional par2-files are downloaded # if needed for repair. Repair is performed if the option # is enabled; # Force - force par-check for every download (even undamaged). All # par2-files are always downloaded. Repair is performed if # the option is enabled; # Manual - par-check is skipped. One par2-file is always # downloaded. If a damaged download is detected, all # par2-files are downloaded but neithet par-check nor par-repair # take place. The download can be then repaired manually, # eventually on another faster computer. ParCheck=auto # Check for renamed and missing files (yes, no). # # Par-rename restores original file names using information stored # in par2-files. It also detects missing files (files listed in # par2-files but not present on disk). When enabled the par-rename is # performed as the first step of post-processing for every nzb-file. # # Par-rename is very fast and is highly recommended, especially if # unpack is disabled. ParRename=yes # Automatic par-repair after par-verification (yes, no). # # If option is set to "Auto" or "Force" this option defines # if the download must be repaired when needed. The option can be # disabled if computer does not have enough CPU power, since repairing # may take too much resources and time on a slow computers. ParRepair=yes # What files should be scanned during par-verification (auto, limited, # full). # # Limited - scan only files belonging to the par-set; # Full - scan all files in the directory. This helps if the # files were renamed after creating of par-set; # Auto - a limited scan is performed first. If the par-checker # detects missing files, it scans other files in the # directory until all required files are found. ParScan=auto # Quick file verification during par-check (yes, no). # # If the option is active the files are quickly verified using # checksums calculated during download; quick verification is very fast # because it doesn't require the reading of files from disk, NZBGet # knows checksums of downloaded files and quickly compares them with # checksums stored in the par-file. # # If the option is disabled the files are verified as usual. That's # slow. Use this if the quick verification doesn't work properly. ParQuick=yes # Memory limit for par-repair buffer (megabytes). # # Set the amount of RAM that the par-checker may use during repair. Having # the buffer as big as the total size of all damaged blocks allows for # the optimal repair speed. The option sets the maximum buffer size, the # allocated buffer can be smaller. # # If you have a lot of RAM set the option to few hundreds (MB) for the # best repair performance. ParBuffer=16 # Number of threads to use during par-repair (0-99). # # On multi-core CPUs for the best speed set the option to the number of # logical cores (physical cores + hyper-threading units). If you want # to utilize the CPU to 100% you may need to add one or two additional threads # to compensate for wait intervals used for thread synchronization. # # On single-core CPUs use only one thread. # # Set to '0' to automatically use all available CPU cores (may not # work on old or exotic platforms). ParThreads=0 # Files to ignore during par-check. # # List of file extensions, file names or file masks to ignore by # par-rename and par-check. The entries must be separated with # commas. # # The entries must be separated with commas. The entries can be file # extensions, file names or file masks containing wildcard # characters * and ?. # # If par-rename or par-check detect missing or damaged files they # will ignore files matching this option and will not initiate # repair. This avoids time costing repair for unimportant files. # # NOTE: Files matching the option are ignored as well. # # Example: .sfv, .nzb, .nfo ParIgnoreExt=.sfv, .nzb, .nfo # What to do if download health drops below critical health (delete, # pause, none). # # Delete - delete nzb-file from queue. If option # is active the already downloaded files will be deleted too; # Pause - pause nzb-file; # None - do nothing (continue download). # # NOTE: For automatic duplicate handling option must be set to "Delete" # or "None". If it is set to "Pause" you will need to manually return # another duplicate to queue (if any exists in history). See also # option . HealthCheck=delete # Maximum allowed time for par-repair (minutes). # # If you use NZBGet on a very slow computer like NAS-device, it may be good to # limit the time allowed for par-repair. NZBGet calculates the estimated time # required for par-repair. If the estimated value exceeds the limit defined # here, NZBGet cancels the repair. # # To avoid a false cancellation NZBGet compares the estimated time with # after the first 5 minutes of repairing, when the calculated # estimated time is more or less accurate. But in a case if is # set to a value smaller than 5 minutes, the comparison is made after the first # whole minute. # # Value "0" means unlimited. # # NOTE: The option limits only the time required for repairing. It doesn't # affect the first stage of parcheck - verification of files. However the # verification speed is constant, it doesn't depend on files integrity and # therefore it is not necessary to limit the time needed for the first stage. ParTimeLimit=0 # Pause download queue during check/repair (yes, no). # # Enable the option to give CPU more time for par-check/repair. That helps # to speed up check/repair on slow CPUs with fast connection (e.g. NAS-devices). # # NOTE: If parchecker needs additional par-files it temporarily unpauses # the queue. # # NOTE: See also options and . ParPauseQueue=no # Cleanup download queue after successful check/repair (yes, no). # # Enable this option for automatic deletion of unneeded (paused) par-files # from download queue after successful check/repair. ParCleanupQueue=yes ############################################################################## ### UNPACK ### # Unpack downloaded nzb-files (yes, no). # # Each download (nzb-file) has a post-processing parameter "Unpack". The option # is the default value assigned to this pp-parameter of the download # when it is added to queue. # # When nzb-file is added to queue it can have a category assigned to it. In this # case the option overrides the global option . # # If the download is damaged and could not be repaired using par-files # the unpacking is not performed. # # If the option is set to "Auto" the program tries to unpack # downloaded files first. If the unpacking fails the par-check/repair # is performed and the unpack is executed again. Unpack=yes # Pause download queue during unpack (yes, no). # # Enable the option to give CPU more time for unpacking. That helps # to speed up unpacking on slow CPUs. # # NOTE: See also options and . UnpackPauseQueue=no # Delete archive files after successful unpacking (yes, no). UnpackCleanupDisk=yes # Full path to unrar executable. # # Example: /usr/bin/unrar. # # The option can also contain extra switches to pass to unrar. To the # here defined command line NZBGet adds the following switches: # x -y -p- -o+ *.rar ./_unpack/ # # Switch "x" is added only if neither "x" nor "e" were defined in # the option (this allows you to use switch "e" instead of "x"). switch # "-o+" is added only if neither "-o+" nor "-o-" were defined # in the command line. All other paramaters are always added. Parameter # "-p-" is replaced with "-ppassword" if a password is set for nzb-file. # # Examples: # 1) ignore file attributes (pemissions): # /usr/bin/unrar x -ai; # 2) decrease priority of unrar-process: # nice -n 19 unrar. # # For other useful switches refer to unrar documentation. # # If unrar is in your PATH you may leave the path part and set only # the executable name ("unrar" on POSIX or "unrar.exe" on Windows). UnrarCmd=unrar # Full path to 7-Zip executable. # # Example: /usr/bin/7z. # # Similar to option this option can also include extra switches. # # If 7-Zip binary is in your PATH you may leave the path part and set only # the executable name ("7z" or "7za" on POSIX or "7z.exe" on Windows). SevenZipCmd=7z # Files to delete after successful download. # # List of file extensions, file names or file masks to delete after # successful download. If either unpack or par-check fail the cleanup is # not performed. If neither unpack nor par-check were made (because they # were disabled or the download doesn't contain archives and/or par-files # the cleanup is performed if the health is 100%. # # The entries must be separated with commas. The entries can be file # extensions, file names or file masks containing wildcard # characters * and ?. # # Files listed here are also ignored by par-rename and par-check. # # NOTE: See also option . # # Example: .par2, .sfv ExtCleanupDisk=.par2, .sfv, _brokenlog.txt # Path to file containing unpack passwords. # # If the option is set the program will try all passwords from the file # when unpacking the archives. The file must be a text file containing # one password per line. # # If an nzb-file has a defined password (in the post-processing settings) # then the password-file is not used for that nzb-file. # # NOTE: Trying multiple passwords is a time consuming task. Whenever possible # passwords should be set per nzb-file in their post-processing settings. UnpackPassFile= ############################################################################## ### EXTENSION SCRIPTS ### # Default list of post-processing scripts to execute after the download # of nzb-file is completed and possibly par-checked/repaired and unpacked. # # The scripts in the list must be separated with commas or semicolons. Only # filenames without path must be used. All scripts must be stored in directory # pointed by option . # # Example: Cleanup.sh, Move.sh, EMail.py. # # Each download (nzb-file) has its own list of post-processing scripts. The option # is the default value assigned to download when it is added to # queue. The list of post-processing scripts for a particular download can be # changed in the edit dialog in web-interface or using remote command "--edit/-E". # # When nzb-file is added to queue it can have a category assigned to it. In this # case the option (if not empty) overrides the # global option . # # NOTE: The script execution order is controlled by option , not # by their order in option . # # NOTE: Changing options and doesn't affect # already queued downloads. # # NOTE: For the list of interesting post-processing scripts see # http://nzbget.net/Catalog_of_post-processing_scripts. # # INFO FOR DEVELOPERS: # NOTE: This is a short documentation, for more information visit # http://nzbget.net/Extension_scripts. # # NZBGet passes following arguments to post-processing script as environment # variables: # NZBPP_DIRECTORY - path to destination dir for downloaded files; # NZBPP_NZBNAME - user-friendly name of processed nzb-file as it is displayed # by the program. The file path and extension are removed. # If download was renamed, this parameter reflects the new name; # NZBPP_NZBFILENAME - name of processed nzb-file. It includes file extension and also # may include full path; # NZBPP_FINALDIR - final destination path if set by one of previous pp-scripts; # NZBPP_CATEGORY - category assigned to nzb-file (can be empty string); # NZBPP_TOTALSTATUS - total status of nzb-file: # SUCCESS - everything OK; # WARNING - download is damaged but probably can # be repaired; user intervention is # required; # FAILURE - download has failed or a serious error # occurred during post-processing (unpack, par); # DELETED - download was deleted; post-processing # scripts are usually not called in this case; # however it's possible to force calling # scripts with command "post-process again"; # NZBPP_STATUS - complete status info for nzb-file: it consists # of total status and status detail separated with # slash, for example: "FAILURE/UNPACK"; for possible # status details see documentation on web site; # NZBPP_SCRIPTSTATUS - summary status of the scripts executed before the # current one: # NONE - no other scripts were executed yet or all # of them have ended with exit code "NONE"; # SUCCESS - all other scripts have ended with exit # code "SUCCESS" ; # FAILURE - at least one of the script has failed; # NZBPP_HEALTH - download health: an integer value in the range # from 0 (all articles failed) to 1000 (all articles # successfully downloaded); # NZBPP_CRITICALHEALTH - critical health for this nzb-file: an integer # value in the range 0-1000. The critical health # is calculated based on number and size of # par-files. If nzb-file doesn't have any par-files # the critical health is 1000 (100.0%). If a half # of nzb-file were par-files its critical health # would be 0. If NZBPP_HEALTH goes down below # NZBPP_CRITICALHEALTH the download becomes unrepairable; # NZBPP_TOTALARTICLES - number of articles in nzb-file; # NZBPP_SUCCESSARTICLES - number of successfully downloaded articles; # NZBPP_FAILEDARTICLES - number of failed articles; # NZBPP_SERVERX_SUCCESSARTICLES - number of successfully downloaded # articles from ServerX (X is replaced with server # number, for example NZBPP_SERVER1_SUCCESSARTICLES); # NZBPP_SERVERX_FAILEDARTICLES - number of failed articles from ServerX. # # If the script defines own options they are also passed as environment # variables. These variables have prefix "NZBPO_" in their names. For # example, option "myoption" will be passed as environment variable # "NZBPO_myoption" and in addition in uppercase as "NZBPO_MYOPTION". # # If the script defines own post-processing parameters, they are also passed as # environment variables. These variables have prefix "NZBPR_" in their # names. For example, pp-parameter "myparam" will be passed as environment # variable "NZBPR_myparam" and in addition in uppercase as "NZBPR_MYPARAM". # # In addition to arguments, pp-options and pp-parameters NZBGet passes all # nzbget.conf-options to pp-script as environment variables. These # variables have prefix "NZBOP_" and are written in UPPER CASE. For Example # option "ParRepair" is passed as environment variable "NZBOP_PARREPAIR". The # dots in option names are replaced with underscores, for example # "SERVER1_HOST". For options with predefined possible values (yes/no, etc.) # the values are passed always in lower case. # # If the script moves files it can inform the program about new location # by printing special message into standard output (which is processed # by NZBGet): # echo "[NZB] DIRECTORY=/path/to/moved/files"; # or: # echo "[NZB] FINALDIR=/path/to/moved/files"; # # Command "DIRECTORY" changes the destiantion path of the download and # affects the scripts executed after the current script as well as the # program code itself, for example the command "Post-process again" # will work on new location. Command "FINALDIR" just sets a separate # property of the download and should be used when the files are moved # into an existing directory containg other files to avoid the processing # of those files by other scripts. # # To assign post-processing parameters: # echo "[NZB] NZBPR_myvar=my value"; # # The prefix "NZBPR_" will be removed. In this example a post-processing # parameter with name "myvar" and value "my value" will be associated # with nzb-file. # # To inform NZBGet about bad download: # echo "[NZB] MARK=BAD"; # # Return value: NZBGet processes the exit code returned by the script: # 93 - post-process successful (status = SUCCESS); # 94 - post-process failed (status = FAILURE); # 95 - post-process skipped (status = NONE). Use this code when you script # terminates immediateley without doing any job and when this is not # a failure termination; # 92 - request NZBGet to do par-check/repair for current nzb-file. # # All other return codes are interpreted as failure (status = FAILURE). # # NOTE: This is a short documentation, for more information visit # http://nzbget.net/Extension_scripts. PostScript= # List of scan scripts to execute before a nzb-file is added to queue. # # The scripts in the list must be separated with commas or semicolons. Only # filenames without path must be used. All scripts must be stored in directory # pointed by option . # # The scripts are executed each time a new file is found in incoming # directory (option ) or a file is received via RPC (web-interface, # command "nzbget --append", etc.). # # Example: UnzipNzb.sh, ScanNotify.py. # # The scripts can unpack archives which were put in incoming directory, make # filename cleanup, change nzb-name, category, priority and post-processing # parameters of the nzb-file or do other things. # # INFO FOR DEVELOPERS: # NOTE: This is a short documentation, for more information visit # http://nzbget.net/Extension_scripts. # # NZBGet passes following arguments to the script as environment # variables: # NZBNP_DIRECTORY - path to directory, where file is located. It is a directory # specified by the option or a subdirectory; # NZBNP_FILENAME - name of file to be processed; # NZBNP_NZBNAME - nzb-name (without path but with extension); # NZBNP_CATEGORY - category of nzb-file; # NZBNP_PRIORITY - priority of nzb-file; # NZBNP_TOP - flag indicating that the file will be added to the top # of queue: 0 or 1; # NZBNP_PAUSED - flag indicating that the file will be added as # paused: 0 or 1; # NZBNP_DUPEKEY - duplicate key of nzb-file; # NZBNP_DUPESCORE - duplicate score of nzb-file; # NZBNP_DUPEMODE - duplicate mode of nzb-file: SCORE, ALL, FORCE. # # In addition to these arguments NZBGet passes all nzbget.conf-options # as environment variables. These variables have prefix "NZBOP_" and # are written in UPPER CASE. For Example option "ParRepair" is passed as # environment variable "NZBOP_PARREPAIR". The dots in option names are # replaced with underscores, for example "SERVER1_HOST". For options # with predefined possible values (yes/no, etc.) the values are passed # always in lower case. # # The script can change nzb-name, category, priority, # post-processing parameters and top-/paused-flags of the nzb-file # by printing special messages into standard output (which is processed # by NZBGet). # # To change nzb-name use following syntax: # echo "[NZB] NZBNAME=my download"; # # To change category: # echo "[NZB] CATEGORY=my category"; # # To change priority: # echo "[NZB] PRIORITY=signed_integer_value"; # # for example: to set priority higher than normal: # echo "[NZB] PRIORITY=50"; # # another example: use a negative value for "lower than normal" priority: # echo "[NZB] PRIORITY=-100"; # # Although priority can be any integer value, the web-interface operates # with six predefined priorities: # -100 - very low priority; # -50 - low priority; # 0 - normal priority (default); # 50 - high priority; # 100 - very high priority; # 900 - force priority. # # Downloads with priorities equal to or greater than 900 are downloaded and # post-processed even if the program is in paused state (force mode). # # To assign post-processing parameters: # echo "[NZB] NZBPR_myvar=my value"; # # The prefix "NZBPR_" will be removed. In this example a post-processing # parameter with name "myvar" and value "my value" will be associated # with nzb-file. # # To change top-flag (nzb-file will be added to the top of queue): # echo "[NZB] TOP=1"; # # To change paused-flag (nzb-file will be added in paused state): # echo "[NZB] PAUSED=1"; # # To change duplicate key: # echo "[NZB] DUPEKEY=tv show s01e02"; # # To change duplicate score: # echo "[NZB] DUPESCORE=integer_value"; # # To change duplicate mode: # echo "[NZB] DUPEMODE=(SCORE|ALL|FORCE)"; # # The script can delete processed file, rename it or move somewhere. # After the calling of the script the file will be either added to queue # (if it was an nzb-file) or renamed by adding the extension ".processed". # # NOTE: Files with extensions ".processed", ".queued" and ".error" are skipped # during the directory scanning. # # NOTE: Files with extension ".nzb_processed" are not passed to # scan-script before adding to queue. This feature allows scan-script # to prevent the scanning of nzb-files extracted from archives, if # they were already processed by the script. # # NOTE: Files added via RPC calls in particular from web-interface are # saved into incoming nzb-directory and then processed by the script. # # NOTE: This is a short documentation, for more information visit # http://nzbget.net/Extension_scripts. ScanScript= # List of queue scripts to execute on queue events. # # The scripts in the list must be separated with commas or semicolons. Only # filenames without path must be used. All scripts must be stored in directory # pointed by option . # # The scripts are executed on certain queue events such as adding # a new nzb-file to queue, etc. # # Example: DeleteQueueSamples.sh, NzbAddedNotify.py. # # The script can modify the files in download queue (for example # delete or pause all nfo, sfv, sample files) or do something else. # # INFO FOR DEVELOPERS: # NOTE: This is a short documentation, for more information visit # http://nzbget.net/Extension_scripts. # # NZBGet passes following arguments to the queue script as environment # variables: # NZBNA_NZBNAME - name of nzb-group. This name can be used in calls # to nzbget edit-command using subswitch "-GN name"; # NZBNA_FILENAME - filename of the nzb-file. If the file was added # from nzb-directory this is the fullname with path. # If the file was added via web-interface it contains # only filename without path; # NZBNA_EVENT - describes why the script was called: # NZB_ADDED - after adding of nzb-file to queue; # FILE_DOWNLOADED - after a file included in nzb is # downloaded; # NZB_DOWNLOADED - after all files in nzb are downloaded # (before post-processing). # In the future the list of supported events may be # extended. To avoid conflicts with future NZBGet # versions the script must exit if the parameter # has a value unknown to the script. # NZBNA_CATEGORY - category of nzb-file (if assigned); # NZBNA_NZBID - id of the nzb-file. This ID can be used with # calls to nzbget edit-command; # NZBNA_PRIORITY - priority (default is 0). # # In addition to these arguments NZBGet passes all nzbget.conf-options # to the script as environment variables. These variables have prefix # "NZBOP_" and are written in UPPER CASE. For Example option "ParRepair" # is passed as environment variable "NZBOP_PARREPAIR". The dots in option # names are replaced with underscores, for example "SERVER1_HOST". For # options with predefined possible values (yes/no, etc.) the values are # passed always in lower case. # # The script can printing special messages into standard output (which # is processed by NZBGet). # # To assign post-processing parameters: # echo "[NZB] NZBPR_myvar=my value"; # # The prefix "NZBPR_" will be removed. In this example a post-processing # parameter with name "myvar" and value "my value" will be associated # with nzb-file. # # To inform NZBGet about bad download: # echo "[NZB] MARK=BAD"; # # Examples of what the script can do: # 1) pausing nzb-file using file-id: # "$NZBOP_APPBIN" -c "$NZBOP_CONFIGFILE" -E G P $NZBNA_NZBID; # 2) setting category using nzb-name: # "$NZBOP_APPBIN" -c "$NZBOP_CONFIGFILE" -E GN K "my cat" "$NZBNA_NZBNAME"; # 3) pausing files with extension "nzb": # "$NZBOP_APPBIN" -c "$NZBOP_CONFIGFILE" -E FR P "$NZBNA_NZBNAME/.*\.nzb"; # # NOTE: This is a short documentation, for more information visit # http://nzbget.net/Extension_scripts. QueueScript= # Execution order for scripts. # # If you assign multiple scripts to one nzb-file, they are executed in the # order defined by this option. Scripts not listed here are executed at # the end in their alphabetical order. # # The scripts in the list must be separated with commas or semicolons. Only # filenames without path must be used. All scripts must be stored in directory # pointed by option . # # Example: Cleanup.sh, Move.sh. ScriptOrder= # Pause download queue during executing of postprocess-script (yes, no). # # Enable the option to give CPU more time for postprocess-script. That helps # to speed up postprocess on slow CPUs with fast connection (e.g. NAS-devices). # # NOTE: See also options and . ScriptPauseQueue=no # Minimum interval between calls of queue-scripts (seconds). # # Queue-scripts are executed during download, after every file included in # nzb-file is downloaded. If the files are small they may be downloaded # very fast causing queue-scripts to be working all the time. Sometimes # this may lead to a performance decrease on systems with slow CPUs. # # This option allows to reduce the number of calls of queue-scripts by # skipping "file-downloaded"-events if the previous call of queue-scripts # for the same download (nzb-file) were performed a short time ago # (as defined by the option). # # Value "-1" disables executing of queue-scripts on # "file-downloaded"-events. Scripts are still executed on events # "nzb-added" and "nzb-downloaded". # # NOTE: This options affects only queue-scripts and only # "file-downloaded"-events. Queue-scripts can be activated using # option (for pure queue-scripts) or option # (for dual-mode scripts which act as queue- and post-processing-scripts # at the same time). EventInterval=0