ashish-001's picture
Update app.py
d4e3a39 verified
import streamlit as st
import numpy as np
import pandas as pd
import requests
import json
from itertools import cycle
new_df = pd.read_csv('movie_data.csv')
with open('similiarity_scores.npy', 'rb') as f:
similarity = np.load(f)
def return_movie_posters_link(movie):
movie_id = new_df[new_df['title'] == movie]['movie_id'].values[0]
url = f"https://api.themoviedb.org/3/movie/{movie_id}?api_key={st.secrets['key']}"
response = requests.get(url)
return response.json()['poster_path']
def recommend(movie):
movie_index = new_df[new_df['title'] == movie].index[0]
distances = similarity[movie_index]
movie_list = sorted(list(enumerate(distances)),
reverse=True, key=lambda x: x[1])[1:6]
l = []
for i in movie_list:
l.append(new_df.iloc[i[0]].title)
return l
st.set_page_config(page_title="Movie Recommender System")
st.title("Movie Recommender System")
curr_movie = st.selectbox(label='Select a movie',
options=new_df['title'].values)
if st.button('Recommend'):
rec_movies = recommend(curr_movie)
cols = cycle(st.columns(5))
for i in rec_movies:
poster_link = return_movie_posters_link(i)
next(cols).image(
f"https://image.tmdb.org/t/p/w500/{poster_link}", f"{i}", width=130)