Sub-Zero - Subtitles done right
![logo]()
![Slack Status]()
Quick-links to the wiki and the score explanation page: http://v.ht/szwiki, http://v.ht/szscores
Support Sub-Zero
If you like this, why not buy me a beer: ![Donate]()
or join my Patreon starting at 1 $ / month: ![image]()
or use the OpenSubtitles Sub-Zero affiliate link to become VIP
10€/year, ad-free subs, 1000 subs/day, no-cache VIP server:
(the affiliate system is not yet online, please message me with your OpenSubtitles username, if you decide to use the affiliate link)
Introduction
Hey there,
Some of you may have followed the recent development on the original Subliminal.bundle by @bramwalet.
I've made some serious changes, improvements and bugfixes to Subliminal.bundle during the last few weeks, with the help of some very nice people such as @PMAdmin, @chopeta, @BlueToxic and others.
As the direction of this project has moved a long way, I thought it was time to evolve from simply being a personal fork of Subliminal.bundle to something more dedicated.
Plugin Description
Sub-Zero aims to solve your subtitle problems by automatically downloading the hopefully best subtitles there are, for your individual video file.
Subtitles are a problem? Yep, they definitely are. I myself use this plugin on a daily basis as my wife has a serious hearing condition where subtitles help us to be able to watch our favourite TV series and movies together. Subtitles pose a generic struggle: matching your media file perfectly. This is as hard as it gets. Thankfully there are a bunch of libraries and services out there, that help with that.
Sub-Zero is far from being perfect, but with recent development and planned features, we're really getting there.
Its core is based on the works of Diaoul, who created the subliminal library, as well as enzyme, to parse MKV metadata. In addition to that Sub-Zero uses the extremely well-made guessit library made by wackou.
Sub-Zero still is under heavy development but has recently reached a stable state. I need you to report bugs and tell me your opinion on new features.
It currently supports the following subtitle providers:
Automatic Installation
- Sub-Zero now is listed in the official Plex Channel Directory. You can install it from there.
Downloads
Stable (when in doubt, use this one)
Current version: https://github.com/pannal/Sub-Zero.bundle/releases/latest
Legacy versions: https://github.com/pannal/Sub-Zero.bundle/releases
Develop
Release candidate: https://github.com/pannal/Sub-Zero.bundle/archive/master.zip
Bleeding edge (development): https://github.com/pannal/Sub-Zero.bundle/archive/develop-2.1.zip
Repository
https://github.com/pannal/Sub-Zero.bundle
Manual Installation
- go to
Library/Application Support/Plex Media Server/Plug-ins/
- remove old versions (
rm -r Sub-Zero.bundle
)
- get the current version from here
- unpack it
- restart your plex media server!
Usage
- go to
Settings -> Server -> Agents -> Movies/TV Shows
- select the metadata provider you use on your library, e.g.: Freebase (movies) or TheTVDB (series)
- enable
Sub-Zero Subtitles (TV/Movies)
- configure them
- refresh your library (or individual movies/TV shows)
Use the following agent order:
Sub-Zero Subtitles (TV/Movies)
Local Media Assets (TV/Movies)
- anything else
Documentation:
https://github.com/pannal/Sub-Zero/blob/master/README.md
Nice new shiny wiki
https://github.com/pannal/Sub-Zero.bundle/wiki
Changelog
2.5.0.2221
refiners: add support for retrieving original filename from
- drone derivates: sonarr, radarr
- filebot
- symlinks
- file_info meta file lists (see wiki)
providers: add subscene (disabled by default to not flood subscene on release)
- normal search
- season pack search if season has concluded
core: add provider subtitle-archive/pack cache for retrieving single subtitles from previously downloaded (season-) packs (subscene)
- core/agent: massive performance improvements over 2.0
- core/agent/background-tasks: reduce memory usage to a fraction of 2.0
- core/providers: add dynamic provider throttling when certain events occur (ServiceUnavailable, too many downloads, ...), to lighten the provider-load
- core/agent/config: automatically extract embedded subtitles (and use them if no current subtitle)
- core: fix internal subtitle info storage issues
- core: always store internal subtitle information even if no subtitle was downloaded (fixes SearchAllRecentlyAddedMissing)
- core: fix internal subtitle info storage on windows (gzip handling is broken there)
- core: don't fail on missing logfile paths
- core: fix default encoding order for non-script-serbian
- core: improve logging
- core: add AsRequested to cleanup garbage names
- core: treat SDTV and HDTV the same when searching for subtitles
- core: parse_video: trust PMS season and episode numbers
- core: parse_video: add series year information from PMS if none found
- core: upgrade dependencies
- core: update subliminal to 62cdb3c
- core: add new file based cache mechanism, rendering DBM/memory backends obsolete
- core: treat 23.980 fps as 23.976 and vice-versa
- core: add HTTP proxy support for querying the providers (supports credentials)
- core: only compute file hashes for enabled providers
- core: massive speedup; refine only when needed, exit early otherwise
- core: store last modified timestamp in subtitle info storage
- core: only write to subtitle info storage if we haven't had one or any subtitle was downloaded
- core: only clean up the sub-folder if a subtitle-sub-folder has been selected, and not the parent one also
- core: support for CP437 encoded filenames in ZIP-Archives
- core: use scandir library instead of os.listdir if possible, reducing performance-impact
- core: archives: support multi-episode subtitles (partly)
- core: subtitle cleanup: add support for hi, cc, sdh secondary filename tags; don't autoclean .txt
- core: increase request timeout by three times in case a proxy is being used
- core: fix language=Unknown in Plex when "Restrict to one language"-setting is set
- core: refining: re-add old detected title as alternative title after re-refining with plex metadata's title; fixes #428
- core: implement advanced_settings.json (see advanced_settings.json.template for reference, copy to "Plug-in Support/Data/com.plexapp.agents.subzero" to use it)
- core/tasks: fix search all recently added missing (the total number of items will change in the menu while running), reduces memory usage
- core/menu: add support for extracting embedded subtitles using the builtin plex transcoder
- core/menu: skip wrong season or episode in returned subtitle results
- core/config: fix language handling if treat undefined as first language is set
- providers: remove shooter.cn
- providers: add support for zip/rar archives containing more than one subtitle file
- submod: common: remove redundant interpunction ("Hello !!!" -> "Hello!")
- submod: skip provider hashing when applying mods
- submod: correctly drop empty line (fixing broken display)
- submod: OCR: fix F'xxxxx -> Fxxxxx
- submod: HI: improve bracket matching
- submod: OCR: fix l/L instead of I more aggressively
- submod: common: fix uppercase I's in lowercase words more aggressively
- submod: HI: improve HI_before_colon
- submod: common: be more aggressive when fixing numbers; correctly space out spaced ellipses; don't break spaced ellipses; handle multiple spaces in numbers
- menu: add support for extracting embedded subtitles for a whole season
- menu: add reapply mods to current subtitle
- menu: pad titles for more submenus, resulting in detail view in PlexWeb
- menu: add subtitle selection submenu (if multiple subtitles are inside the subtitle info storage; e.g. previously downloaded ones or extracted embedded)
- menu: advanced: add skip findbettersubtitles menu item, which sets the last_run to now (for debugging purposes)
- menu: ignore: add more natural title for seasons and episodes (kills your old ignore lists!)
- config: skip provider hashing on low impact mode
- config: add limit by air date setting to consider for FindBetterSubtitles task (default: 1 year)
- advanced settings: define enabled-for media types per provider
- advanced settings: define enabled-for languages per provider
- advanced settings: add deep-clean option (clean up the subtitle-sub-folder and the parent one)
older changes