An automated web application that creates short video reels from images and text using Python, Flask, ElevenLabs Text-to-Speech, and FFmpeg.
Users can upload images and add a text description, which is automatically converted into AI voice narration and merged with the images to generate a vertical social-media ready reel (1080×1920).
This project demonstrates Python automation, AI integration, and media processing.
- Upload multiple images through a web interface
- Convert text description into AI voice narration
- Text-to-Speech using ElevenLabs API
- Automatic reel creation using FFmpeg
- Vertical video format for Instagram Reels / YouTube Shorts
- Background processing system for automatic reel generation
- Python
- Flask
- FFmpeg
- ElevenLabs API
- HTML / Jinja Templates
project/
│
├── main.py # Flask web server
├── generate_process.py # Background worker for generating reels
├── text_to_audio.py # Converts text to speech
├── config.py # API keys and configuration
│
├── user_uploads/ # Uploaded images and text
├── static/
│ └── reels/ # Generated reels
│
├── templates/ # HTML pages
│
└── done.txt # Processed folders tracker
1️ User uploads images and a text description through the web interface.
2️ The server stores the images and description inside a unique folder.
3️ The background worker reads the description and converts it into AI voice narration using ElevenLabs.
4️ FFmpeg merges:
- Images
- Generated audio
to produce a vertical reel video (1080×1920) ready for social media.
git clone https://github.com/yourusername/ai-reel-generator.git
cd ai-reel-generatorpip install flask elevenlabsMake sure FFmpeg is installed on your system.
Edit config.py:
ELEVENLABS_API_KEY = "your_api_key_here"python main.pyOpen browser:
http://127.0.0.1:5000
python generate_process.pyThis script will automatically detect uploads and generate reels.
Generated reels will be saved in:
static/reels/
- Social media content automation
- Instagram reels creation
- YouTube Shorts generator
- AI content tools
- Automated storytelling videos
- Add subtitles to videos
- Multiple voice options
- Background music support
- Drag-and-drop upload
- Direct posting to social media
Adnan Ahmad BCA Student | Python Developer | AI & Automation Enthusiast