← Lesson Library

Sermon of al-Wasila — explainer video

11:36 · MP4 · Subtitles (VTT) · SRT

Transcripts

An ~11.6-minute (1920×1080, 30 fps) teaching video on the sermon of Imam ʿAlī known as al-Wasīla (خطبته المعروفة بالوسيلة), from Tuḥaf al-ʿUqūl by Ibn Shuʿba al-Ḥarrānī, pp. 67–72 (it ends at the top of p. 72). It teaches the sermon big-picture-first, in a Justin Sung–style way (method only; generic TTS voice, not his voice or likeness).

Files

Path What
al-wasila-explainer.mp4 Final video (H.264 + AAC, with an embedded English subtitle track)
al-wasila-explainer.srt Subtitles / timed narration
beats.py Narration script: one (scene, step, text) entry per beat
scenes.html All slides. Elements with data-step="N" appear from step N (data-hide removes them)
render.js Screenshots each beat's slide state with headless Chrome (Playwright)
build.py Full rebuild: TTS → frames → per-beat clips with crossfades → mp4 + srt
package.json, package-lock.json Node dependency (playwright-core) for render.js
source-pages/page-67.png … page-72.png Scans of the source pages, for checking the translations
../../transcripts/al-wasila-explainer.txt Plain narration transcript

Outline

  1. Hook: 100+ sayings read as a list are forgotten; flip the order (big picture → concepts → details).
  2. Context: the book, the compiler's note that this is an excerpt, and the shape of the text.
  3. Read the ending first: Muslim ← scrupulous (wara‘) ← detached (zuhd) ← resolute (ḥazm) ← intelligent (ʿaql). Big picture: the heart swings, intellect steers, we crash at the tongue and the ego, every choice compounds.
  4. Mind map with intellect at the centre and six branches: the swinging heart, wanting, the tongue, the ego, the tools of intellect, the long game. One scene per branch, with anchor quotes.
  5. Key link: the "talks much" slide-down chain and the closing chain share the wara‘ rung.
  6. Connections across the map, a place-the-saying quiz, three experiments for the week, and a redraw-from-memory recap.

Rebuild

Needs ffmpeg, ImageMagick (magick), Python 3 with edge-tts, Node.js, a Chrome/Chromium binary, and network access (TTS, plus Google Fonts: Kalam, Caveat, Amiri).

cd videos/al-wasila
npm ci
pip install edge-tts
CHROME=/path/to/chrome python3 build.py

Intermediates (audio, frames, clips) go to build/, which is git-ignored and safe to delete. Narration is en-US-AndrewMultilingualNeural at +6%. Each beat lasts 0.35 s lead + audio + 0.55 s (+0.4 s at a scene change), with a 0.5 s crossfade from the previous beat. TTS output can change slightly between runs.

Caveats