Capture a live class
A live class cannot be repeated, so the first minute matters more than anything after it.
Five minutes before
./sp-mode live(or leave auto-switch on).- Check
SP_LIVE_APPSin.envcontains the name macOS reports for your meeting app. - Make sure no evaluation is running: the model server should have the generator loaded.
- Click Start capture in the app. Never start capture from a terminal: the shell does not hold the recording permissions, and the recorder will wait forever.
The first minute: prove data is being saved
A green light is not proof. Check the recorder's health endpoint:
curl -s http://127.0.0.1:3030/health | python3 -m json.tool | grep -E "frames_db_written|capture_attempts|last_audio_timestamp"
frames_db_writtenmust rise while the meeting window is in front.- If
capture_attemptsrises andframes_db_writtenstays at 0, every frame is being skipped. The usual cause is a browser-site allowlist left over from portal mode;sp-startclears it in live mode, so stop and start capture once from the app. last_audio_timestampmust be within the last minute.
During class
- Keep the meeting window in front. If another window of the meeting app (its home screen, a chat pop-out) is in front, the slides are not captured and that window is.
- Do not run builds or evaluations: they compete for the one model slot.
After class
./lecture build --from 10:00 --to 11:30 --title "Week 3 live class"
--from and --to are today's local time. A time window is used because audio often starts before the first slide and a long static slide must not split the session.
If the meeting app gives you its own transcript, put it in the lecture folder and merge it:
./transcript_ref.py lectures/<session> lectures/<session>/meeting_transcript.txt
./lecture build --from 10:00 --to 11:30 --title "Week 3 live class" # rebuild: notes now use the merged transcript
This also writes transcript_eval.json with the word error rate of the local transcript against the reference.
Check before you trust the notes
manifest.json: isslidesplausible for the length of the class? A handful of slides for a long class means frame extraction failed; the build log says why.- Read the notes against the transcript for: an answer invented for a question the teacher deferred, one value where two were given, and names spelled from speech instead of from slides.