Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MovieIndex

A local movie library manager that scans a folder for video files, enriches them with TMDB metadata, and displays them in a searchable web UI.

Python Flask

Features

  • Scans local folders recursively for video files (MKV, MP4, AVI, etc.)
  • Fetches movie metadata and posters from TMDB
  • Groups multi-version and multi-disc movies under a single card
  • Real-time search by title, year, director, cast, or rating (e.g. >7)
  • Click a card to open a modal with backdrop, poster, cast, and file list
  • Play button opens the file in your system's default video player
  • 3-tier caching: local .json files → in-memory → TMDB API

Requirements

Install dependencies:

pip install flask requests

tkinter is bundled with most Python installations (used for the folder picker dialog).

Setup

  1. Clone the repo:

    git clone https://github.com/vindrosen/MovieIndex.git
    cd MovieIndex
  2. Create API - Key.txt in the project root with the following content:

    API Key
    your_tmdb_api_key_here
    
  3. Run the app:

    python app.py

The browser opens automatically at http://localhost:5000.

Usage

  1. Click Browse to select your movie folder (or type the path directly).
  2. Click Scan — the app finds all video files ≥ 200 MB and loads their metadata.
  3. Use the search bar to filter; click a card for details; click Play to watch.

Metadata and posters are cached next to each movie file (.json / .jpg) so subsequent scans are instant.

Project Structure

MovieIndex/
├── app.py          # Flask app and REST API
├── scanner.py      # Recursive video file scanner and filename parser
├── tmdb.py         # TMDB API client
├── templates/
│   └── index.html  # Single-page HTML shell
├── static/
│   ├── app.js      # Vanilla JS frontend
│   └── style.css   # Styles
├── config.json     # Last selected folder (auto-generated)
└── cache.json      # Persisted TMDB metadata cache (auto-generated)

Configuration Files

File Purpose
API - Key.txt TMDB API key (not committed)
config.json Last selected folder path
cache.json Persisted metadata cache

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages