SABnzbd - The automated Usenet download tool
============================================


[](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)
SABnzbd is an Open Source Binary Newsreader written in Python.
It's totally free, easy to use, and works practically everywhere.
SABnzbd makes Usenet as simple and streamlined as possible by automating everything we can. All you have to do is add an `.nzb` . SABnzbd takes over from there, where it will be automatically downloaded, verified, repaired, extracted and filed away with zero human interaction.
SABnzbd offers an easy setup wizard and has self-analysis tools to verify your setup.
If you want to know more you can head over to our website: https://sabnzbd.org.
## Resolving Dependencies
SABnzbd has a few dependencies you'll need before you can get running. If you've previously run SABnzbd from one of the various Linux packages, then you likely already have all the needed dependencies. If not, here's what you're looking for:
- `python` (Python 3.6 and higher, often called `python3` )
Use puremagic to deobfuscate file extensions (#1914)
* correct_extension: basics, including unittest
* correct_extension: basics, including unittest
* correct_extension: puremagic into requirements.txt
* correct_extension: introduce a main for testing from CLI
* correct_extension: parse all parameters on CLI as files
* correct_extension: parse all parameters on CLI as files
* correct_extension: CLI parameter "-p" for privacy output
* correct_extension: has_common_extension() and most_likely_extension()
* correct_extension: has_common_extension() and most_likely_extension()
* correct_extension: add extension if file has no commonly used extension
* correct_extension: Black happy ... hopefully
* correct_extension: Black happy ... hopefully
* correct_extension: process feedback, mainly the extenions lists ^H^H^H^ tuples
* correct_extension: process feedback, mainly the extenions lists ^H^H^H^ tuples
* correct_extension: process feedback, mainly the extenions lists ^H^H^H^ tuples
* correct_extension: process feedback, mainly the extenions lists ^H^H^H^ tuples
* correct_extension: cleaned up
* correct_extension: cleaned up ... github-black now happy?
* correct_extension: cleaned up ... github-black now happy?
* correct_extension: cleaned up ... github-black now happy?
* correct_extension: cleaned up ... github-black now happy?
* correct_extension: cleaned up ... github-black now happy?
* correct_extension: easier if-then-logic, check if new_extension_to_add is filled.
* correct_extension: if puremagic does recoging txt or nzb, check ourselves
* correct_extension: if puremagic does recoging txt or nzb, check ourselves
* correct_extension: only files!
* correct_extension: only files!
* correct_extension: rNN files not common extension, plus easier testing
* correct_extension: clean-up ... no more boolean extension_too
* correct_extension: requirements.txt, solved a TODO, and use get_ext()
* correct_extension: a comment added
* correct_extension: correct typing, correct txt and nzb extension
* correct_extension: extensions always with dots, bug fix in what_is_most_likely_extension()
* correct_extension: back on track?
* correct_extension: back on track?
* correct_extension: better comments
4 years ago
- Python modules listed in `requirements.txt` . Install with `python3 -m pip install -r requirements.txt -U`
- `par2` (Multi-threaded par2 installation guide can be found [here ](https://sabnzbd.org/wiki/installation/multicore-par2 ))
- `unrar` (make sure you get the "official" non-free version of unrar)
Optional:
- See `requirements.txt`
Your package manager should supply these. If not, we've got links in our [installation guide ](https://github.com/sabnzbd/sabnzbd/blob/master/INSTALL.txt ).
## Running SABnzbd from source
Once you've sorted out all the dependencies, simply run:
```
python3 -OO SABnzbd.py
```
Or, if you want to run in the background:
```
python3 -OO SABnzbd.py -d -f /path/to/sabnzbd.ini
```
If you want multi-language support, run:
```
python3 tools/make_mo.py
```
Our many other command line options are explained in depth [here ](https://sabnzbd.org/wiki/advanced/command-line-parameters ).
## About Our Repo
The workflow we use, is a simplified form of "GitFlow".
Basically:
- `master` contains only stable releases (which have been merged to `master` ) and is intended for end-users.
- `develop` is the target for integration and is **not** intended for end-users.
- `1.1.x` is a release and maintenance branch for 1.1.x (1.1.0 -> 1.1.1 -> 1.1.2) and is **not** intended for end-users.
- `feature/my_feature` is a temporary feature branch based on `develop` .
- `bugfix/my_bugfix` is an optional temporary branch for bugfix(es) based on `develop` .
Conditions:
- Merging of a stable release into `master` will be simple: the release branch is always right.
- `master` is not merged back to `develop` .
- `develop` is not re-based on `master` .
- Release branches branch from `develop` only.
- Bugfixes created specifically for a release branch are done there (because they are specific, they're not cherry-picked to `develop` ).
- Bugfixes done on `develop` may be cherry-picked to a release branch.
- We will not release a 1.0.2 if a 1.1.0 has already been released.