A movie recommender that reads the room — literally
This Flask app pairs content-based recommendations with sentiment analysis of IMDB reviews, all glued together with AJAX calls and a TMDB API key.

What it does
Type a movie, get back similar titles. Pick one, and the app scrapes IMDB reviews with BeautifulSoup, then runs sentiment analysis to tell you whether audiences loved it or hated it. The whole thing is a Flask server with a plain HTML/JS frontend; “AJAX” in the name mostly means the frontend fetches results without page reloads.
The interesting bit
The author built their own cosine-similarity recommender from movie metadata rather than using an off-the-shelf engine. The catch: it only handles English-language movies because a full multi-language Count Vectorizer matrix for TMDB’s 700,000+ titles ate 200% RAM even on Heroku. The author spun that limitation into a separate project, “The Movie Cinema,” which uses TMDB’s built-in recommendation engine instead.
Key highlights
- Content-based filtering using cosine similarity on movie text features (genre, overview, etc.)
- Live IMDB review scraping via BeautifulSoup4, fed into sentiment analysis
- TMDB API for movie metadata and posters
- Fuzzy search handles typos if auto-suggest misses your title
- YouTube demo and featured in Krish Naik’s live session
Caveats
- Requires manual API key insertion in two places in a JS file (line 15 and 29)
- The “AJAX” branding is slightly aspirational; it’s standard fetch/XHR patterns
- Web scraping IMDB is brittle by nature; layout changes break the sentiment pipeline
Verdict
Good for students who want to see a full-stack ML pipeline wired together end-to-end, warts and all. Skip it if you need production-grade recommendations or a maintainable scraper.