A modern, self-hosted FPV (First-Person View) session browser and sharing app. Browse your recorded sessions, preview videos and images, manage tags, generate share links, and download original filesβall in a clean, dark UI.
Fast to set up, easy to use, and production-ready with Gunicorn + Nginx.
- Features
- Quickstart (Local)
- Project Structure
- Auto organize & rename
- Deployment (VPS)
- Tech Stack
- License
- Session overview with stats (videos, images, size, duration)
- Inline video player and image grid with lightbox
- Share links for single videos (public share page with embed meta tags)
- Download buttons for videos, logs, blackbox files, and metadata
- Tags: add/remove and save per session
- Admin Settings page: rebuild sessions index, manage users and permissions, upload drone images, set FPV base folder
- Consistent dark UI with Bootstrap 5 + Font Awesome icons
- Tames your FPV file jungle: scans your raw camera/goggle/blackbox dumps, auto-sorts them into clean session folders, and can optionally rename files to a consistent pattern
- Automatic thumbnails for videos and images; handy session cover art
- Powerful search and filter by date, tags, and filename
- Works even without the web UI: the organizer scripts build the tidy folder structure that the app can browse later
- Create and activate a virtual environment
python -m venv .venv
# Windows (PowerShell)
. .venv\\Scripts\\Activate.ps1
# Linux/macOS
# source .venv/bin/activate
- Install dependencies
pip install -r FPVSession/requirements.txt
- Run the app (development)
python FPVSession/wsgi.py
For production, use Gunicorn and (optionally) Nginx. See the Deployment section below.
My_FPV/
ββ FPVSession/
β ββ flask_app/
β β ββ app.py, templates/, static/, utils/
β β ββ sessions_config.json, users.json
β ββ wsgi.py
β ββ requirements.txt
ββ how-to-deploy/
ββ deploy.readme.en.md
ββ gunicorn.my_fpv.service
ββ nginx.conf
Beat the FPV media chaos. FPVSessions can scan your source folders and:
- Group files by session (date/time range),
- Create a clean, consistent folder layout (e.g., FPV_Camera, Goggles, Blackbox, IMG, Meta),
- Optionally rename files to a canonical, sortable pattern,
- Generate thumbnails for quick browsing.
Where: see auto_session_sorter/
for helper scripts like 1._Auto_rename.py
and 2._Auto_session.py
.
Use the organizer to prepare your library even if you donβt run the web UI yetβthe app will happily index and browse the structure later.
A complete step-by-step guide (system user, venv, systemd service, and Nginx reverse proxy):
You can also find example service and Nginx configs here:
how-to-deploy/gunicorn.my_fpv.service
how-to-deploy/nginx.conf
- Backend: Flask
- Frontend: Bootstrap 5, Font Awesome
- Server: Gunicorn (WSGI), optional Nginx reverse proxy
This project is provided as-is. Add your chosen license here (e.g., MIT, Apache-2.0).