WCAG audio description, generated in place on Backblaze B2

Your archive is already accessible. It just hasn't been described yet.

Overtone reads each video out of Backblaze B2, describes the pauses in the dialogue (reading the board aloud: equations, code, and diagrams, not just naming them), and writes the described master back beside the original. Nothing leaves your bucket.

cost to describe a finished minute
$0.03 / min
$15 to $75 human describermeasured on a real MIT lecture
01
Read from B2
Stream source video straight out of the bucket. No upload, no egress to a vendor.
02
Find the pauses
Transcribe with word-level timings, then locate the silences a describer speaks into.
03
Describe and fit
A vision model reads the screen aloud; the narration is measured and shortened to fit.
04
Write back to B2
Described master, WebVTT, transcript, and a hash-verified manifest, beside the original.

Try it on the archive

archive · b2://overtone-archive-jon

Pick a lecture to hear its description track, or run a live describe on one that isn't done yet.

Run it on your own archive

the demo above is a live window into a real tool

These lectures live in one curated Backblaze bucket so you can try it in the browser. The tool itself is a small Python package and CLI that runs against any B2 bucket, at archive scale. Point it at a prefix and it describes every video that isn't already done, resuming safely, so a re-run over ten thousand lectures is cheap.

# Python 3.11+ and ffmpeg. Put your B2 + provider keys in .env, then: overtone doctor # check what's configured overtone scan lectures/ # what's describable, and what's done overtone describe lectures/week3.mp4 # one video, in place on B2 overtone archive lectures/ # the whole prefix, with resume
Read the setup