Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -1,29 +1,5 @@
|
|
1 |
import pickle
|
2 |
import streamlit as st
|
3 |
-
import requests
|
4 |
-
|
5 |
-
def fetch_poster(movie_id):
|
6 |
-
url = f"https://api.themoviedb.org/3/movie/{movie_id}?api_key=8265bd1679663a7ea12ac168da84d2e8&language=en-US"
|
7 |
-
data = requests.get(url).json()
|
8 |
-
st.write(f"API Response for movie ID {movie_id}: {data}") # Debugging
|
9 |
-
|
10 |
-
if 'poster_path' in data and data['poster_path']:
|
11 |
-
full_path = f"https://image.tmdb.org/t/p/w500/{data['poster_path']}"
|
12 |
-
return full_path
|
13 |
-
else:
|
14 |
-
st.write(f"Poster path not found for movie ID: {movie_id}") # Debugging
|
15 |
-
return "https://via.placeholder.com/500x750?text=No+Poster+Available" # Placeholder image
|
16 |
-
|
17 |
-
def fetch_movie_id(movie_title):
|
18 |
-
url = f"https://api.themoviedb.org/3/search/movie?api_key=8265bd1679663a7ea12ac168da84d2e8&query={movie_title}"
|
19 |
-
data = requests.get(url).json()
|
20 |
-
st.write(f"API Response for movie title '{movie_title}': {data}") # Debugging
|
21 |
-
|
22 |
-
if data['results']:
|
23 |
-
return data['results'][0]['id']
|
24 |
-
else:
|
25 |
-
st.write(f"No movie ID found for title: {movie_title}") # Debugging
|
26 |
-
return None
|
27 |
|
28 |
def recommend(movie):
|
29 |
try:
|
@@ -31,23 +7,15 @@ def recommend(movie):
|
|
31 |
distances = sorted(list(enumerate(similarity[index])), reverse=True, key=lambda x: x[1])
|
32 |
|
33 |
recommended_movie_names = []
|
34 |
-
recommended_movie_posters = []
|
35 |
|
36 |
for i in distances[1:6]:
|
37 |
movie_title = movies.iloc[i[0]]['title']
|
38 |
-
|
39 |
-
|
40 |
-
movie_id = fetch_movie_id(movie_title)
|
41 |
-
if movie_id:
|
42 |
-
recommended_movie_posters.append(fetch_poster(movie_id))
|
43 |
-
recommended_movie_names.append(movie_title)
|
44 |
|
45 |
-
return recommended_movie_names
|
46 |
except Exception as e:
|
47 |
-
st.write(f"Error in recommend function: {e}")
|
48 |
-
return []
|
49 |
-
|
50 |
-
st.header('Movie Recommender System')
|
51 |
|
52 |
# Load movies and similarity matrices
|
53 |
try:
|
@@ -56,19 +24,19 @@ try:
|
|
56 |
with open('similarity.pkl', 'rb') as file:
|
57 |
similarity = pickle.load(file)
|
58 |
except Exception as e:
|
59 |
-
st.write(f"Error loading files: {e}")
|
|
|
|
|
60 |
|
61 |
movie_list = movies['title'].values
|
62 |
selected_movie = st.selectbox("Type or select a movie from the dropdown", movie_list)
|
63 |
|
64 |
if st.button('Show Recommendation'):
|
65 |
-
recommended_movie_names
|
66 |
|
67 |
if not recommended_movie_names:
|
68 |
st.write("No recommendations found.")
|
69 |
else:
|
70 |
-
|
71 |
-
for
|
72 |
-
|
73 |
-
st.text(name)
|
74 |
-
st.image(poster)
|
|
|
1 |
import pickle
|
2 |
import streamlit as st
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
4 |
def recommend(movie):
|
5 |
try:
|
|
|
7 |
distances = sorted(list(enumerate(similarity[index])), reverse=True, key=lambda x: x[1])
|
8 |
|
9 |
recommended_movie_names = []
|
|
|
10 |
|
11 |
for i in distances[1:6]:
|
12 |
movie_title = movies.iloc[i[0]]['title']
|
13 |
+
recommended_movie_names.append(movie_title)
|
|
|
|
|
|
|
|
|
|
|
14 |
|
15 |
+
return recommended_movie_names
|
16 |
except Exception as e:
|
17 |
+
st.write(f"Error in recommend function: {e}")
|
18 |
+
return []
|
|
|
|
|
19 |
|
20 |
# Load movies and similarity matrices
|
21 |
try:
|
|
|
24 |
with open('similarity.pkl', 'rb') as file:
|
25 |
similarity = pickle.load(file)
|
26 |
except Exception as e:
|
27 |
+
st.write(f"Error loading files: {e}")
|
28 |
+
|
29 |
+
st.header('Movie Recommender System')
|
30 |
|
31 |
movie_list = movies['title'].values
|
32 |
selected_movie = st.selectbox("Type or select a movie from the dropdown", movie_list)
|
33 |
|
34 |
if st.button('Show Recommendation'):
|
35 |
+
recommended_movie_names = recommend(selected_movie)
|
36 |
|
37 |
if not recommended_movie_names:
|
38 |
st.write("No recommendations found.")
|
39 |
else:
|
40 |
+
st.write("Recommended Movies:")
|
41 |
+
for name in recommended_movie_names:
|
42 |
+
st.text(name)
|
|
|
|