Small Flask app and processing scripts to convert uploaded images + description into a short vertical "reel" video using ffmpeg and ElevenLabs text-to-speech.
Quick start
- Create a virtual environment and activate it (zsh):
python3 -m venv .venv
source .venv/bin/activate- Install dependencies:
pip install -r requirements.txt- Create a
.envfile from the example and add your ElevenLabs API key:
cp .env.example .env
# then open .env and replace the placeholder with your real key- Run the Flask app (development mode):
python main.py- Run the background processor that creates reels (in another terminal):
python generate_process.pyNotes
- Put uploads under
user_uploads/<uuid>/(the web UI does this when you POST files via/create). - ffmpeg is required on your machine and must be available in PATH for
generate_process.pyto create reels. - Keep your
.envsecret; do not commit it.
Troubleshooting
- If Python raises an exception about
ELEVENLABS_API_KEYmissing, ensure.envexists and containsELEVENLABS_API_KEY. - If ffmpeg subprocesses fail, run the
ffmpegcommand printed in the script manually to see more details.