panchadip commited on
Commit
83b3b12
·
verified ·
1 Parent(s): cde03c1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -43
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
- st.write(f"Fetching poster for movie: {movie_title}") # Debugging
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, recommended_movie_posters
46
  except Exception as e:
47
- st.write(f"Error in recommend function: {e}") # Debugging
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}") # Debugging
 
 
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, recommended_movie_posters = recommend(selected_movie)
66
 
67
  if not recommended_movie_names:
68
  st.write("No recommendations found.")
69
  else:
70
- cols = st.columns(5)
71
- for idx, (name, poster) in enumerate(zip(recommended_movie_names, recommended_movie_posters)):
72
- with cols[idx % 5]:
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)