VideoAuth is a Django-based AI video authentication and digital-forensics platform designed to analyze uploaded videos and estimate their authenticity using multiple forensic signals.
π Live Demo: https://videoauthenticator-bs82.onrender.com/
VideoAuth analyzes digital video files and generates a forensic report containing authenticity indicators, deepfake risk, metadata/container information, visual quality signals, and other analysis metrics.
The application provides a simple web dashboard where users can:
- Create an account and log in securely
- Upload video files for forensic analysis
- View analysis results and authenticity scores
- Review previously analyzed videos
- Search analyzed videos
- Export analysis certificates as JSON
- Delete analyzed video records
- Multi-layer video authenticity analysis
- Deepfake risk estimation
- Authenticity scoring
- Metadata and container analysis
- Spatial sharpness / smoothing analysis
- Temporal and visual forensic indicators
- Video duration and technical information
- Total videos analyzed
- Authentic videos detected
- Deepfake/suspicious video count
- Average authenticity score
- Search and filtering by result type
- User registration
- Login/logout
- User-specific video records
- Django authentication system
- Detailed forensic result page
- Authenticity and AI-generation likelihood scores
- JSON certificate export
- Video deletion functionality
| Technology | Purpose |
|---|---|
| Python 3.12 | Core programming language |
| Django 5.2 | Web framework |
| PostgreSQL | Production database |
| SQLite | Local development database |
| OpenCV | Computer vision and video processing |
| NumPy | Numerical processing |
| Pillow | Image processing |
| Matplotlib | Visualization/analysis |
| ImageIO | Media processing |
| Gunicorn | Production WSGI server |
| WhiteNoise | Static file serving |
| dj-database-url | Database configuration |
| Render | Cloud deployment |
| Git & GitHub | Version control |
VideoAuthenticator/
β
βββ video/
β βββ migrations/
β βββ templates/
β βββ admin.py
β βββ apps.py
β βββ forms.py
β βββ models.py
β βββ urls.py
β βββ utils.py
β βββ views.py
β βββ tests.py
β
βββ videoauth/
β βββ settings.py
β βββ urls.py
β βββ asgi.py
β βββ wsgi.py
β
βββ static/
β βββ css/
β βββ style.css
β
βββ templates/
β βββ base.html
β βββ login.html
β βββ register.html
β
βββ build.sh
βββ manage.py
βββ Procfile
βββ requirements.txt
βββ .python-version
βββ .gitignore
βββ README.md
git clone https://github.com/ayush5735/VideoAuthenticator.git
cd VideoAuthenticatorpython3.12 -m venv venvActivate it:
macOS/Linux
source venv/bin/activateWindows
venv\Scripts\activatepip install -r requirements.txtpython manage.py migratepython manage.py collectstatic --noinputpython manage.py runserverOpen:
http://127.0.0.1:8000/
For production, configure the following environment variables:
SECRET_KEY=your-production-secret-key
DEBUG=False
DATABASE_URL=your-postgresql-database-url
ALLOWED_HOSTS=your-domain.com
For local development, the project can use SQLite as the default database.
Never commit production secrets or database credentials to GitHub.
The application is deployed on Render.
./build.shgunicorn videoauth.wsgi:application --bind 0.0.0.0:$PORT --timeout 120The deployment uses:
- Python 3.12
- Gunicorn
- PostgreSQL
- WhiteNoise
- Django migrations
- Static file collection
https://videoauthenticator-bs82.onrender.com/
A simplified workflow is:
Upload Video
β
Read Video & Metadata
β
Extract Frames / Video Information
β
Run Forensic Analysis
β
Calculate Individual Signals
β
Generate Authenticity / Deepfake Risk
β
Create Forensic Report
β
Display Result & Export Certificate
A typical analysis report can include metrics such as:
Verdict: VERIFIED REAL CAMERA FOOTAGE
Deepfake Risk: LOW RISK
Authentic Real: 97.0%
AI Generation Likelihood: 3.0%
Metadata & Container: 100.0%
Spatial Sharpness / Smoothing: 97.3%
Note: These scores are forensic indicators generated by the application's analysis pipeline. They should not be treated as absolute proof of authenticity or manipulation.
- Production
SECRET_KEYshould be stored as an environment variable. DEBUGshould be disabled in production.- Database credentials should never be committed to source control.
- Uploaded media should be handled using appropriate production storage.
- Do not upload sensitive/private videos to a public demo without appropriate authorization.
The application uses Django's file storage for uploaded media.
Cloud web-service filesystems can be ephemeral, meaning uploaded videos may not persist across service restarts or redeployments unless persistent or external object storage is configured.
For a production-scale deployment, consider:
- Amazon S3
- Cloudinary
- Google Cloud Storage
- Another object-storage provider
- A suitable persistent disk configuration
- Advanced deepfake detection models
- Face-level manipulation detection
- Audio deepfake analysis
- Blockchain-based media provenance
- Cloud object storage
- Background processing for large videos
- Real-time processing status
- PDF forensic reports
- API endpoints for third-party integrations
- Advanced analytics dashboard
- Automated benchmark testing on public deepfake datasets
Ayush Singh
B.Tech β Computer Science & Engineering
GitHub: https://github.com/ayush5735
This project is licensed under the MIT License.