SABnzbd - The automated Usenet download tool

SABnzbd - The automated Usenet download tool

CI tests Build binaries License

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)
  • Python modules listed in requirements.txt
  • par2 (Multi-threaded par2 installation guide can be found here)
  • 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.

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.

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.
Comments
  • Upgrade to Python 3

    Upgrade to Python 3

    It seems Python 3.6 is really speeding up things and I wonder if we should consider re-writing SAB for Python 3? https://www.youtube.com/watch?v=d65dCD3VH9Q

    This is also inspired by Cheetah now being ported to Python 3. https://github.com/CheetahTemplate3/cheetah3

    I already tried running the 2to3 tool on SABnzbd, but it turns out to be a bit more complicated than that... Anyone willing to help?

  • test_ipv6() and thus _EXTERNAL_IPV6 unreliable with www.google.com 80 and 443

    test_ipv6() and thus _EXTERNAL_IPV6 unreliable with www.google.com 80 and 443

    As the subject says: test_ipv6() and thus _EXTERNAL_IPV6 is unreliable with www.google.com (and ipv6.google.com) 80 and 443. See the proof below: on a working IPv6 connection, within 30 seconds, _EXTERNAL_IPV6 randomly reports True and False; the sock.connect() times out on 6 seconds. I don't know why this happens. Maybe www.google.com protects itself against connect() without a HTTP GET? That is bad; SAB uses _EXTERNAL_IPV6 to determine if it should look up AAAA / IPv6 addresses at all.

    Reliable FQDNs to use:

    • www.akamai.net
    • ipv6.msftncsi.com (resolves to a978.i6g1.akamai.net). Used by Windows 7+ to determine if the IPv6 internet is working. MSFTNCSI stands for Microsoft Network Connectivity Status Indicator
    • v4v6.ipv6-test.com and v6.ipv6-test.com.
    • www.cisco.com
    • ... many more ...

    So, if www.google.com is not OK for this purpose, which FQDN to use? Requirements:

    • it should have an AAAA address
    • it should always be up and reachable
    • the site owner should be OK with it's usage
    • it should be clear to SABnzbd users what is going on; nothing alarming

    What do you think?

    (FWIW: not related to https://github.com/sabnzbd/sabnzbd/issues/274 )

    [email protected]:~$ time python sab-test_ipv6.py 
    [(10, 1, 6, 'www.google.com', ('2a00:1450:4001:80b::1014', 80, 0, 0))]
    True
    
    real    0m0.056s
    user    0m0.024s
    sys 0m0.012s
    [email protected]:~$ time python sab-test_ipv6.py 
    [(10, 1, 6, 'www.google.com', ('2a00:1450:4001:80b::1014', 80, 0, 0))]
    False
    
    real    0m6.050s
    user    0m0.028s
    sys 0m0.008s
    [email protected]:~$ time python sab-test_ipv6.py 
    [(10, 1, 6, 'www.google.com', ('2a00:1450:4001:80b::1014', 80, 0, 0))]
    False
    
    real    0m6.048s
    user    0m0.024s
    sys 0m0.012s
    [email protected]:~$ time python sab-test_ipv6.py 
    [(10, 1, 6, 'www.google.com', ('2a00:1450:4001:80b::1014', 80, 0, 0))]
    True
    
    real    0m0.056s
    user    0m0.032s
    sys 0m0.004s
    [email protected]:~$ time python sab-test_ipv6.py 
    [(10, 1, 6, 'www.google.com', ('2a00:1450:4001:80b::1014', 80, 0, 0))]
    True
    
    real    0m0.053s
    user    0m0.020s
    sys 0m0.016s
    
  • Build app for M1 / Apple Silicon

    Build app for M1 / Apple Silicon

    Since it's just python under the hood and python already compiles on M1, how difficult would it be to package an .app for M1/ARM macs?

    Are there instructions available on how to build the .app from source? Would love to give it a go

  • Glitter layout needs tweaking before release

    Glitter layout needs tweaking before release

    I find the glitter layout a bit too constrained.

    For example you have this huge progress bar with tons of empty space where the category could be relocated to, right in the middle of it, instead of requiring a huge window to display.

    Also, the job name should get prioritized over the progress bar in terms of screen real estate, meaning the progress bar should shrink to some extent to make space for the job name.

    I understand that it's a universal UI, so things are large for touch devices as well as mouse cursors. But compared to plush(which obviously isn't really touch optimized), it's very inefficient as far as space usage goes, there must be a middle ground and I have a feeling it could be tweaked a bit to make it a bit less awkward on a non-touch device.

  • Sab RC4 notifications tab in config

    Sab RC4 notifications tab in config

    Hi i'm part of linuxserver.io and author of the sabnzbd docker we make. https://github.com/linuxserver https://github.com/linuxserver/docker-sabnzbd

    Testing out RC4 in my personal repo and the notifications tab in settings gives

    Unable to connect

    (in firefox at least)

    same container but using 1.0.3 and the notifications tab loads.

  • "Error importing" when loading job files from disk

    I get a lot of "Error importing" errors. image Is it possible to give a more descriptive error message for these? I notice in the log it reads:

    2017-06-22 17:15:08,460::ERROR::[nzbstuff:1342] Error importing <NzbFile: filename=4f3a3eec98984e2b9302b60767c268ba.vol003+04.par2, type=None>
    

    Would it be possible to get a more descriptive message like that in the UI? Preferably with the name of the Queue item.

  • 2.3.1 not working on my OSX 10.11.6 (15G1611)

    2.3.1 not working on my OSX 10.11.6 (15G1611)

    I updated SABNzb+ to v 2.3.1 (from 2.2.0). Start SABNzb+ and nothing happens. If I start Activity Monitor and Filter for SAB, I see the process starting and then stopping again after a few seconds away.

    If I revert to 2.2.0 that works fine.

    In ~/Library/Application Support/sabnzb/logs/sabnzb.logs, all I see is:

    2017-11-24 18:47:18,079::INFO::[_cplogging:219] [24/Nov/2017:18:47:18] ENGINE Bus STARTING 2017-11-24 18:48:50,331::INFO::[_cplogging:219] [24/Nov/2017:18:48:50] ENGINE Bus STARTING for 2 seperate restarts.

    Changed the loglevel (in sabnzb.ini) to 9 and see:

    2017-11-24 19:01:34,833::INFO::[SABnzbd:1141] Console logging for OSX App disabled 2017-11-24 19:01:34,833::INFO::[SABnzbd:1148] -------------------------------- 2017-11-24 19:01:34,833::INFO::[SABnzbd:1149] SABnzbd.py-2.3.1 (rev=f1695ec8753fbdb07bd67bdce25eeb3ebe70b972) 2017-11-24 19:01:34,834::INFO::[SABnzbd:1150] Full executable path = /Applications/SABnzbd.app/Contents/MacOS/SABnzbd 2017-11-24 19:01:34,834::INFO::[SABnzbd:1160] Platform = posix 2017-11-24 19:01:34,834::INFO::[SABnzbd:1161] Python-version = 2.7.14 (default, Oct 26 2017, 19:43:58) [GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] 2017-11-24 19:01:34,834::INFO::[SABnzbd:1162] Arguments = /Applications/SABnzbd.app/Contents/Resources/SABnzbd.py 2017-11-24 19:01:34,834::INFO::[SABnzbd:1167] Preferred encoding = UTF-8 2017-11-24 19:01:34,835::INFO::[SABnzbd:1177] SSL version = OpenSSL 1.0.2l 25 May 2017 2017-11-24 19:01:34,835::INFO::[SABnzbd:1184] Loaded additional certificates from /Applications/SABnzbd.app/Contents/Resources/cacert.pem 2017-11-24 19:01:34,854::DEBUG::[SABnzbd:1191] Available certificates: {'x509': 142, 'x509_ca': 142, 'crl': 0} 2017-11-24 19:01:34,854::DEBUG::[SABnzbd:1198] My local IPv4 address = 10.3.105.86

    Anything else I can check?

  • DSM 7 SABNZB errors:

    DSM 7 SABNZB errors: "ValueError: semaphore or lock released too many times"

    Setup Package Name: SABNZBD Package Version: 3.4.2-50

    NAS Model: DS214Play NAS Architecture: Standard DSM version: 7.0.1-42218

    Expected behavior SABNZBD operates as per normal (as prior to upgrade to DSM 7. Have tried reinstall, changing default directories with no effect.

    Actual behavior Below errors received in SABNZBD:

    Traceback (most recent call last):
    File "/volume1/@appstore/sabnzbd/env/lib/python3.8/site-packages/cherrypy/_cprequest.py", line 638, in respond
    self._do_respond(path_info)
    File "/volume1/@appstore/sabnzbd/env/lib/python3.8/site-packages/cherrypy/_cprequest.py", line 697, in _do_respond
    response.body = self.handler()
    File "/volume1/@appstore/sabnzbd/env/lib/python3.8/site-packages/cherrypy/lib/encoding.py", line 223, in call
    self.body = self.oldhandler(*args, **kwargs)
    File "/volume1/@appstore/sabnzbd/env/lib/python3.8/site-packages/cherrypy/_cpdispatch.py", line 54, in call
    return self.callable(*self.args, **self.kwargs)
    File "/volume1/@appstore/sabnzbd/share/SABnzbd/sabnzbd/interface.py", line 169, in internal_wrap
    return wrap_func(*args, **kwargs)
    File "/volume1/@appstore/sabnzbd/share/SABnzbd/sabnzbd/interface.py", line 452, in api
    return api_handler(kwargs)
    File "/volume1/@appstore/sabnzbd/share/SABnzbd/sabnzbd/api.py", line 100, in api_handler
    response = _api_table.get(mode, (_api_undefined, 2))[0](name, kwargs)
    File "/volume1/@appstore/sabnzbd/share/SABnzbd/sabnzbd/api.py", line 474, in _api_status
    return _api_status_table.get(name, (_api_fullstatus, 2))[0](value, kwargs)
    File "/volume1/@appstore/sabnzbd/share/SABnzbd/sabnzbd/api.py", line 465, in _api_fullstatus
    status = build_status(
    File "/volume1/@appstore/sabnzbd/share/SABnzbd/sabnzbd/api.py", line 1340, in build_status
    info["publicipv4"] = publicipv4()
    File "/volume1/@appstore/sabnzbd/share/SABnzbd/sabnzbd/getipaddress.py", line 87, in publicipv4
    result = addresslookup4(sabnzbd.cfg.selftest_host())
    File "/volume1/@appstore/sabnzbd/share/SABnzbd/sabnzbd/getipaddress.py", line 45, in func_wrapper
    return async_result.get(max_timeout)
    File "/var/packages/python38/target/lib/python3.8/multiprocessing/pool.py", line 736, in exit
    self.terminate()
    File "/var/packages/python38/target/lib/python3.8/multiprocessing/pool.py", line 654, in terminate
    self._terminate()
    File "/var/packages/python38/target/lib/python3.8/multiprocessing/util.py", line 224, in call
    res = self._callback(*self._args, **self._kwargs)
    File "/var/packages/python38/target/lib/python3.8/multiprocessing/pool.py", line 687, in _terminate_pool
    change_notifier.put(None)
    File "/var/packages/python38/target/lib/python3.8/multiprocessing/queues.py", line 368, in put
    self._writer.send_bytes(obj)
    File "/var/packages/python38/target/lib/python3.8/multiprocessing/synchronize.py", line 98, in exit
    return self._semlock.exit(*args)
    ValueError: semaphore or lock released too many times
    
  • Latest version time out issue

    Latest version time out issue

    After latest version (3.6.0) was released, I cannot start sabnzbd service. The below message just repeats on restarts.

    2022-06-07 09:07:10,595::INFO::[SABnzbd:1167] --------------------------------
    2022-06-07 09:07:10,595::INFO::[SABnzbd:1168] SABnzbd.py-3.6.0
    2022-06-07 09:07:10,595::INFO::[SABnzbd:1178] Commit = b31fedd85790c21488cbebd9730bdc00b2bdb385
    2022-06-07 09:07:10,595::INFO::[SABnzbd:1180] Full executable path = /app/sabnzbd/SABnzbd.py
    2022-06-07 09:07:10,595::INFO::[SABnzbd:1181] Arguments = "/app/sabnzbd/SABnzbd.py" "--config-file" "/config" "--server" "::"
    2022-06-07 09:07:10,596::INFO::[SABnzbd:1182] Python-version = 3.9.7 (default, Nov 24 2021, 21:15:59)
    [GCC 10.3.1 20211027]
    2022-06-07 09:07:10,596::INFO::[SABnzbd:1183] Dockerized = True
    2022-06-07 09:07:10,596::INFO::[SABnzbd:1184] CPU architecture = x86_64
    2022-06-07 09:07:10,602::INFO::[SABnzbd:1187] Platform = posix - Linux-3.10.0-1160.66.1.el7.x86_64-x86_64-with
    2022-06-07 09:07:10,602::INFO::[SABnzbd:1193] Preferred encoding = UTF-8
    2022-06-07 09:07:10,603::DEBUG::[SABnzbd:1212] JSON-module = ujson 5.3.0
    2022-06-07 09:07:10,603::INFO::[SABnzbd:1215] SSL version = OpenSSL 1.1.1o  3 May 2022
    2022-06-07 09:07:10,604::INFO::[SABnzbd:1224] Certifi version = 2020.12.05
    2022-06-07 09:07:10,604::INFO::[SABnzbd:1225] Loaded additional certificates from /etc/ssl/certs/ca-certificates.crt
    2022-06-07 09:07:10,623::DEBUG::[SABnzbd:1234] Available certificates = {'x509': 132, 'crl': 0, 'x509_ca': 132}
    2022-06-07 09:07:10,623::DEBUG::[getipaddress:100] Local IPv4 address = 172.19.0.2
    Traceback (most recent call last):
      File "/app/sabnzbd/SABnzbd.py", line 1786, in <module>
        main()
      File "/app/sabnzbd/SABnzbd.py", line 1238, in main
        publicipv4()
      File "/app/sabnzbd/sabnzbd/getipaddress.py", line 114, in publicipv4
        result = addresslookup4(sabnzbd.cfg.selftest_host())
      File "/app/sabnzbd/sabnzbd/getipaddress.py", line 48, in func_wrapper
        return sabnzbd.THREAD_POOL.submit(item, *args, **kwargs).result(max_timeout)
      File "/usr/lib/python3.9/concurrent/futures/_base.py", line 447, in result
        raise TimeoutError()
    concurrent.futures._base.TimeoutError
    
  • Memory leaks from larger NZB's

    Memory leaks from larger NZB's

    I am not sure what is going on, but somewhere memory is leaking.

    Take for example this NZB Test123.nzb.gz (it is incomplete, so safe to share). When I start SABnzbd it uses 55MB of memory, after this download fails it is stuck at 99MB of memory. This memory is never released. With the gc_stats API-call I am pretty sure I can verify that no TryList related objects are left in memory. So what is left in memory? 😡

  • Can't deobfuscate certain names

    Can't deobfuscate certain names

    Good day,

    I often pull linux isos from a specific indexer that's known to obfuscate their releases in an interesting format which results in having abc.xyz.EXT filenames in the resulting folders.

    I looked around inside the nzb file itself and I came across the fact that these abc.xyz names are nowhere mentioned actually. Also, these files are not packed to rars or anything, therefore its a bit unclear for me where this naming comes from. However the subject field contains the right filename:

    <file poster="<redacted>&gt;" date="<redacted>" subject="[PRiVATE]-[GROUPNAME]-[INSTALLER.ISO]-[3/82] - &quot;&quot; yEnc 100000 (1/1)">

    I obviously want the file to have the INSTALLER.ISO name in this case. I have tried to enable the "Deobfuscate final filenames " feature, but that seemingly didn't do anything with the files. I also tried the movie sorting with the %dn, but that just placed each abc.xyz.EXT file to the root download folder.

    Is there a way I can extract titles from the subject with a regex a script or whatsoever? Also, where does this abc.xyz gets fetched from?

    For investigating purposes I can provide nzbs but due to the nature of their contents I can only do so in email.

  • sab backup - include cert?

    sab backup - include cert?

    perhaps we should include the relevant sab cert/key so it makes the backup that much easier to restore..

    • HTTPS Certificate
    • HTTPS Key
    • HTTPS Chain Certificates
  • RAR 6.20 beta 2

    RAR 6.20 beta 2

    https://www.rarlab.com/rarnew.htm

       Version 6.20 beta 2
    
       1. If Zone.Identifier alternate NTFS stream, also known as Mark of the Web,
          is present both in archived office document file and host archive
          and if archive security zone is set to "Internet" or "Restricted sites",
          WinRAR sets the host archive stream to unpacked file and ignores
          the archived file stream.
       
       2. Bugs fixed:
    
          a) updating an existing archive in RAR5 format could result in broken
             archive data in beta 1 if existing archive included the archive
             comment, encrypted file names and was created by version older
             than WinRAR 6.20;
    
          b) updating an archive with -ver -ow -s switches failed with
             checksum error if -ver removed old archived file versions.
    
             Without -s, it could produce a larger than necessary archive
             with redundant NTFS security data records.
    
    Version 6.20 beta 1
    
       1. If "Autodetect passwords" option in "Organizer passwords" dialog
          is enabled and password matching a processing archive is present
          among saved passwords, it is applied automatically. This option
          is applicable only for archives in RAR 5.0 and ZIP formats,
          which allow to verify the password validity quickly.
    
          There is a minor chance of incorrect password detection
          for ZIP archives if stored passwords do not include a proper one.
          If encrypted ZIP archive extraction fails, you can try to disable
          this option, repeat extraction and enter a valid password manually.
    
       2. If extraction command involves only a part of files in RAR archive,
          the additional archive analysis is performed when starting extraction.
          It helps to properly unpack file references even if reference source
          is not selected. It works for most of RAR archives except for volumes
          on multiple removable media and archives containing a very large
          number of references.
    
          Also in some cases such analysis may help to optimize the amount
          of processing data when extracting individual files from
          semi-solid archives created with -s<N> and -se switches.
    
       3. "Save original archive name and time" option on "Options" page
          of archiving dialog allows to save the original archive name
          and creation time. If archive includes such saved name and time,
          they are displayed on "Info" page of "Show information" command
          and can be restored on "Options" page of same command.
          Restoring involves renaming an archive to original name and setting
          the saved time as the archive creation and modification time.
    
          Switch -ams or just -am together with archive modification commands
          can be used to save the archive name and time in the command line mode.
          These saved parameters are displayed in header of "l" and "v" commands
          output and can be restored with -amr switch combined with "ch" command,
          such as "rar ch -amr arc.rar". If -amr is specified, "ch" ignores
          other archive modification switches.
    
       4. Faster RAR5 compression of poorly compressible data on modern CPUs
          with 8 or more execution threads. This applies to all methods
          except "Fastest", which performance remains the same.
    
       5. "Repair" command efficiency is improved for shuffled data blocks
          in recovery record protected RAR5 archives.
             
       6. If file size has grown after archiving when creating non-solid
          RAR volumes, such file is stored without compression regardless of
          volume number, provided that file isn't split between volumes.
          Previously it worked only for files in the first volume.
    
       7. Added decompression of .zipx archives containing file references,
          provided that both reference source and target are selected
          and reference source precedes the target inside of archive.
    
          Typically, if .zipx archive includes file references, it is necessary
          to unpack the entire archive to extract references successfully.
       
       8. Added decompression of .zst long range mode archives with dictionary
          exceeding 128 MB. Previously it was possible to decompress them only
          if dictionary was 128 MB or less.
    
       9. If "Turn PC off", "Hibernate", "Sleep" or "Restart PC" archiving
          options are enabled in WinRAR, a prompt to confirm or cancel
          such power management action is displayed directly before starting it.
          If no selection was made by user for 30 seconds, the proposed action
          is confirmed and started automatically.
    
          This prompt is also displayed for -ioff switch in WinRAR command line,
          but not in console RAR command line.
    
      10. Context menu in WinRAR file list provides "Open in internal viewer"
          command for archive files. It can be helpful if you wish to view
          the archive raw data in internal viewer. For example, to read
          an email archive with UUE attachments included.
    
          Usual "View" command always displays the archive contents.
          If file is recognized as UUE archive, "View" would show UUE attachments.
    
      11. Recovery record size is displayed on "Archive" page of file properties
          invoked from Explorer context menu for archives in RAR5 format.
          Previously there was only "Present" instead of exact size
          for RAR5 archives.
    
      12. When archiving from stdin with -si switch, RAR displays the current
          amount of read bytes as the progress indicator.
       
      13. If wrong password is specified when adding files to encrypted
          solid RAR5 archive, a password will be requested again.
          Previous versions cancelled archiving in this case.
    
      14. If both options "Test archived files" and "Clear attribute "Archive"
          after compressing" or their command line -t -ac equivalents are
          enabled when archiving, "Archive" attribute will be cleared only
          if test was completed successfully. Previously it was cleared even
          when test reported errors.
    
      15. NoDrives value containing the bit mask to hide drives can be now
          read from "HKEY_CURRENT_USER\Software\WinRAR\Policy" Registry key,
          which allows to include it to winrar.ini if necessary.
          Its "Software\Microsoft\Windows\CurrentVersion\Policies" locations
          in HKEY_CURRENT_USER and HKEY_LOCAL_MACHINE are also supported.
    
          Previously only "Software\Microsoft\Windows\CurrentVersion\Policies"
          in HKEY_CURRENT_USER was recognized.
    
      16. Bugs fixed:
    
          a) archive modification commands could fail for some ZIP archives
             with file comments;
    
          b) fixed a memory leak when reading contents of .tar.bz2 archives;
    
          c) if source and resulting archive format is the same, the archive
             conversion command didn't set the original archive time
             to a newly created archive even if "Original archive time" option
             was selected in archiving parameters;
    
          d) if "Merge volumes contents" option in "Settings/File list" was
             turned on, the folder packed size in WinRAR file list could be
             less than expected when browsing a multivolume archive contents.
             It didn't include the packed size of file parts continuing from
             previous volume into calculation;
    
          e) even if "Set file security" extraction option was turned off
             by default, extraction commands in Explorer context menu still
             attempted to restore NTFS file security data.
    
  • Feature Request: History Details overlay to include source RSS feed responsible for the download

    Feature Request: History Details overlay to include source RSS feed responsible for the download

    The details overlay for a downloaded item in the history section already contains quite some information. However it is is not clear what RSS feed exactly triggered the download. It would be nice to include that information so it is always possible to see which RSS feed was responsible for a particular download.

  • Replace `cherrypy` by something new

    Replace `cherrypy` by something new

    cherrypy has not really been updated since 2019.

    I was looking into replacing it with starlette and uvicorn, which use Python's async framework.

    It would require a major rewrite of all interface code, so it might not be worth it. In the end we do not care that much about thousands of concurrent transactions and mostly SABnzbd's own code is the bottleneck.

  • Support Season Packs in Series Sorter

    Support Season Packs in Series Sorter

    Feel free to delete this issue as its a dupe of https://github.com/sabnzbd/sabnzbd/issues/2112 I commented on that issue a little over a month ago and the issue was already closed so maybe my comment wasn't seen but I'll just copy-paste my comment.

    I thought I was also trippin but it happens quite alot with season packs.
    I have sorting as Show Name/Season 1/Show Name - S01E05.mkv
    When this error happens, mostly the Show Name also fails to rename properly and gets truncated and what was Show.Name.S01.S01.1080p.AMZN.WEB-DL.DDP5.1.H.264 ends up as Show Name S01 1080P Amzn Web-Dl Ddp5 1 H.
    The folder name clearly has S01 but the resulting structure is Show Name S01 1080P Amzn Web-Dl Ddp5 1 H/Season 2/...
    Note the Season 2 and how the H.264 lost the .264.
    And then the last episode of the pac is the one that mostly fails to rename for me and usually gets labelled as S02E64. Presumably the 2 and 64 came from H.264 and SAB took that as the season and episode numbers. So it ends up as
    Show Name S01 1080P Amzn Web-Dl Ddp5 1 H - S02E64.mkv without the episode number and I have to rename that file with the last episode number.
    The same nzb with nzbget and post processing enable works with no problem.
    
A tool written in Python to download all Snapmaps content from a specific location.
A tool written in Python to download all Snapmaps content from a specific location.

snapmap-archiver A tool written in Python to download all Snapmaps content from a specific location.

Nov 12, 2022
πŸ“ΌCommand line tool based on youtube-dl to easily download selected channels from your subscriptions.
πŸ“ΌCommand line tool based on youtube-dl to easily download selected channels from your subscriptions.

youtube-cdl Command line tool based on youtube-dl to easily download selected channels from your subscriptions. This tool is very handy if you want to

Oct 31, 2022
MMDL (Mega Music Downloader) - A tool to easily download music.
MMDL (Mega Music Downloader) - A tool to easily download music.

mmdl - Mega Music Downloader What is mmdl ❓ TLDR: MMDL is a cli app which allows you to quickly and efficiently download one or multiple songs from Yo

Nov 13, 2022
A tool to download program information from Bugcrowd, for use by researchers to compare programs they are eligible to participate in

Description bcstats is a tool which allows Bugcrowd researchers to download information about all accessible programs (public and private) into a sing

Oct 13, 2022
βš™οΈ A CLI tool that can download songs from youtube.

βš™οΈ Music Downloader Music Downloader is a tool that can download songs from Youtube. Installation Base requirements: Python 3.7+ If you have Python 3.

Nov 3, 2021
YT-Downloader is a Tool to download youtube video.

YT-Downloader YT-Downloader is a Tool to download youtube video.If you are looking for a simple video downloader tool Than This YT-Downloader may be u

May 11, 2022
Download YouTube videos/music and images in MP4, JPG with this tool.
Download YouTube videos/music and images in MP4, JPG with this tool.

ABOUT THE TOOL Download YouTube videos, music and images in MP4, JPG with this tool, with an easy to understand interface. This tool works with both,

Oct 23, 2022
Tool To download Amazon 4k SDR HDR 1080, CDM IS Not Included

WV-AMZN-4K-RIPPER Tool To download Amazon 4k SDR HDR 1080, CDM IS Not Included For CDM You can Mail :- [email protected] Note : CDM is not free L

Dec 23, 2021
Tool to download Netflix in 4k

Netflix-4K-Script Tool to download Netflix in 4k You will need to get a L1 CDM that is whitelsited with Netflix CDM In this script are downgraded

Dec 23, 2021
A cli tool to download purchased products from the DLsite.

dlsite-downloader A cli tool to download purchased products from the DLsite. How can I use? This program runs with configurations defined at settings.

Jul 30, 2022
Tool To download 4KHDR DV SDR from AppleTV
Tool To download 4KHDR DV SDR from AppleTV

# APPLE-TV 4K Downloader Tool To download 4K HDR DV SDR from AppleTV Hello Fellow < Developers/ >! Hi! My name is WVDUMP. I am Leaking the scripts to

Dec 25, 2021
The tool allows to download a list of tiktok sounds

dependencies: pip install requests how to use LAUCH THE PROGRAM file (option f)

Jan 21, 2022
Tool To download Amazon 4k SDR HDR 1080, CDM IS Not Included

WV-AMZN-4K-RIPPER Tool To download Amazon 4k SDR HDR 1080, CDM IS Not Included For CDM You can Mail :- [email protected] Note : CDM is not free L

Nov 26, 2022
Tool To download - Amazon - Netflix- Disney+ - VideoLand - Boomerang - RTE.ie
Tool To download - Amazon - Netflix- Disney+ - VideoLand - Boomerang - RTE.ie

vinetrimmer Widevine Decryption Script for Python Modules Amazon Netflix (with [email protected] support) Disney+ VideoLand Boomerang RTE.ie Hello Fellow < Dev

Dec 31, 2021
ASF Sentinel-1 Metadata Download tool

ASF Sentinel-1 Metadata Download tool Copyright: 2021-2022 Antonio Valentino Small Python tool (asfsmd) that allows to download XML files containing S

Dec 4, 2022
Easy automated ebook downloader using openbooks as the backend
Easy automated ebook downloader using openbooks as the backend

Easy automated ebook downloader using openbooks as the backend

Nov 6, 2022
Fully Automated YouTube Channel ▢️with Added Extra Features.

Fully Automated Youtube Channel β–’β–ˆβ–€β–€β–ˆ β–ˆβ–€β–€β–ˆ β–€β–€β–ˆβ–€β–€ β–€β–€β–ˆβ–€β–€ β–ˆβ–‘β–‘β–ˆ β–ˆβ–€β–€β–„ β–ˆβ–€β–€ β–ˆβ–€β–€β–ˆ β–’β–ˆβ–€β–€β–„ β–ˆβ–‘β–‘β–ˆ β–‘β–‘β–ˆβ–‘β–‘ β–‘β–’β–ˆβ–‘β–‘ β–ˆβ–‘β–‘β–ˆ β–ˆβ–€β–€β–„ β–ˆβ–€β–€ β–ˆβ–„β–„β–€ β–’β–ˆβ–„β–„β–ˆ β–€β–€β–€β–€ β–‘β–‘β–€β–‘β–‘ β–‘β–’β–ˆβ–‘β–‘ β–‘β–€β–€β–€ β–€β–€β–€β–‘

Dec 1, 2022
A modern CLI to download animes automatically from Twist
A modern CLI to download animes automatically from Twist

Kurby Kurby is a nice and simple CLI that use Twist website, and their huge collection to download animes for free and automatically Animes from Twist

Apr 10, 2022
Download courses from khanacademy.org

khan-dl A python script to download courses from Khan Academy using youtube-dl and beautifulsoup4.

Nov 27, 2022