Skip to content

Sublarr v1.20.0

Choose a tag to compare

@github-actions github-actions released this 04 Nov 21:08
· 32 commits to master since this release

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
    MP4 mov_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 (new GET /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/movie do 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
    as parent_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 .ja are 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.srt now moves a signs/credits-only .de.ass of 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. .forced and 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 the X.de.srt beside 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. .forced and .signs sidecars are never used as a source.