Flask application for searching the CSFD Top 300 catalogue backed by SQLite.
- Python 3.12+
- uv package manager
make install # Install dependencies + Playwright chromium build
make scrape-async # Scrape CSFD (async Playwright, default workers=5)
# or: make scrape-syncThe repository includes a pre-scraped db/csfd.db with 300 movies and their actors.
Run make scrape-async again whenever you want to refresh the dataset.
make run # Start server at http://localhost:5555
make clean # Remove the SQLite databaseYou can also use the typer CLI directly, e.g.:
uv run python manage.py scrape-async --workers 8 --delay 0.3- Open http://localhost:5555
- Enter a movie title or actor name in the search box
- Click on a movie/actor to see its detail page
Search ignores case, diacritics, and matches substrings.
- Make DB migrations with Alembic
- Add resilient scraping
- Observability
- ...