Skip to content

Settings — Providers

This page is the provider control surface: 28 built-in provider adapters, the opt-in catalog sources, marketplace plugins, and transcription engines as a last-resort fallback. Each row is one provider with health, credentials, priority, and rate-limit state.

Wanted item movie or episode 21 source services native adapters Embedded extractor local media tracks 6 fallbacks Subliminal adapters Score + pick best subtitle

Each provider row shows:

ColumnEffect
Name + badgeProvider name; badge for Free / API Key / Login.
Statusenabled / disabled / auto-disabled / not configured.
PriorityNumeric rank in the search order. Lower = tried first.
HealthRecent success rate over the last 200 calls.
Last responseAverage latency.
DownloadsSuccessful subtitle downloads from this provider, lifetime.

Click a row to open the editor panel — credentials, priority drag handle, test button, cache controls.

ProviderTypeAccountBest for
OpenSubtitlesAPI keyrequired (free tier)Largest dataset; reliable backbone of any setup.
JimakuAPI keyrequired (free)Anime — direct partnership with translator groups.
SubDLAPI keyrequired (free)Curated, fast, strong on anime.
AnimeToshononenoneAggregator of anime fansub releases.
SubsDumpnonenoneAdditional subtitle dump source.
ProviderLanguagesAccount
PodnapisiSlavic + EUnone
KitsunekkoJapanese (ASS)none
Napisy24Polishnone
TitrariRomaniannone
LegendasDivxPortuguese (PT)required
Addic7edTV series specialistoptional
GestdownSpanishnone
TVSubtitlesTV series multi-langnone — tvsubtitles.net no longer resolves; keep it disabled
ProviderLanguagesAccount
ZimukuChinesenone
TurkcealtyaziTurkishrequired
SubSourcebroadAPI key
Subf2mbroadnone
YIFYSubtitlesmoviesnone
BetaSeriesFrench / EUoptional
TitloviBalkan languagesrequired
ProviderTypeAccount
Embeddedlocal track extractornone
Custom HTTP/JSONyour own server (see below)optional
Subliminal OpenSubtitlesalternate adapterprovider account if required
Subliminal OpenSubtitles.comalternate adapterprovider account if required
Subliminal Addic7edalternate adapteroptional
Subliminal Gestdownalternate adapternone
Subliminal NapiProjektalternate adapternone
Subliminal Podnapisialternate adapternone
ProviderTypeLocalAccount
Whisper (built-in)transcriptionyesnone
WhisperAI (OpenAI)transcriptionnorequired
Subgentranscriptionyes (separate service)optional

Transcription engines are computational, not search-based, so use them only when no real subtitle exists. Configure them under Settings → Providers → Transcription.

On top of the built-in adapters, Sublarr ships 43 catalog sources taken over from the Bazarr+ Provider Hub catalog. They are off by default. To use them, switch on Catalog providers (Bazarr+) under Global provider settings on this page; the sources then appear in the provider list, and each one still has to be enabled on its own. Switching the catalog off again removes them from the search at once.

The code is a reviewed, pinned copy of the catalog (LavX/bazarr-provider-catalog, MIT), not a download at runtime: every file is checked against the SHA-256 recorded in its manifest before it is loaded, and an edited file is refused. Catalog sources that need the cloudscraper/Js2Py stack are not included, nor those that duplicate an adapter Sublarr already has.

SourceLanguagesAccount
AnimeKalesiTurkish (anime)none
AnimeSub.infoPolish (anime)none
AssrtChinese, EnglishAPI token
AvistaZbroadsession cookies (see below)
BollyNookbroadnone
BSPlayer23 languagesnone
CinemaZbroadsession cookies (see below)
Fansubs.ruRussiannone
GreekSubsGreeknone
GreekSubtitlesGreek, Englishnone
HDBitsbroadusername + passkey
iSubtitlesbroadnone
KaragargaEnglishusername + password
KtuvitHebrewemail + hashed password
Legendas.netPortuguese (BR)username + password
Moviesubtitles13 languagesnone
My-Subsbroadnone
NekurLatviannone
Pipocas.tvPortuguese, English, Spanishusername + password
Prijevodi-OnlineCroatian, Bosnian, Serbian, Macedonianoptional
RegieLiveRomaniannone
ShooterChinese, Englishnone
Sous-Titres.euFrench, Englishnone
SubCentral.deGerman, Englishnone
SubclubEstoniannone
SubHDChinese and 14 morenone
Subs4FreeGreek, Englishnone
Subsarrbroadyour own Subsarr server (base URL)
Subs.roRomanian, EnglishAPI key
SubsSabBzBulgarian, Englishnone
SubsUnacsBulgarian, Englishnone
SubSynchroFrenchnone
SubtisSpanishnone
SubtitleCatbroadnone
SubtitleStarPersiannone
Subtitrari NoiRomaniannone
Subtitri.idLatviannone
SubtitulamosTVSpanish, Catalan, Englishnone
SubXSpanishAPI key
SuperSubtitlesHungarian, Englishnone
Titulky.comCzech, Slovakusername + password
TsukiHimebroad (anime)none
VladoonBulgariannone

A few sources search by details the wanted search has to fetch for them:

  • AvistaZ and CinemaZ need your tracker session cookies and only read the release page a file was grabbed from. Sublarr takes that page from the Sonarr/Radarr history, so they only find subtitles for files grabbed from those trackers. The history is read only while one of the two is enabled, at most once an hour per episode or movie.
  • TsukiHime searches episodes by AniDB episode id and number, which only Shoko supplies — without Shoko it finds no episodes. A movie is only searched when the search carries an AniList id (from the API); Radarr has none.
  • SubsSabBz, SubsUnacs and Titulky.com check the frame rate of a result; Sublarr passes the file’s frame rate from Sonarr/Radarr.

Every catalog result goes through the same season/episode check, scoring and decision log as the built-in adapters.

Clicking a provider opens an inline editor with:

SectionWhat’s there
Enabled toggleOn / off without losing config.
CredentialsAPI key / username / password where applicable. Text and password fields save once — when you leave the field or press Enter, not while you type; yes/no settings are checkboxes and settings with a fixed set of values are dropdowns. Optional Key pool for providers that support rotation, see Key pool. Once that list has an entry, searches use the keys from it and ignore the single credential field above; a note under the field says so.
Excluded languagesLanguages this provider must never be asked for, and never serve. See Excluding a language from one provider.
TestRound-trips a known query; reports auth + reachability. See Testing a provider for the download variant.
Health statsSuccess rate, last response time, average response time, consecutive failures, auto-disable status, and the times of the last search and the last successful download — recorded separately, see below.
CachePer-provider cached search results count + clear button.
StatsLifetime downloads.

The Key pool (optional) section holds several keys that Sublarr rotates through, for example when one reaches its daily limit. It is an addition to the API Key field, not a second heading for the same thing: as soon as a key is listed in the pool, the API Key field no longer applies. With an empty pool the API Key field applies.

Add key opens a dialog with Label, API key and Enabled, plus a Test connection button. The other fields appear only where the provider has them:

FieldShown for
TierOpenSubtitles
Username and Password (both optional)OpenSubtitles, LegendasDivx, Turkcealtyazi

Deleting the last key of a provider that needs one disables that provider. A passing Test also clears an old failure streak, so a provider no longer shows “N consecutive failures” next to “Test: OK” for searches that ran before its key was set.

Behaviour worth knowing for individual providers (1.20.0):

ProviderBehaviour
JimakuResults are limited to the series’ entries for the queried season and to files of the queried episode, and carry their episode and season match (before, a name search returned every season and every file of every episode). When the full title finds nothing, Sonarr’s alternative titles and the main title are tried. Language tags such as [JPN], [ENG] and .ja are read; a file tagged with two languages counts as unmarked. Setting Language for unmarked files: ja (default; unmarked files are read as Japanese), en (read as English) or none (skip them).
AnimeToshoSetting Torrent-level attachments: on (default) or off. Multi-sub releases carry their subtitles on the torrent instead of on one of its files; with this on they are used when the torrent title names the episode. A season-pack search can take up to 30 s: a late answer is kept for six hours, the next search for the same episode uses it, and the scheduler searches the episode again on its next pass. Without an AniDB episode id, when the search for “Show 05” finds nothing, the season is asked for next, so BD packs of older seasons are found. Release names may use any of Sonarr’s alternative titles.
GestdownThe subtitle request now sends the language code (en) instead of Addic7ed’s numeric ids, which the API answered with 404 for every language.
BetaSeriesEpisodes are looked up first, then their subtitles are fetched by episode id. BetaSeries has no movie subtitles.
Napisy24Follows the documented protocol: the API’s “no subtitle” answers are no longer taken for hits, and the subtitle is read from the answer itself.
OpenSubtitlesEpisode 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 further downloads until the reset without another request; files from trusted sources count as trusted.

Since 1.19.0, credentials entered for several providers take effect as soon as they are saved, a provider can be set to “No providers” (all off) without falling back to all, and a provider that answers after the search timeout (AnimeTosho at times takes 20 to 30 s) is no longer missing from the next searches for the same episode.

Two providers can both serve a language while one of them does it badly. Rather than turning the weaker provider off entirely — and losing the languages it is good at — you can exclude that one language from it.

Open the provider, pick the languages under Excluded languages, and save. From then on:

  • the provider is never asked for an excluded language, and
  • a result in an excluded language is dropped even if the provider returns one anyway, which some do regardless of what was requested.

If every language a search asks for is excluded for a provider, that provider is skipped for the search entirely and says so in the decision log — you will find it under Why a provider is being skipped rather than silently absent.

Exclusions are per provider, not global: excluding Serbian from OpenSubtitles has no effect on Titlovi, which is usually the point of setting one.

Test runs a search and reports whether the provider answered and accepted your credentials. That is not the whole story: search and download often use different credentials, so a provider can pass every search while its download path is dead.

Test download is the companion action. It fetches one real subtitle and throws it away, which is the only way to prove the download path works. It is a separate button rather than part of every test because a download spends one unit of the account’s daily allowance.

Both buttons probe with the first item from your wanted list, and the query is built by the same code the scheduled search uses — metadata enrichment and AniDB resolution included. That matters for providers that match through an AniDB id rather than a title, AnimeTosho above all: they are asked the same question the real search asks them, so a no-result from the button means the provider genuinely had nothing for that episode.

A provider can answer, pass its health check, and still take part in no search at all — because something upstream of the request is holding it back. The Providers page names that gate instead of showing the provider as healthy.

GateWhat it meansWhere to fix it
auto_disabledHard-disabled after persistent failures.Clear the failure cause, then wait out Auto-disable cooldown or re-enable the provider.
circuit_openThe circuit breaker tripped.It retries on its own after the cooldown; see Circuit Breaker.
rate_limitedThrottled after hitting the provider’s quota.Wait, or raise Provider delay so you stop tripping it.
budget_exhaustedThe request budget for this provider is used up.Budget settings below, or wait for the window to roll over.
no_pool_keyThe provider needs a credential and the key pool has no usable row.Add or repair credentials in the edit panel.
languages_excludedEvery language this search asked for is excluded for this provider.Excluded languages in the edit panel.
not_initialisedThe adapter never started — usually missing configuration.Check the credentials and re-enable.
okNothing is blocking it.—

The order matters: a provider can sit behind several gates at once, and the one named is the one the search path hits first, so fixing it is what actually changes the outcome.

A provider that quietly stops working looks exactly like a library with nothing left to find — the wanted queue simply stops moving. Provider degradation alerts (off by default) watch for that and notify once per provider per day through your configured notification channels.

Two conditions fire:

  • auto_disabled — the provider was hard-disabled after repeated failures.
  • downloads_stopped — the provider is still searching and has downloads in its history, but none has succeeded for 24 hours. That combination is the signature of a dead download credential while search still works.

The second condition is deliberately narrow. On a healthy install most providers legitimately never download, because they lose the scoring race — alerting on “no downloads” alone would bury the one provider that genuinely broke. A provider that has not searched for 6 hours is not reported here either: nothing is reaching it at all, which is a different fault.

Drag rows in the list to reorder. Lower index = tried earlier. The default ordering favors big-dataset providers (OpenSubtitles, Jimaku, SubDL) with niche providers as fall-throughs.

SettingDefaultValuesEffect
Auto-prioritise providersontoggleRe-rank dynamically based on recent success rate. Manual order still respected as the seed.
Provider delay (ms)00–5000Sleep between consecutive calls to the same provider. Some throttle aggressively per-IP.

Sublarr protects upstream providers with a circuit breaker per provider:

SettingDefaultValuesEffect
Rate limiting enabledontoggleHonor per-provider quotas declared in the provider config.
Circuit-breaker threshold51–20Consecutive failures before opening the breaker.
Circuit-breaker cooldown (s)30010+How long the breaker stays open before retrying.
Auto-disable cooldown (min)301–10080Hard auto-disable after persistent failures (separate from breaker).

See Circuit Breaker for the full state-machine reference.

SettingDefaultValuesEffect
Cache TTL (min)51–1440Per-provider search-result cache lifetime.
Per-provider cache countshown in rown/aClick row’s cache section → Clear to drop.
Clear all cachesheader buttonn/aDrops every provider’s cache.
SettingDefaultValuesEffect
Max concurrent provider searches31–10Global cap on parallel provider calls.
Per-provider concurrencyvariesper-provider overrideSome providers handle higher parallelism; others throttle.
Search timeout (s)305–300Global fallback timeout when a provider doesn’t declare its own.

Connect a private subtitle server — or adapt an existing REST API — without writing a plugin. The provider speaks a small documented search/download contract and is configured entirely through settings; no third-party code is executed.

SettingConfig keyDefaultEffect
Base URLcustomapi_base_url(empty)Root of your server. http/https only. Leave empty to keep the provider inactive.
Search pathcustomapi_search_path/searchAppended to the base URL for searches.
Download pathcustomapi_download_path/download/{id}Appended for downloads; {id} is substituted per result.
Results pathcustomapi_results_pathresultsDot-notation path to the result array inside the JSON response.
Field mapcustomapi_field_map(empty)JSON object mapping Sublarr’s result fields to paths in your response. Only needed when your API uses different field names.
API keycustomapi_api_key(empty)Sent as a header when set.
API key headercustomapi_api_key_headerX-API-KeyHeader name carrying the key.
Extra paramscustomapi_extra_params(empty)JSON object of additional query parameters sent on every search.
Instancescustomapi_instances_json(empty)JSON array of further independent instances — each with its own stats, health state and circuit breaker.

Multiple instances register as customapi-<name> and behave like separate providers throughout the UI.

The full request/response contract, including the field-map syntax and worked examples, lives in docs/CUSTOM_PROVIDER_API.md in the Sublarr repository.

The Marketplace tab on this page opens the Plugin Marketplace — install community-maintained providers from a curated list or sideload your own ZIPs.

If you’ve added a provider you don’t want shown in the search but you don’t want to delete (preserving config + history), hide it:

SettingEffect
Hidden providersComma-separated provider names. Hidden providers don’t appear in search dropdowns or in the priority list.

Useful for providers tied to obsolete accounts that you might re-activate later.

After the initial provider list comes back, Sublarr can apply a re-ranking pass using extra signals (download counts, age, reviewer ratings). Configurable on this page:

SettingDefaultValuesEffect
Provider rerankingofftoggleMaster switch for the rerank pass.
Min downloads for boost200–10000Candidates with fewer downloads don’t get the recency boost.
Max modifier500–100Absolute score modifier cap.
SettingDefaultValuesEffect
Max subtitle size (KB)2048100–10240Reject subtitles above this size. Protects against malicious uploads and bandwidth abuse.