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 describer→measured 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
Demo
The hackathon submission period has ended, so the paid Describe it live step is deactivated. Everything else is free to explore: pick any lecture marked described to play its audio-description track and see its measured cost and provenance.
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