Skip to content

Sync Compare

Sync Compare lets you preview how a sync engine would re-time a subtitle before it touches the file on disk. Sublarr runs the engine into a temporary file, then shows you the original cue timeline next to the freshly synced one so you can judge the shift and decide whether to apply it. Nothing is overwritten until you explicitly apply a result.

This is the non-destructive counterpart to a direct Video-Sync: instead of running the sync and hoping it improved things, you look at the outcome first and keep the original if you don’t like it.

Original sidecar subtitle file reads Sync engine ffsubsync / alass temp file — sidecar untouched preview Original timeline Synced timeline +shift · per-cue Δ you pick Keep original — no change Apply → Video-Sync job
Sync Compare — non-destructive preview

Sync Compare puts two timelines next to each other:

  • Original — the current cue timings of your existing sidecar, exactly as they are on disk.
  • Synced — the same cues after a sync engine has re-aligned them, produced in a temporary file that never replaces your sidecar.

The engines are the same ones the rest of Sublarr uses:

EngineAligns againstReports a shift
ffsubsyncthe episode’s video (audio/speech detection)yes, a single offset
alassa reference subtitleno per-shift value

ffsubsync is the engine used when you launch the compare from an episode’s video, since it aligns directly against the audio track. When more than one engine produces a usable result, each appears as a small tab at the top of the comparison so you can switch between them.

Sync Compare is a per-sidecar action. On the series detail page, open the compact menu on a subtitle pill (for example the de or en pill under an episode) and choose:

  • Compare Sync (English)
  • Sync vergleichen (German)

Sublarr then computes the sync candidate. Because a real sync engine has to run, expect a short wait — the modal shows Computing sync candidates … while it works.

The modal is laid out as two columns, Original on the left and the synced engine output on the right:

  • Each row pairs a cue’s original start time with its synced start time.
  • Where the synced timing differs, the shifted cue is annotated with its per-cue delta (for example +1.20s), so you can see whether the correction is uniform or drifts across the file.
  • A summary line above the table states the engine’s overall shift (for ffsubsync), for example ffsubsync: shift +2.34s.

Times are shown as m:ss.cs. Long files are truncated to the first 200 rows for readability — the summary shift still reflects the whole file.

If no engine could produce a result, the modal says so and lists why per engine:

StatusMeaning
not installedthe engine binary isn’t available on the host
rejected (implausible shift)the computed shift exceeded the sanity threshold and was refused
errorthe engine ran but failed

Two choices sit at the bottom of the modal:

  • Keep original — closes the modal and changes nothing. This is also what the close () button does.
  • Apply <engine> — applies the selected engine’s sync.

Applying does not copy the previewed temporary file. Instead it starts the normal Video-Sync job for that subtitle and engine, so the sidecar is re-synced through the same proven, audited path the rest of Sublarr uses. You’ll see a Sync started confirmation; the sidecar updates once the job completes.