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}")