Spaces:
Sleeping
Sleeping
import requests | |
import pandas as pd | |
import json | |
# Load CSV | |
try: | |
df = pd.read_csv('/Users/moizpro/Desktop/MoviesRecommender/MovieRecommender/imdb_movie_codes.csv') | |
print("df loaded..") | |
except FileNotFoundError: | |
print("Error: CSV file not found at path") | |
exit() | |
# Define column names for the DataFrame | |
column_names = [ | |
"id", "Title", "Year", "Rated", "Runtime", "Genre1", "Genre2", "Genre3", | |
"Director", "Writer", "Plot", "Awards", "IMDb", "Rotten Tomatoes", | |
"Metascore", "IMDb_votes", "Type", "BoxOffice" #add musab moiz udisha columns for personal rating. i added that manually in the csv | |
] | |
database = pd.DataFrame(columns=column_names) | |
# Define function to fetch movie details and save in DataFrame | |
def get_movie(movie_id): | |
api_key = "f2443b04" | |
url = f"http://www.omdbapi.com/?apikey={api_key}&i={movie_id}&plot=full" | |
try: | |
response = requests.get(url) | |
if response.status_code == 200: | |
data = response.json() | |
# Check for valid response | |
if data.get("Response") == "True": | |
# Extract genres | |
genres = (data.get("Genre") or "").split(", ") | |
genre1, genre2, genre3 = genres[:3] if len(genres) >= 3 else genres + [None] * (3 - len(genres) | |
) | |
# Append the movie data to the DataFrame | |
database.loc[len(database)] = [ | |
movie_id, | |
data.get("Title"), | |
data.get("Year"), | |
data.get("Rated"), | |
data.get("Runtime"), | |
genre1, genre2, genre3, | |
data.get("Director"), | |
data.get("Writer"), | |
data.get("Plot"), | |
data.get("Awards"), | |
data.get("imdbRating"), | |
data.get("Ratings")[1]["Value"] if len(data.get("Ratings", [])) > 1 else None, | |
data.get("Metascore"), | |
data.get("imdbVotes"), | |
data.get("Type"), | |
data.get("BoxOffice"), | |
] | |
else: | |
print(f"Error in API response for movie_id {movie_id}: {data.get('Error')}") | |
else: | |
print(f"HTTP error {response.status_code} for movie_id {movie_id}") | |
except Exception as e: | |
print(f"Exception occurred for movie_id {movie_id}: {e}") | |
# Loop through movie IDs in the CSV and fetch details | |
for i in range(len(df)): | |
movie_id = df.iloc[i, 0] | |
get_movie(movie_id) | |
# Save the DataFrame to a CSV file | |
output_file = '/Users/moizpro/Desktop/MoviesRecommender/MovieRecommender' | |
database.to_csv(output_file, index=False) | |
print(f"Movie database saved to {output_file}") | |