Repository navigation
Sublarr v1.20.0
Sublarr can now find and repair more bad subtitles by itself. Every case
below came from one anime series on a production library, where none of them
was caught. The repairs are opt-in: turn on Settings → Automation →
Automatic Repair (marked opt-in below); an update leaves your library
alone until you do.
Added
- Automatic Repair setting — One switch, off by default, for the timing
check on downloads, the timing repair on disk and treating signs-only
sidecars as missing. - Timing check for every download (opt-in) — Each downloaded subtitle is lined up
with the video before it is saved: against an embedded text track (MKV and
MP4mov_text), or else against a full sidecar in another language. A
subtitle that runs a constant few seconds early or late is shifted into
place; one whose lines fit the video at no offset (another cut or episode)
is skipped for the next candidate. A sidecar used as the reference never
blocks every candidate, since it may be the wrong one itself. - Timing repair for subtitles already on disk (opt-in) — The nightly
subtitle-health sweep checks the same for existing sidecars. A delayed one
is shifted (the original is kept as a backup); one for another cut is
moved to the trash, its download blacklisted and the episode searched
again. Both act only on a certain verdict and can be undone. The health
panel lists "Timing offset" and "Timing does not fit the video" either way. - Configurable ASS size limit — The largest ASS/SSA file the sanitizer
accepts is a setting now (Settings → Format & naming → Embedded
extraction, 1–50 MiB, default 20 MiB as before). Thanks @KaramTNC (#247). - ASS extraction by stream copy (opt-in) — Embedded ASS/SSA tracks can
be copied unchanged instead of re-encoded, which is faster and avoids
stalls on complex tracks; a failed copy falls back to the encoder
(Subtitle Automation → Auto-Extract Queue). Thanks @KaramTNC (#244). - Jimaku: language for unmarked files — Jimaku files without a language
marker are still read as Japanese; the provider settings can now skip
them or read them as English instead. Thanks @KaramTNC (#246). - AnimeTosho: torrent-level attachments — Multi-sub releases carry
their subtitles on the torrent instead of on its file (torrent 695392:
40 tracks, German among them, none per file); they are now used when the
torrent title names the episode. Can be switched off in the AnimeTosho
provider settings. Thanks @KaramTNC (#245). - All switches in the UI — "Automatic repair" sits in the upgrade rules
(Settings → Automation → Search, scan & upgrades); the subtitle-health
check, nightly sweep and auto-fix, configurable only through the API so
far, have switches on the subtitle-health settings page.
Fixed
- Series overrides show what is saved — The series page's scheduler
overrides (priority, minimum attempts per day, ASS requirement) always
opened as "inherit" and 0, so saving one field reset the other two. They
are now loaded from the server (newGET /api/v1/series/<id>/settings),
and the panel uses the Sublarr design instead of unstyled form controls. - Gestdown found nothing — Its subtitle path takes the language
("en"); the provider sent Addic7ed's numeric ids, which the API answers
with 404 for every language. - BetaSeries found nothing —
/subtitles/show/<id>and
/subtitles/moviedo not exist (404). Episodes are now looked up and
their subtitles fetched by episode id; BetaSeries has no movie subtitles. - Napisy24 reported subtitles it did not have — The search sent the
wrong hash, took the API's "no subtitle" answers (OK-0, OK-1, OK-3) for
hits and built a download address the API does not have. It now follows
the documented protocol and reads the subtitle from the answer itself. - OpenSubtitles follows its API docs — Episode searches send the series
asparent_imdb_id, VIP accounts use the host their login names, a
download that uses up the daily quota stops the next ones until the reset
without another request, and files from trusted sources count as trusted. - Jimaku offers the right season and episode — Jimaku's name search
returns every season of a series and unrelated titles, and every file of
every episode: 440 files for one Mushoku Tensei episode, with a season 3
file ranked first and the right ones without an episode match. Results are
now limited to the series' entries for the queried season and to files of
the queried episode, and carry their episode and season match. When the
full title finds nothing ("Frieren: Beyond Journey's End"), Sonarr's
alternative titles and the main title are tried. Language tags such as
[JPN],[ENG]and.jaare read; files tagged with two languages count
as unmarked. - Key pool dialog — The "Add key" dialog of the provider settings had no
styling at all and asked for a tier, user name and password for providers
that have none. It now uses the Sublarr design and shows those fields for
OpenSubtitles (and user name/password for LegendasDivx and Turkcealtyazi)
only. The pool is labelled as an optional addition to the "API Key" field,
instead of a second "API keys" heading. - A passing provider test clears an old failure streak — Jimaku showed
"Error, 48 consecutive failures" next to "Test: OK"; the failures were
searches from before its key was set. - Wanted items follow the profile's languages — When a language is
removed from a series' or movie's language profile (or the title gets a
profile with other languages), the next scan removes its waiting wanted
items for that language instead of searching for them forever. Items with
a result or history (a provisional machine translation) stay (#234). - Manual download of a result that vanished — When a picked subtitle no
longer shows up in the fresh search, the provider is asked for it by its
id; a result rebuilt that way is classified as signs or full by its
content, so a signs track never settles the full subtitle. Thanks
@KaramTNC (#243). - Slow providers are no longer thrown away — AnimeTosho needs up to
30 s for a season-pack search; the search stopped waiting after ~23 s and
dropped its answer every time. A late answer is now kept for six hours,
the next search for the same episode uses it, and the episode is searched
again on the scheduler's next pass. - AnimeTosho finds season packs of older seasons — Without an AniDB
episode id the search for "Show 05" filled up with the airing season's
episode 5, so the BD packs of season 1 never showed up. When that search
finds nothing, the season is asked for next. Release names may also use
any of Sonarr's alternative titles for the series ("Mushoku Tensei - S01"). - A signs-only file goes when the real subtitle arrives (opt-in) — A new full
.de.srtnow moves a signs/credits-only.de.assof the same episode to
the trash, so the player no longer offers both. - Signs-only sidecars on disk are searched again (opt-in) — A full
.de.ass/.srt
that holds only a title card and credits (10 lines for a 24-minute episode)
no longer counts as the subtitle: the wanted scans and the search treat it
as missing, the episode gets its search attempts back, and the file stays
until a validated replacement overwrites it. The subtitle-health check
flags the same files (it missed exactly 10 lines) either way; the nightly
sweep queues a search for them..forcedand signs sidecars are never touched. - No more doubled language tracks — A sidecar spelled with an ISO 639-2
code (X.deu.srt) that holds the same subtitle as theX.de.srtbeside it
is moved to the sidecar trash by a new "Duplicate language codes" cleanup
rule, so Emby no longer lists two German tracks. The rule is created
disabled; enable it under Settings → Cleanup.
Forced and HI variants only pair with their own kind, different content
keeps both files, and an alias file without a canonical one stays. - Signs tracks no longer pass as full subtitles — A subtitle with far too
few dialogue lines for the video is now refused as the full subtitle,
whatever its style names say (for example 7 sign lines in style "Default"
for a 24-minute episode). Shorts stay unaffected: the check needs the
video's length and allows a few lines for a few minutes. - Upgrades keep the dialogue — An SRT→ASS upgrade and the "keep ASS"
cleanup no longer replace a subtitle with one that holds under a quarter
of its lines. - No translations from signs tracks — Translation refuses a source that
holds only signs and tries the next one: the SRT beside it, the provider
search..forcedand.signssidecars are never used as a source.