---
cursor:
  subagentId: "bc-2af2a6db-eafd-58e5-b1fb-3de55e4b95f0"
---

# How the model-keynote transcripts were made

Working note for `docs/research/model-keynotes.md` and `docs/sources/talks/`.

## Blocker and workaround

- YouTube refuses every request from this VM: `youtube-transcript-api` returns `RequestBlocked`, `yt-dlp` gets "Sign in to confirm you're not a bot" on all player clients, and even a real Chrome window on the VM display gets the `LOGIN_REQUIRED` interstitial. Public Invidious mirrors list captions but return empty bodies. Third-party transcript sites sit behind Cloudflare.
- No secrets were available to route around it (Doppler is not installed on the VM and no `DOPPLER_TOKEN` or proxy variables are set).
- Workaround: pull each recording from a non-YouTube host and transcribe locally.
  - archive.org mirrors: Jobs 1997 (`introducing-campaign-to-apple-internal`, which also carries a human caption file), Jobs 2005 (`SteveJobsStanfordCollegeSpeech`), Kennedy (`jfk_rice_speech`), King (`Dr.MartinLutherKingDr.IHaveADream...`), Balaji (`youtube-VqIJI8fW4PI`, `youtube-FkLxN4xkoi8`), Antonopoulos (`youtube-5ca70mCCf2M`), Victor (`BretVictorTheFutureOfProgramming`), Wood (`youtube-U_LK0t_qaPo`, DEVCON1 2015, added so that two crypto founders are covered), Harari (`YuvalNoahHarari_2018`), Karpathy (`youtube-LCEmiRjPEtQ`), Hassabis (`Artificial_Intelligence_and_the_Future_Demis_Hassabis`), Thiel (`Lecture5CompetitionIsForLosersPeterThiel`).
  - SlidesLive official session audio for Sutskever (`slideslive.com/39031672`, DASH audio track), fetched with `yt-dlp`.
- Transcription: `faster-whisper` on CPU (4 cores), `int8`. A first pass with `small` (about 18x real time) to read from; a second pass with `medium` (about 6x real time) for the files saved to the store. Neither model is uniformly better: on the Antonopoulos talk `medium` compressed sentences and `small` matched the WeUseCoins transcript more closely, so `small` was kept for that file. Where the saved pass still mis-heard a word that a published text confirms, the correction was applied and listed in the transcript header under "Corrections". Fidelity against published transcripts (share of 6-word runs found): Kennedy 88%, Jobs 1997 captions 86%, Karpathy 84%, Victor 81%, Sutskever 78%, Antonopoulos 65% (the published text is an edited version).
- Quote check: a script extracts every double-quoted string in the analysis and confirms it appears verbatim (case- and punctuation-insensitive) in the saved transcript. Final run: all transcript quotes pass; the only quoted strings not in the transcripts are Jacob's proposed lines and talk titles.

## Not obtained

- Vitalik Buterin, Devcon 7 "Ethereum in 30 minutes" (2024): only a YouTube ID and a dead Swarm hash in the Devcon archive; no published transcript. Devcon 6 same. Gavin Wood's DEVCON1 talk was used in its place.
- Sam Altman, DevDay 2023: YouTube only.
- Chris Dixon, "Read Write Own": only a podcast mirror and a login-walled C-SPAN item.
- Jensen Huang GTC, Dario Amodei, Hassabis Nobel lecture: YouTube only.

## Tooling left on the VM (not in the store)

`/tmp/talks/`: `.venv` (uv), `media/` recordings (about 2.3 GB), `out/` and `out_medium/` Whisper outputs, `published/` cross-check texts, `transcribe.py`, `write_store.py` (headers, corrections, export), `checkquotes2.py` and `checktimes.py` (verification), `assemble.py`, `draft/` section files. Re-running `write_store.py` then `assemble.py` regenerates the store files.
