Inspiration

We were inspired by the idea of making movie recommendations more personalized and intuitive. With so many options available on streaming platforms, it can be difficult for users to find exactly what they want. We wanted to create a tool that understands a user’s description of the kind of movie they’re looking for and offers intelligent suggestions that go beyond simple genre or rating filters.

What it does

This website helps users discover movies based on natural language input. Users can choose which genre, decade and rating they aim for in a movie and describe what they feel like watching whether it’s a storyline, theme, or vibe and the app recommends movies that semantically align with their description. It also includes an option to browse the top 5 trending movies so they can stay updated on the latest content. All recommendations are displayed in a streamlined and user-friendly Streamlit interface.

How we built it

We built the application using Python, Streamlit, and the TMDb API. First, movie data is fetched from the TMDb API and stored in a CSV for processing according to the categories the user selects.Then, to process the user’s description, we used a pre-trained sentence embedding model (all-MiniLM-L6-v2) from Sentence Transformers. This model allows us to compare the user’s input to movie overviews using semantic similarity. We sorted results based on both their similarity score and rating to deliver the most relevant suggestions.

Challenges we ran into

We were planning to use Gemini API to handle the semantic search and get smarter results. Due to limitations of getting free access without offering personal financial details, we decided to use the sentence transformers library where we use a free pre-trained model that helped us handle the semantic comparison between the user input and the movie's overviews.

Accomplishments that we're proud of

We are proud of implementing a pre-trained model into our program and learning how to filter the data received from the API via multiple user inputs. Through a combination of the TMDb database and AI-processed input we provided search results based on the general availability of what the user is looking for and their imagination.

What we learned

We learned to always search for alternatives in case plan A did not work. We deepened our knowledge in using the sentence transformers library, handling csv files, and integrating Streamlit into our program.

What's next for Flime

We’re planning to expand the app by incorporating additional filters such as language, availability on specific streaming platforms, and maturity rating. We're also exploring integrations with trailer previews and mood-based enhancements, allowing users to find movies based on how they want to feel or what emotional experience they're looking for. Finally, we would like to integrate a more advanced UI, which has been designed in Figma but not implemented yet.

Built With

Share this project:

Updates