Bazarr+ vs Upstream Bazarr: I Audited Both Codebases, and the Fork Won
#Dev

Bazarr+ vs Upstream Bazarr: I Audited Both Codebases, and the Fork Won

LavX Tools Showcase
5 min read

Forks usually fall behind. So I pulled both codebases and counted six months of commits, lines, tests, and features. Bazarr+ out-builds its parent on nearly every axis, and the test suite backs it up.

Bazarr+ v2.4.0 Prism

Forks usually die loud and ship little. They open with a manifesto, collect a few stars, and drift a year behind the project they split from. So when Bazarr+, a hard fork of the popular subtitle manager Bazarr, claimed it had not merely kept pace with upstream but pulled ahead, I did the unglamorous thing. I pulled both codebases and counted.

The verdict surprised me. Not because the fork is busy: busy is easy. Because the busyness holds up under scrutiny.

I counted instead of listening

Both projects develop on a development branch, so I measured the last six months on each, side by side: commits, lines of hand-written code, test coverage, supported runtimes, and shipped features. Marketing copy was ignored. Only the diff counts.

The activity gap is not subtle

Over six months, upstream Bazarr landed 247 commits on its development branch. The Bazarr+ ecosystem landed roughly 1,305 across its three repositories: the host application, a separate provider catalog, and an AI translation sidecar. That is more than five times the output.

My first reaction was the reviewer's reflex: commit count is vanity. A thousand commits can mean a thousand nervous tweaks. So I stopped counting commits and started measuring the thing they produced.

More code, and more tests to hold it up

The host application tells the story plainly. Bazarr+ carries about 42,700 lines of backend Python and 61,000 lines of frontend source, against upstream's 23,300 and 25,900. It is, bluntly, roughly twice the program.

Twice the code is a warning sign as often as a feature, so I went looking for the safety net. I found it. Bazarr+ ships 1,288 Python test functions across 139 files. Upstream has 246 across 34. A project moving five times faster while writing five times more tests is not vibe-coding its way forward. It is the opposite of the reckless-fork stereotype I arrived expecting.

Signal (last 6 months, dev branch) Bazarr+ Upstream Bazarr
Commits (ecosystem) ~1,305 247
Backend Python (LOC) 42,749 23,274
Frontend source (LOC) 61,360 25,864
Python test functions 1,288 246
Test files 139 34
Python versions in CI 3.12 to 3.14 3.10 to 3.13

What the extra code actually buys you

Volume only matters if it becomes capability, so here is what the fork shipped that upstream simply does not have.

A multi-tenant subtitle API. Bazarr+ split its single shared OpenSubtitles-compatible endpoint into a "Distribution Hub": named API keys, per-key rate tiers, provider scoping, and usage metering. If you serve subtitles to more than one client, this is a different class of tool.

Bazarr+ Distribution Hub

A plugin marketplace for providers. The biggest architectural bet is the Provider Hub: subtitle providers became installable plugins that update through a separate catalog instead of being welded to the application release. A provider breaks, you ship a catalog update, not a whole new version of the app. Upstream still bundles every provider into the core.

Bazarr+ Provider Hub Marketplace

Composed bilingual subtitles. Bazarr+ can merge two on-disk subtitle tracks into a single bilingual or trilingual file, as SRT or ASS, on demand or per language profile. It is the kind of feature language learners and mixed-language households actually ask for.

Combined bilingual subtitle in Jellyfin

Built-in AI translation. When no human-made subtitle exists for a language, Bazarr+ can make one. It ships an integrated AI translation engine, a companion service wired into the app, that converts an existing track into another language and can run in bulk across an entire library. Upstream offers nothing comparable in-app.

Bazarr+ bulk AI subtitle translation

A real subtitle editor. Bazarr+ includes an in-app subtitle editor with a video preview, a fullscreen toggle, keyboard shortcuts, and direct editing of combined bilingual files. Upstream points you at an external program. Fixing a mistimed line where you already manage the library is a small convenience until the night you actually need it.

Bazarr+ subtitle editor

Add multi-engine synchronization with side-by-side output comparison and host-side archive extraction, and the gap stops being cosmetic. It is a different feature surface.

The case for staying on upstream

A skeptic who only prints good news is just a different kind of marketer, so here is the other side.

The fork is, for practical purposes, one person. The provider catalog and the translation sidecar are effectively solo projects, and the host application is overwhelmingly the work of a single maintainer. That is a brutal bus factor. Upstream leans heavily on one maintainer too, but it lands more outside contributions and carries the weight of a much larger, more battle-tested install base.

Twice the code is also twice the maintenance, and the fork makes its own forward-looking trade: it has dropped Python 3.10 and 3.11, which upstream still supports. If you run an older stack, that matters.

And upstream is no corpse. It committed the day before I ran these numbers. It remains the conservative, broadly trusted baseline, and for a lot of users "boring and proven" is exactly the right answer.

Bazarr+ What's New wizard

The verdict

I came in expecting fork hype and found a project that out-builds its parent on nearly every axis I could measure, with a test suite that earns the benefit of the doubt on quality rather than asking for it.

For anyone who wants capability and pace, runs a current stack, and is comfortable depending on a small but relentless development engine, Bazarr+ is the better software today. Conservative operators who prize the largest install base and the slowest, safest baseline should stay on upstream, and will not be wrong to.

But "just a fork" undersells this one badly. It ships, it tests what it ships, and it has quietly become the more ambitious of the two.

Bazarr+ is free, open source, and self-hosted. The code lives on GitHub, with install guides and documentation at lavx.github.io/bazarr. Upstream Bazarr is here.

Comments

Loading comments...