An instructive video (about 10.7 minutes, 1920×1080) in Justin Sung's teaching style: big picture first, then chunks, then patterns, then details. It copies his method, not his voice or likeness.
- Source text: https://hekm.co/article/577 (Du'a Makarim al-Akhlaq, from Mafatih al-Jinan; supplication 20 of al-Sahifa al-Sajjadiyya)
- Video:
makarim-al-akhlaq.mp4(H.264 + AAC, with an Englishmov_textsubtitle track) - Subtitles:
makarim-al-akhlaq.srt - Narration transcript:
../../transcripts/makarim-al-akhlaq.txt
What it teaches
- Five rings, from the inside out: Core (faith, certainty, intention, action) → Self → Others → World → End.
- Pattern 1, counterweight: every gift is guarded from its shadow (for example, honour without arrogance, or being raised among people but lowered in my own eyes).
- Pattern 2, transformation: every negative becomes its opposite (for example, hatred into love, or backbiting into speaking well).
- Thread, humility: "after judging myself, all I have left is Your grace."
- Ends with a 5-step study plan: priming, ring/pattern tagging, linking, living one pair a day, and rebuilding the map from a blank page.
Scenes (18 scenes, 56 build steps)
- Hook: line-by-line becomes a blur
- List vs map
- Context and a pause prompt: "what would you ask for?"
- The five rings
- Core: faith → certainty → intention → action, repair, focus
- Pattern 1: counterweight (with a balance scale)
- Self: steadiness, the time request, self-audit (pause prompt)
- Pattern 2: transformations in relationships
- Others: two levels (protection, then excellence)
- Adornment of the righteous, chunked into 5 groups
- World: provision, strength, dependence on God alone
- World: money, the link back to the core, balanced pairs
- Pattern 2 inside your head (thoughts, speech)
- Core: the emotional centre (humility before forgiveness)
- End: how a life is sealed
- The whole du'a on one page
- How to learn it this week
- Close
Build
pip install edge-tts
python3 build.py # writes makarim-al-akhlaq.mp4 + .srt here; caches intermediates in build/
python3 build.py --shots # only render slide PNGs (for layout checks)
python3 build.py --clean # wipe build/ first
Pipeline: build.py writes one HTML slide per scene (styled by style.css). agent-browser screenshots each build step at 1920×1080. edge-tts (voice en-US-AndrewNeural, rate −4%) narrates each step. ffmpeg crossfades the steps into segments and concatenates them. Subtitles are timed per sentence, using each sentence's share of the step's audio.
Requirements: ffmpeg, agent-browser (Chromium), and the fonts Caveat, Noto Sans and Noto Naskh Arabic (fonts-noto-core). The SAY map in build.py changes how Arabic names are spelled for the speech engine only; the subtitles keep normal spelling.
Caveats
- Voice licence:
edge-ttsuses Microsoft's free read-aloud endpoint. It may not allow commercial or public posting. Swap the voice or record your own narration before publishing. - Interpretation: the five-ring structure and the two patterns are a study aid, not a scholarly commentary. The English lines are paraphrases, and the attribution follows tradition.