Overview
After a live class ends, the recording is uploaded to GCS. Once the recording URL is available, you can trigger captioning. The pipeline is:
- Mark
captionsStatus = PROCESSINGon the class. - Stream the recording into OpenAI Whisper (
whisper-1withverbose_json+ segment timestamps). - Convert Whisper segments into WebVTT.
- Store the VTT + transcript URL on the class. Mark
captionsStatus = READY.
On failure the status flips to FAILED, the original recording is unaffected, and you can retry.
Triggering caption generation
- Open the class detail page from your tutor dashboard.
- If the recording is uploaded, you'll see a Generate captions button next to the playback controls.
- Click it. The button changes to Processing… and the API call returns immediately — the actual transcription runs in the background.
PROCESSING, the API returns "already generating" without starting a second job. To force a re-transcription after failure, click again.Status & timing
- NONE — captions never generated.
- PROCESSING — Whisper job in flight.
- READY — VTT and transcript are saved.
- FAILED — see the error log; retry is safe.
Typical timing: a 60-minute class transcribes in 3-6 minutes. Cost is a small Whisper API charge (~$0.36 per hour of audio at current OpenAI rates).
Caption format (WebVTT)
Captions are stored as standard WebVTT — one segment per Whisper chunk, timestamps formatted 00:MM:SS.sss. Example:
WEBVTT 00:00:00.000 --> 00:00:04.520 So today we're going to look at Newton's first law… 00:00:04.520 --> 00:00:09.140 An object at rest stays at rest unless acted on by a force.
Where students see captions
Once the status is READY, the class video player picks up the VTT track automatically and shows a "CC" toggle. Students can also download the full transcript from the class page.
AI-generated class notes
Captions are the input to AI study notes: a separate pipeline takes the transcript and produces a structured revision document (sections, bullet points, key formulae) ready for students to download as PDF or read inline.
Class notes are auto-generated for every class with a transcript; you can also trigger a regeneration from the class page if you've edited the transcript or want a fresh pass.