← Lesson Library

Sermon of the Pious — instructive video

7:57 · MP4 · Subtitles (VTT) · SRT

Transcripts

An 8-minute (477 s) narrated whiteboard lesson on Nahj al-Balagha, Sermon 193 (Imam Ali's description of the pious, given to Hammam). Source page: https://hekm.co/article/1289

It teaches top-down, in the style of Justin Sung: big picture first, then structure, then details, with "why does this follow?" links and a retrieval exercise at the end.

Files

Path What
sermon-of-the-pious.mp4 Final video. 1920×1080 H.264 + AAC, with an embedded English subtitle track.
sermon-of-the-pious.srt English subtitles, sentence-timed.
slides/000.png … slides/043.png The 44 rendered slides, one per narration step, in order.
build.py Full build: slide HTML → Chrome screenshots, edge-tts narration, ffmpeg assembly, SRT. The script text lives here.
../../transcripts/sermon-of-the-pious.txt Narration script grouped by chapter.

Lesson structure

  1. Context: Hammam asks to see the pious "as if looking at them"; Ali first answers in one line (be mindful of God and do good, Qur'an 16:128).
  2. Big idea: that one line is the top layer; the ~100 traits unpack it.
  3. Foundation: God needs no one's obedience, so piety is for our benefit.
  4. Root (map centre): "عظم الخالق في أنفسهم فصغر ما دونه في أعينهم": God is great, so the world is small.
  5. Four branches: inner world, night and day, how they see themselves, how they treat people.
  6. Pattern: every virtue has a counterweight, so the theme is balance.
  7. Ending + your turn: Hammam's death; redraw the map from memory, link 3 traits to the root, live one trait.

Caveats

Rebuild

Needs Python 3, pip install edge-tts (needs network), ffmpeg, and headless Chrome.

export VID_WORK=/tmp/vid CHROME=/path/to/chrome
mkdir -p $VID_WORK/fonts && cd $VID_WORK/fonts
curl -sSLO https://github.com/aliftype/amiri/releases/download/1.000/Amiri-1.000.zip && unzip -oq Amiri-1.000.zip && cp Amiri-1.000/Amiri-{Regular,Bold}.ttf .
curl -sSLO https://github.com/rsms/inter/releases/download/v4.0/Inter-4.0.zip && unzip -oq Inter-4.0.zip InterVariable.ttf
curl -sSL -o Caveat.ttf "https://github.com/google/fonts/raw/main/ofl/caveat/Caveat%5Bwght%5D.ttf"
python3 /path/to/build.py out.mp4   # also writes out.srt

TTS audio is cached in $VID_WORK/audio; set RETTS=1 to regenerate it. A fresh TTS run can differ slightly in timing.