Accurate movie recommendations based on favourites on Letterboxd
letterboxd-rec, provides accurate film recommendations provided only a single movie. These are calculated based on how many other users on Letterboxd have it listed on their profile, as one of their top 4 movies.
Built entirely in Go using a go http web server, with templ to help manage HTML templates and HTMX, this project is built on essentially zero javascript. To help with gathering users' public top 4's, it uses the web scraping framework Colly, built in Go. Movie data is gathered using TMDB's API.
Imagine you wanted to find how many other people in the world had the same favourite movie as you. If you asked them all what some of their other favourite movies are, chances are you would also enjoy those movies. If multiple people said the same movie multiple times, then that movie is probably even more likely to be one you enjoy - This is essentially the idea why I built this project, and why it can be very accurate at making good film recommendations.
There are some slight limitations, however; to get the most accurate results, you need to sprawl through a very large amount of users, which can take quite a while especially considering its built using a web scraper, which is necessary as Letterboxd's API is not public. Also, the most frequent recommendations tend to be analogous, because users' top 4 are skewed towards the most popular movies. So, if you are seeing Interstellar, Fight Club and La La Land for every recommendation, it's because they're some of the most popular movies!
- Movie Recommendations
- Film searching
- Responsive UI
- Tunable Parameters (users to scrape, server threads)
You should be able to simply clone the GitHub repository and run main.go, ensuring you have all the required dependencies which have been provided in the go.mod file.
Make sure you setup a .env file for the TMDB API keys, like this:
.env
TMDB_API_KEY="Your TMDB Access Token Auth"
API_KEY="Your TMDB API Key Auth"
Jackson Lawrence - jplqqz@gmail.com