Last commit not found
import streamlit as st | |
import requests | |
import pickle | |
import pandas as pd | |
movies_dict = pickle.load(open('pickle_files\movies_dict.pkl', 'rb')) | |
movies = pd.DataFrame(movies_dict) | |
movies_list = movies['title'].tolist() | |
movies_cos_sim = pickle.load(open('pickle_files\movies_cos_sim.pkl', 'rb')) | |
print(movies) | |
def get_recommendations(movie): | |
if movie in movies['title'].tolist(): | |
index = movies[movies['title']==movie].index[0] | |
ascending_indices = movies_cos_sim[index].argsort() | |
descending_indices = ascending_indices[::-1] | |
return movies.iloc[descending_indices[1:21]]['title'].tolist() | |
else: | |
return 0 | |
TMDB_API_KEY = 'd86b9111d56c0b1da25f8f37a94c9a2b' | |
def fetch_movie_poster(movie_name): | |
search_url = f"https://api.themoviedb.org/3/search/movie?api_key={TMDB_API_KEY}&query={movie_name}" | |
response = requests.get(search_url).json() | |
if response['results']: | |
poster_path = response['results'][0]['poster_path'] | |
full_poster_url = f"https://image.tmdb.org/t/p/w500{poster_path}" | |
return full_poster_url | |
else: | |
return None | |
st.title("Movie Recommendation System") | |
movie_name = st.selectbox("Enter a movie name:", movies_list) | |
if st.button("Get Recommendations"): | |
if movie_name: | |
recommendations = get_recommendations(movie_name) | |
if recommendations: | |
st.write("Here are some movies you might like:") | |
cols = st.columns(5) | |
for idx, movie in enumerate(recommendations): | |
col = cols[idx % 5] | |
with col: | |
st.write(movie) | |
poster_url = fetch_movie_poster(movie) | |
if poster_url: | |
st.image(poster_url, width=250) | |
else: | |
st.write("Poster not found.") | |
else: | |
st.write("No recommendations found. Please check the movie name and try again.") | |
else: | |
st.write("Please enter a movie name.") |