Spaces:
Sleeping
Sleeping
Moiz
commited on
Commit
·
d997e10
1
Parent(s):
55dc4d9
added database and script
Browse files- MovieDatabase.csv +0 -0
- database.py +69 -0
MovieDatabase.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
database.py
ADDED
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import requests
|
2 |
+
import pandas as pd
|
3 |
+
import json
|
4 |
+
|
5 |
+
# Load CSV
|
6 |
+
try:
|
7 |
+
df = pd.read_csv('/Users/moizpro/Desktop/MoviesRecommender/MovieRecommender/imdb_movie_codes.csv')
|
8 |
+
print("df loaded..")
|
9 |
+
except FileNotFoundError:
|
10 |
+
print("Error: CSV file not found at path")
|
11 |
+
exit()
|
12 |
+
|
13 |
+
# Define column names for the DataFrame
|
14 |
+
column_names = [
|
15 |
+
"id", "Title", "Year", "Rated", "Runtime", "Genre1", "Genre2", "Genre3",
|
16 |
+
"Director", "Writer", "Plot", "Awards", "IMDb", "Rotten Tomatoes",
|
17 |
+
"Metascore", "IMDb_votes", "Type", "BoxOffice"
|
18 |
+
]
|
19 |
+
database = pd.DataFrame(columns=column_names)
|
20 |
+
|
21 |
+
# Define function to fetch movie details and save in DataFrame
|
22 |
+
def get_movie(movie_id):
|
23 |
+
api_key = "f2443b04"
|
24 |
+
url = f"http://www.omdbapi.com/?apikey={api_key}&i={movie_id}&plot=full"
|
25 |
+
try:
|
26 |
+
response = requests.get(url)
|
27 |
+
if response.status_code == 200:
|
28 |
+
data = response.json()
|
29 |
+
# Check for valid response
|
30 |
+
if data.get("Response") == "True":
|
31 |
+
# Extract genres
|
32 |
+
genres = (data.get("Genre") or "").split(", ")
|
33 |
+
genre1, genre2, genre3 = genres[:3] if len(genres) >= 3 else genres + [None] * (3 - len(genres)
|
34 |
+
)
|
35 |
+
# Append the movie data to the DataFrame
|
36 |
+
database.loc[len(database)] = [
|
37 |
+
movie_id,
|
38 |
+
data.get("Title"),
|
39 |
+
data.get("Year"),
|
40 |
+
data.get("Rated"),
|
41 |
+
data.get("Runtime"),
|
42 |
+
genre1, genre2, genre3,
|
43 |
+
data.get("Director"),
|
44 |
+
data.get("Writer"),
|
45 |
+
data.get("Plot"),
|
46 |
+
data.get("Awards"),
|
47 |
+
data.get("imdbRating"),
|
48 |
+
data.get("Ratings")[1]["Value"] if len(data.get("Ratings", [])) > 1 else None,
|
49 |
+
data.get("Metascore"),
|
50 |
+
data.get("imdbVotes"),
|
51 |
+
data.get("Type"),
|
52 |
+
data.get("BoxOffice"),
|
53 |
+
]
|
54 |
+
else:
|
55 |
+
print(f"Error in API response for movie_id {movie_id}: {data.get('Error')}")
|
56 |
+
else:
|
57 |
+
print(f"HTTP error {response.status_code} for movie_id {movie_id}")
|
58 |
+
except Exception as e:
|
59 |
+
print(f"Exception occurred for movie_id {movie_id}: {e}")
|
60 |
+
|
61 |
+
# Loop through movie IDs in the CSV and fetch details
|
62 |
+
for i in range(len(df)):
|
63 |
+
movie_id = df.iloc[i, 0]
|
64 |
+
get_movie(movie_id)
|
65 |
+
|
66 |
+
# Save the DataFrame to a CSV file
|
67 |
+
output_file = '/Users/moizpro/Desktop/MoviesRecommender/MovieRecommender'
|
68 |
+
database.to_csv(output_file, index=False)
|
69 |
+
print(f"Movie database saved to {output_file}")
|