Visual Quran
Automated Media Pipeline & XML Generation Engine
Visual Quran is an end-to-end media automation platform that transforms raw audio recitations into frame-accurate, edit-ready Adobe Premiere Pro project packages with multi-language subtitle synchronization and AI narration. It was built as an internal Nayatel product and has been used across more than thirty production releases.
Challenge
Editing a single surah required hours of manual audio-video synchronization, subtitle timing, asset selection, and timeline assembly. The pipeline had to run multi-minute AI jobs without blocking the API, produce frame-accurate output at 30 FPS, and hand editors a package that opened cleanly in Premiere Pro — while supporting English and Urdu narration and subtitles.
Architecture
A Next.js operator console submits jobs to FastAPI. Celery workers consume the queue and run Whisper ASR for ayah-level timestamps, text-to-speech for dual-language narration, and asset retrieval for matching footage. MinIO stores audio and video artifacts, decoupling workers from the API. The FCPXML builder emits a 30 FPS timeline with sequenced cuts, subtitle tracks, and audio stems for Premiere Pro.
Key decisions
Asynchronous workers over synchronous requests
Celery and Redis decouple long-running AI jobs from the API, so the operator console stays responsive during multi-minute media processing.
Whisper alignment as the timing source
ASR timestamps generate ayah-level anchors; those anchors drive frame-accurate cuts and subtitle placement instead of manual sync.
MinIO as the artifact boundary
Object storage gives workers a shared, durable handoff point for audio, video, and intermediate assets without coupling them to the API filesystem.
FCPXML as the integration contract
Editors keep Premiere Pro. The pipeline meets them in their existing tool by generating native, frame-accurate project XML.
Results
- 2–10 minutes of generation per surah
- 30+ production releases
- Extended mandate after executive demo
- Zero manual audio-video synchronization