AI video generation and marketing automation platform. Text-to-video, image-to-video, and virtual character generation in one Flask app — with a built-in job manager and multi-platform marketing agent.
- Text-to-Video — Generate animated videos from text prompts
- Image-to-Video — Transform still images into video with motion effects (zoom, pan, rotate)
- Virtual Character Generation — Animated character videos with configurable attributes
- Marketing Automation Agent — Content strategy, campaign management, and distribution to Instagram, TikTok, YouTube Shorts, Facebook, and Twitter
- Job Manager — Background job processing with status tracking and progress callbacks
| Layer | Stack |
|---|---|
| Backend | Python, Flask, SQLAlchemy (SQLite) |
| Video | OpenCV, Pillow, NumPy |
| Frontend | Vanilla JavaScript, HTML/CSS (SPA) |
| Architecture | Blueprint-based Flask with service layer |
git clone https://github.com/JaysWebDev/VidGen.git
cd VidGen
# Create virtual environment
python3 -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
# Set required env vars
export SECRET_KEY="your-secret-key-here"
# Run the app
python main.pyOpen http://localhost:5000 in your browser.
VidGen/
├── main.py # Flask application entry point
├── index.html # Frontend SPA
├── app.js # Frontend JavaScript
├── video_generation.py # Video generation routes
├── video_generator.py # Video generation service
├── marketing_agent.py # Marketing automation service
├── marketing.py # Marketing routes
├── job_manager.py # Background job management
├── user.py # User model and routes
└── requirements.txt
# POST to the API
curl -X POST http://localhost:5000/api/generate \
-H "Content-Type: application/json" \
-d '{"prompt": "A sunrise over mountains", "duration": 5}'Upload a still image through the web UI and configure the motion effect (zoom in/out, pan left/right, rotate).
# Schedule a campaign via the API
curl -X POST http://localhost:5000/api/marketing/campaign \
-H "Content-Type: application/json" \
-d '{"platforms": ["instagram", "tiktok"], "content": "...", "schedule": "2026-06-01T09:00:00"}'Extended documentation lives in the docs/ folder:
Part of the JaysWebDev toolchain.