📖 Quran Shortly - Recitation Video Generator
Quran Shortly is a premium, client-side web application designed to generate high-definition social media videos (YouTube Shorts, TikTok, Instagram Reels, widescreen) of Quran recitations. Users can upload recitation audio, choose Surahs and verse ranges, sync typography in real-time, custom-design overlays with glassmorphism and gold calligraphic themes, and compile crystal-clear videos with mixed audio tracks—all directly in the browser.
✨ Features
🎙️ 1. Setup & Intelligent Quran Services
- Drag-and-Drop Audio Uploader: Easy file ingestion for MP3, WAV, and M4A recitation clips.
- Autocomplete Surah Search: Quick search through all 114 Surahs (in English and Arabic script) with sliders for precise Ayah ranges.
- Unified Cloud API Ingestion: Fetches Uthmani Calligraphy script (
quran-uthmani) and Sahih International translation (en.sahih) in a single network round-trip.
⏱️ 2. Real-Time Timeline Synchronizer
- Spacebar / Tap-to-Sync: A highly satisfying tapping board to mark the beginning and end of each verse in real-time.
- Manual Micro-Adjustments: Side timeline panel with millisecond adjustment boxes for absolute syncing precision.
🎨 3. Elegant Dark-Glass Customizer
- Dynamic Layout Dimensions: Toggle between 9:16 Portrait (Shorts/TikTok) and 16:9 Widescreen (YouTube) configurations.
- Generative Background Loops: 4 CORS-safe animated ambient loop themes (Aurora Orbit, Sunset Glow, Cosmic Nebula, and Deep Oasis) or custom user-uploaded images and videos.
- Frosted Glass Cards: Premium glassmorphic caption cards utilizing blur filters and sleek borders.
- Breathing-Room Typography Layouts: Mathematically un-tangled calligraphy vertical grids, separating Arabic Calligraphy lines and English translations to eliminate overlaps.
- Islamic Gold Theme: Dedicated high-contrast colors and custom glows for Uthmani scripts.
🌀 4. Smooth Verse Transitions
- Bessel-Curve Opacity Transitions: Seamlessly fades verses in (first
350ms) and out (final350ms) for a premium flow. - Untruncated Final Rendering: The last verse is kept active until the absolute end of the audio track, resolving the blank frame issue during recording.
🌍 5. Native Bilingual Localization (EN / AR)
- Automatic RTL Mirroring: Full native support for Right-to-Left (RTL) layout flows when العربية is selected.
- Language Toggler: Switch instant translation dictionaries (
locales.js) across the header, wizard HUD, upload panels, design settings, and compile modules.
🎥 6. HD High-Speed Canvas Exporter
- Frame-by-Frame Recording: Captures standard
720p/1080pframes synchronously at 30 FPS. - Web Audio API Mixing Node: Captures and mixes the original narration audio directly into the output stream for crystal-clear sound.
- High-Bitrate MediaRecorder: Assembles high-bitrate WebM video files ready for social sharing.
🛠️ Tech Stack
- Core: React 19 + Vite
- Styling: Vanilla CSS (Premium responsive custom theme, glassmorphism variables, dark-mode gradients)
- Icons: Lucide React
- API: Al-Quran Cloud API
🚀 Getting Started
📋 Prerequisites
- Make sure you have Node.js (v18+) installed.
💻 Installation
- Clone or copy the repository files into your workspace directory.
- Open a terminal (PowerShell/Bash) in the project directory.
- Install dependencies:
npm install
⚡ Running the App
Start the local development server:
npm run dev
Open your browser and navigate to the local address displayed in your terminal (usually http://localhost:5173 or http://localhost:5174).
📦 Building for Production
To bundle the application into a highly optimized client bundle in the /dist directory:
npm run build
📂 Project Structure
quran_shortly/
├── src/
│ ├── components/
│ │ ├── AudioUploader.jsx # Drag & Drop audio panel
│ │ ├── SurahSelector.jsx # Autocomplete Surah & Range sliders
│ │ ├── SyncTimeline.jsx # Tapping timeline and manual inputs
│ │ ├── StyleEditor.jsx # Customizer panels and transition toggles
│ │ ├── VideoPreview.jsx # High-fidelity live canvas loop renderer
│ │ └── VideoExporter.jsx # MediaRecorder-based HD video compiler
│ ├── services/
│ │ └── QuranService.js # Cloud API aggregator
│ ├── locales.js # Central EN/AR translation dictionaries
│ ├── App.jsx # Wizard coordinator & RTL layout toggler
│ ├── index.css # Unified dark-glass styles
│ └── main.jsx # React mount entry
├── index.html # Main application shell with SEO tags
├── package.json
└── vite.config.js
🎬 How to Generate Your First Video
- Upload: Select an audio recitation file (
MP3,WAV, orM4A). - Select Verses: Search for a Surah and slide the range bars to define your Ayah coordinates. Click Next Step.
- Sync: Play the audio. Hit the Spacebar or click the big card in real-time as each verse begins. Tap once more at the end of the recitation to set the final cutoff. Click Next Step.
- Design: Select vertical or widescreen, customize card backdrops (frosted glass vs solid black), change Arabic fonts (Scheherazade vs Amiri), adjust size sliders, select gold themes, toggle English subtitles, and select a smooth transition.
- Export: Go to Compile & Export, click Start Video Compilation, wait for the progress bar to finish frame stitching, and hit Download Video!
📜 License
Created for educational and spiritual dissemination purposes. May it be a source of benefit and blessing.
Auto-generated from the GitHub repository.