VisionVault is a modern offline movie & TV library manager built with CustomTkinter, Flask, and SQLite.
Manage your personal collection, browse cinematic poster grids, track watch history, launch local files, and access your library through the built-in Web UI / TV Mode for browser and TV playback.
No accounts • No cloud • No subscriptions • 100% local
Optional Wikipedia-powered metadata and posters make it easy to enrich your collection while keeping everything private and under your control.
A personal media vault designed for collectors who want a clean desktop experience with the flexibility of local web playback.
- Add movies by title or file
- Automatic title and year detection from filenames
- Local SQLite database storage (
movies.db) - Edit full metadata:
- Title
- Year
- Genres
- Runtime
- Resolution
- Overview
- Poster
- File path
- Delete entries cleanly
- Track watch history
- Launch movies directly from the desktop app
- Import entire TV show folders
- Automatic show and episode structure
- Episode naming format:
S01E01 - Episode NameS01E02 - Episode Name
- Manual editing of:
- Episode posters
- Descriptions
- Metadata
- Progress tracking per show
- Automatic show poster inheritance from episode artwork
- Optional poster propagation across episodes that do not already have artwork
- Launch a browser-based VisionVault TV interface directly from the desktop app
- Browse your library from another device on your local network
- Stream movies directly in-browser
- TV-friendly navigation layout for couch or remote-style use
- Dedicated sections for:
- Continue Watching
- Movies
- Shows
- Recently Added
- Built-in movie detail pages, stats page, and full movie library page
- Browser playback now saves watch progress
- Resume movies from your last saved position
- Resume and Start Over options appear on supported items
- Completed playback clears saved progress automatically
- Browser playback and desktop stats stay in sync
- Poster-focused tiled layout
- Uniform sizing with clean alignment
- Clamped and wrapped titles without stretching
- Dense, directory-style browsing
- Fully integrated with:
- Sorting
- Filters
- Show navigation
- Right-click context menu
- Keyboard navigation
- Clean detailed list layout
- Highlighted selection
- Larger readable text spacing
- Fast keyboard-friendly browsing
- Live search by title
- Filter by:
- All
- Watched
- Unwatched
- Genre filter (auto-generated)
- Sort by:
- Title A-Z / Z-A
- Year up / down
- Watched up / down
- Recently added / oldest added
- Total movies, shows, and episodes
- Watched vs unwatched breakdown
- Total watch counts
- Top watched movies and episodes
- Most common genres
- Recently added items
- Full keyboard navigation support in the desktop app
- Shortcuts include:
- Enter to play
- Space to mark watched
- E to edit
- Delete to remove selected item
- Backspace / Escape to return from show episode view
- Smooth auto-scroll keeps selected items visible while browsing
- Multiple accent color themes
- Supports Dark / Light / System appearance modes
- Theme styling updates buttons, highlights, borders, and dialog accents
- Cleaner desktop-style menu bar for app controls
VisionVault automatically remembers:
- Window size and position
- Split panel layout
- Dark / Light / System appearance
- Active theme
- Last selected item
- Grid or List view mode
Saved locally in:
movie_inventory_settings.json
Posters are cached locally in:
posters/
- Type into Add by Title...
- Click Add
- Optionally fetch:
- Wikipedia metadata
- Poster art
- Save
- Click Add by File
- Select a video file
- VisionVault will:
- Guess title and year
- Detect runtime and resolution using ffprobe if installed
- Edit if needed and save
- Click Import TV Show
- Select a folder of encoded episode files
- VisionVault will build the show and episode structure automatically
- Edit posters or metadata if needed
- Play opens your movie in the default OS player from the desktop app
- Successful desktop playback increments watch count automatically
- In TV Mode, movies can be streamed directly in-browser
- Browser playback supports saved resume progress
- You can also manually use Mark as Watched
- Open the TV Mode menu from the desktop app
- Start the TV web interface
- Open the provided local network URL on your browser or TV
- Browse and stream your collection from the web interface
- Internet is only required for Wikipedia metadata fetching
- The desktop app works fully offline otherwise
- TV Mode works over your local network
- All posters are stored locally for fast loading
- If you move files, update the file path in Edit Details
- CustomTkinter
- Flask
- SQLite
- Wikipedia Action API
Grab the standalone Windows .exe from the Releases page when a new version becomes available.
git clone https://github.com/VisionDepth/VisionVault.git
cd VisionVaultconda create -n VisionVault python=3.13
conda activate VisionVaultpython -m venv venvpip install -r requirements.txtpython visionvault.pyvault_core.py,visionvault.py, andvisionvault_web.pyshould stay in the same project folder- TV Mode uses the same local database as the desktop app
- Posters are stored locally in the
posters/folder - Settings are stored in
movie_inventory_settings.json ffprobeis recommended for automatic runtime and resolution detection
