<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Building a Movie Recommendation 🎬]]></title><description><![CDATA[Building a Movie Recommendation 🎬]]></description><link>https://sourabh-kumar04.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Thu, 29 Oct 2026 22:23:32 GMT</lastBuildDate><atom:link href="https://sourabh-kumar04.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[How to Build a Movie Recommendation App with Streamlit: Step-by-Step]]></title><description><![CDATA[# **How to Build a Movie Recommendation App with Streamlit: Step-by-Step** 🎬 Choosing the right movie to watch can be frustrating. Recommendation systems…]]></description><link>https://sourabh-kumar04.hashnode.dev/how-to-build-a-movie-recommendation-app-with-streamlit-step-by-step</link><guid isPermaLink="true">https://sourabh-kumar04.hashnode.dev/how-to-build-a-movie-recommendation-app-with-streamlit-step-by-step</guid><category><![CDATA[movie recommendation system]]></category><category><![CDATA[ML]]></category><category><![CDATA[AI]]></category><dc:creator><![CDATA[Sourabh Kumar]]></dc:creator><pubDate>Sat, 31 May 2025 07:17:46 GMT</pubDate><content:encoded><![CDATA[<p># **How to Build a Movie Recommendation App with Streamlit: Step-by-Step** 🎬</p>
<p>Choosing the right movie to watch can be frustrating. Recommendation systems, like those used by **Netflix and Prime Video**, help by suggesting movies based on user interests.</p>
<p>This blog shares how I built a **Movie Recommendation System** using **Python, Streamlit, and the TMDb API**. The goal was to create a simple yet effective system that:</p>
<p>✅ **Suggests movies similar to the one selected**</p>
<p>✅ **Fetches movie posters dynamically**</p>
<p>✅ **Has a clean and interactive UI**</p>
<p>✅ **Can be deployed online for free**</p>
<p>---</p>
<p>## **Technologies Used**</p>
<p>For this project, I used:</p>
<p>🔹 **Python** – The core programming language</p>
<p>🔹 **Pandas &amp; NumPy** – For data handling and processing</p>
<p>🔹 **Scikit-Learn** – To build the recommendation algorithm</p>
<p>🔹 **TMDb API** – To fetch movie posters dynamically</p>
<p>🔹 **Streamlit** – To build the interactive web app</p>
<p>🔹 **Git &amp; GitHub** – To manage and deploy the project</p>
<p>🔹 **Git LFS** – To handle large datasets</p>
<p>---</p>
<p>## **Step 1: How the Recommendation System Works**</p>
<p>A **Content-Based Filtering** approach was implemented to recommend movies based on their similarity to a selected movie.</p>
<p>### **Process:**</p>
<p>1️⃣ **User selects a movie** from the dropdown.</p>
<p>2️⃣ **The system finds similar movies** using machine learning techniques.</p>
<p>3️⃣ **Movie posters are fetched** using the TMDb API.</p>
<p>4️⃣ **Results are displayed** in an interactive UI.</p>
<p>This ensures relevant recommendations while keeping the experience visually engaging.</p>
<p>---</p>
<p>## **Step 2: Fetching Movie Posters with TMDb API**</p>
<p>To enhance the UI, the **TMDb API** was used to fetch movie posters.</p>
<p>```python</p>
<p>import requests</p>
<p>API_KEY = "your_tmdb_api_key"</p>
<p>def get_movie_poster(movie_id):</p>
<p>url = f"https://api.themoviedb.org/3/movie/{movie_id}?api_key={API_KEY}"</p>
<p>response = requests.get(url).json()</p>
<p>poster_path = response["poster_path"]</p>
<p>full_poster_url = f"https://image.tmdb.org/t/p/w500{poster_path}"</p>
<p>return full_poster_url</p>
<p>This function takes a movie ID, calls the TMDb API, and returns the poster URL, which is then displayed in the Streamlit app.</p>
<p>---</p>
<p>Step 3: Deploying the App for Free</p>
<p>The app was deployed on Streamlit Community Cloud, a free hosting platform for Streamlit apps.</p>
<p>Steps to Deploy:</p>
<p>1️⃣ Push the Code to GitHub</p>
<p>git init</p>
<p>git add .</p>
<p>git commit -m "First commit"</p>
<p>git branch -M main</p>
<p>git remote add origin https://github.com/Sourabh-Kumar04/Raso-Movie-Recommendation.git</p>
<p>git push -u origin main</p>
<p>2️⃣ Deploy on Streamlit Cloud</p>
<p>Go to Streamlit Community Cloud</p>
<p>Click on "New app"</p>
<p>Select the GitHub repository</p>
<p>Click "Deploy"</p>
<p>The app went live within minutes. 🎉</p>
<p>🔗 Live App: Raso Movie Recommendation</p>
<p>---</p>
<p>Step 4: Handling Large Files with Git LFS</p>
<p>Since a large dataset was used, Git LFS (Large File Storage) was implemented to manage it efficiently.</p>
<pre><code class="lang-bash">sudo apt install git-lfs  <span class="hljs-comment"># Install Git LFS</span>
</code></pre>
<p>This prevented upload errors and ensured smooth version control of large files.</p>
<p>---</p>
<p>What I Learned</p>
<p>This project provided valuable insights into:</p>
<p>✅ How recommendation systems work</p>
<p>✅ Working with APIs (TMDb) to fetch data</p>
<p>✅ Deploying a project for free with Streamlit</p>
<p>✅ Handling large datasets using Git LFS</p>
<p>✅ Building interactive UI with Streamlit</p>
<p>---</p>
<p>Try It Out!</p>
<p>The Movie Recommendation System is live and open for feedback!</p>
<p>🔗 Live Demo: Raso Movie Recommendation</p>
<p>🔗 GitHub Repo: Sourabh-Kumar04/Raso-Movie-Recommendation</p>
<p>🔗 Connect with Me on LinkedIn: Sourabh Kumar</p>
<p>---</p>
<p>Final Thoughts</p>
<p>Writing this first blog on Hashnode has been a great experience! 🚀</p>
<p>Let me know your thoughts in the comments. Also, feel free to connect and share feedback!</p>
<p>What should I build next?</p>
]]></content:encoded></item></channel></rss>