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
- 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).
- Big idea: that one line is the top layer; the ~100 traits unpack it.
- Foundation: God needs no one's obedience, so piety is for our benefit.
- Root (map centre): "عظم الخالق في أنفسهم فصغر ما دونه في أعينهم": God is great, so the world is small.
- Four branches: inner world, night and day, how they see themselves, how they treat people.
- Pattern: every virtue has a counterweight, so the theme is balance.
- Ending + your turn: Hammam's death; redraw the map from memory, link 3 traits to the root, live one trait.
Caveats
- The voice is AI TTS (
en-AU-WilliamMultilingualNeural, rate −4%). It is not Justin Sung's voice. - The English lines are a paraphrase, not an official translation. Have someone who knows the text check them before wide sharing.
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.