cloudbase-mayhem-transcripts// transcripts with a synced player[about]

about

// someone else's podcast, transcribed by a machine

[the podcast]

Cloudbase Mayhem is Gavin McClurg's free-flight podcast, running since 2015. long conversations with the pilots, designers, instructors and competitors the sport is made of โ€” cross-country, acro, comps, and a great deal about what goes wrong and why. independent, and made in his own time.

[support]

the podcast is free and runs on listeners chipping in. if these conversations help your flying, support cloudbase mayhem โ€” that is where the episodes come from. this transcript site takes nothing and asks for nothing.

[this site]

a fan project, built in my free time and not affiliated with Cloudbase Mayhem. it adds one thing: a transcript you can read along with the audio.

the line being spoken is highlighted and the page keeps up on its own, so a fast passage, an accent or a name you did not catch is in front of you instead of needing a rewind. clicking any sentence moves the audio to that exact moment, and the whole episode sits on one plain page, so your browser's own find reaches every word of it.

every episode is also translated into German and French, so more than a decade of hard-won detail is not shut behind English.

the audio streams from the show's original Blubrry feed; nothing is re-hosted, and the show notes and links are Gavin's. the pages are plain static HTML on Cloudflare Pages: no accounts, no ads, no cookies, and nothing that follows you to other sites. page views are counted, and where you got to in an episode is remembered in your own browser โ€” [privacy] is the full account.

[how the transcripts are made]

by machine, end to end, on a single desktop GPU. no one proofreads them, so expect mistakes.

speech โ†’ text
faster-whisper (large-v3), which timestamps every individual word. that is what lets you click a sentence and hear the tone it was actually said in โ€” nothing is guessed or aligned to the audio afterwards.
who is speaking
pyannote (speaker-diarization-3.1) cuts the audio into speaker turns, which are then named from the host and the guest in the episode title, in order of first speech โ€” so a long conversation stays readable as one.
vocabulary
a hand-kept dictionary of paragliding terms, glider names and pilots, fed to faster-whisper as a hint before the run and used to repair near-misses afterwards, matched phonetically rather than by spelling, so a name the machine heard wrong still finds the right one. English inflection is never rewritten, which is the rule that keeps the repair from inventing its own mistakes.
translation
Gemma 4 12B, run locally through llama.cpp, translating one utterance at a time against a glossary that pins the jargon. timestamps and speaker names are copied across untouched, which is why you can read a translated page while following the English audio to the second.
publishing
the finished transcripts are built ahead of time into one static page per episode and language, with the waveform computed in advance so the player starts without downloading the whole hour first.

[found a mistake?]

a translated transcript is a machine translation of an already imperfect one. confidently wrong sentences do get through. when a line matters, listen to it โ€” the audio is the only thing here that is not a guess.

if you spot a mangled name, an invented sentence or a translation that has gone somewhere else entirely, report it from the transcript itself: select the words on any page, in any of its languages, and a [fix] button appears. that route is worth taking over the form below, because the selection carries the episode, the timecode and the exact wording with it โ€” everything needed to check the claim against the audio, none of which has to be described in a sentence.

every one is checked against the audio by hand before it lands. where it lands depends on which page it came from, and it is worth knowing which: a correction on the english is a correction to what was heard, so it is made before the translation runs and every language gets it. a correction on the german and the french is a correction to the wording, and reaches that language alone. so if a name is wrong everywhere, the english page is the one to report it from.

either way the transcript is rebuilt afterwards, which is a manual run on the same desktop โ€” expect weeks rather than minutes.

[anything else]

a speaker labelled wrongly for a whole turn, a page that will not play, an episode that is missing, a suggestion, or a question โ€” none of that is a word or two of transcript, so none of it fits the [fix] popover. this is where it goes.

// for a wrong word in a transcript, use [fix] on the page it is on โ€” it arrives with the timecode attached and is far quicker to act on than a description.

// no account. the message is stored so I can read it, an email address is used to reply and nothing else, and [privacy] says exactly what is kept and for how long.

curious how corrections actually work? [changelog] is how the pipeline was built and what each round of correction fixed โ€” the mistakes it makes, how they are found without anyone listening to the whole back catalogue, and how many have been settled so far.

[built with]

two halves, both deliberately plain:

the pipeline
Python. faster-whisper and pyannote on one desktop GPU, llama.cpp for the translation, and everything around them โ€” naming the speakers, repairing the vocabulary, writing the Markdown, the subtitles and the PDF โ€” is ordinary Python with no framework under it.
the site
Astro. every page is built ahead of time into static HTML, so nothing is rendered when you ask for it and there is no UI framework in the browser. the only JavaScript that ships is the player: wavesurfer.js for the waveform, and the code that keeps the transcript in step with the audio. it is served by Cloudflare Pages. the one thing that runs on a request is the small endpoint the forms post to.

[the numbers]

what is here today, counted off the transcripts themselves:

282
episodes โ€” English, with German and French where translated
353 h
of audio behind them
3.8 million
words of English transcript, before any translation

the back catalogue โ€” all 278 episodes โ€” was worked through in August 2026. three machines shared it, and one of them was a mistake worth knowing about:

278
episodes transcribed, split by speaker and translated into German and French, with a PDF each
69
of them came back with the transcriber stuck on a word โ€” 66 from a second implementation of Whisper on a laptop, hiding 85 minutes of audio between them. every one has since been repaired, most by hearing it again on the desktop's RTX 4070 Ti SUPER, and transcribing is now that card's job alone

all episodes ยท changelog