VisionVault is a sleek, lightweight offline movie library manager built with CustomTkinter + SQLite.
Organize your entire collection, track watch history, browse beautiful poster grids, and launch your movies directly from one clean interface.
Designed to be fast, private, and distraction-free: no accounts, no subscriptions, no cloud storage.
Everything lives locally on your machine, with optional Wikipedia-powered metadata and posters to instantly enrich your library.
Your personal movie vault, fully under your control.
- Add movies by title (manual entry)
- Add movies by file (auto guesses title + year from filename)
- Stores everything in a local SQLite database (
movies.db) - Edit details anytime: title, year, genres, runtime, resolution, overview, poster, file path
- Delete entries cleanly
- Mark as watched (increments watch counter)
- Play movie file from the app (and auto-increments watch count if the file successfully launches)
- List View and Grid View (poster tiles)
- Search by title (live filtering)
- Filter:
- All
- Unwatched
- Watched
- Genre filter (auto-generated from your library)
- Sorting:
- Title A→Z / Z→A
- Year ↑ / ↓
- Watched ↑ / ↓
- Recently added / Oldest added
- Total movies
- Watched vs Unwatched
- Total watch count
- Top watched titles
- Top genres
- Recently added
- Remembers your layout and preferences using
movie_inventory_settings.json:- Window size/position
- Split panel sash position
- Theme (Dark/Light/System)
- Last selected movie
- List/Grid view mode
- Posters are saved locally to
posters/
- Type a title into Add by Title...
- Click Add
- In the Edit dialog you can optionally:
- Fetch metadata + poster from Wikipedia
- Set year/genres/overview manually
- Click Save
- Click Add by File
- Select your movie file (
.mkv,.mp4,.avi, etc.) - The app will:
- Guess title + year from filename
- Try to detect runtime + resolution via ffprobe (if available)
- Adjust anything in the Edit dialog and click Save
- Mark as Watched increments the watch counter
- Play opens the file using your OS default player
If the player successfully launches, the app also increments watch count
Use Grid View to browse posters as tiles. Click a tile to load details.
- Wikipedia features require internet access, but the app works fine without it.
- Posters downloaded from Wikipedia are stored locally so Grid View stays fast.
- If no movie poster is found when adding wiki info, just add a movie poster manually
- If you move movie files, update the File path field in Edit Details.
Built with:
- CustomTkinter
- SQLite (built-in to Python)
- Wikipedia Action API (for metadata & posters)
