Drop the original source media — the
same version your subtitle file is timed against. Your
browser fingerprints it locally (nothing uploads) and
gives back a small .afs.
You only need to be correct once: get
the SRT synced against the source one time, then ship
the .srt alongside the .afs
and the pair works every single time — re-cuts,
broadcast versions with ad breaks, third-party rips,
transcodes — without ever re-syncing the subtitles.
Don't have an SRT yet? The
transcribe-generate
CLI produces a matched .afs +
.srt in one step from any audio or video.
Done
Download .afs
The .afs only does its job paired with a
subtitle file timed to the same source
you just fingerprinted. Send both
files (.afs + .srt) to
whichever device should show subtitles — AirDrop,
Drive, email, any transfer works. Then on that device
open
listen.html
and pick both files from local storage, or scan the QR
on the right.
Something went wrong.
Runs locally with the same chromaprint WebAssembly the
demo uses. For batch jobs, see tools/afs-generate
in the
CLI.