def get_IMDB_movie_data(movie_title): """ Returns the following information of a title: IMDB rating release quarter genres MPAA rating awards """ # Get movie data from IMDB API ia = IMDb() res = ia._search_movie(movie_title, results=True) movie_ID = res[0][0] if res[0][1]['title'] != movie_title: print('Titles do not exactly match: ', movie_title, res[0][1]['title']) movie = ia.get_movie(movie_ID) rating = movie.data['rating'] release_date = movie.data['original air date'].split(" (")[0] try: release_quarter = quarter(release_date) except: # when release month not (yet) specified release_quarter = 1 genres = [genre.lower() for genre in movie.data['genres']] MPAA = [ c.split(':')[1] for c in movie.data['certificates'] if (c.startswith('United States') or 'USA' in c) ][0] awards = dict() award_data = ia.get_movie_awards(movie_ID)['data']['awards'] for nom in award_data: if nom['award'] == 'PGA Award': if 'PGA' not in awards.keys(): awards['PGA'] = {'categories': [], 'results': [], 'to': []} if 'notes' in nom.keys(): awards['PGA']['categories'].append(nom['notes']) else: awards['PGA']['categories'].append(nom['category']) awards['PGA']['results'].append(nom['result']) if 'to' in nom.keys(): awards['PGA']['to'].append([str(n) for n in nom['to']]) else: awards['PGA']['to'].append([]) elif nom['award'] == 'BAFTA Film Award': if 'BAFTA' not in awards.keys(): awards['BAFTA'] = {'categories': [], 'results': [], 'to': []} if 'notes' in nom.keys(): awards['BAFTA']['categories'].append(nom['notes']) else: awards['BAFTA']['categories'].append(nom['category']) awards['BAFTA']['results'].append(nom['result']) if 'to' in nom.keys(): awards['BAFTA']['to'].append([str(n) for n in nom['to']]) else: awards['BAFTA']['to'].append([]) elif nom['award'] == 'Golden Globe': if 'Golden Globe' not in awards.keys(): awards['Golden Globe'] = { 'categories': [], 'results': [], 'to': [] } if 'notes' in nom.keys(): awards['Golden Globe']['categories'].append(nom['notes']) else: awards['Golden Globe']['categories'].append(nom['category']) awards['Golden Globe']['results'].append(nom['result']) if 'to' in nom.keys(): awards['Golden Globe']['to'].append( [str(n) for n in nom['to']]) else: awards['Golden Globe']['to'].append([]) elif nom['award'] in ['Academy Awards, USA', 'Oscar']: if 'Oscar' not in awards.keys(): awards['Oscar'] = {'categories': [], 'results': [], 'to': []} if 'notes' in nom.keys(): awards['Oscar']['categories'].append(nom['notes']) else: awards['Oscar']['categories'].append(nom['category']) awards['Oscar']['results'].append(nom['result']) if 'to' in nom.keys(): awards['Oscar']['to'].append([str(n) for n in nom['to']]) else: awards['Oscar']['to'].append([]) elif nom['award'] == 'Critics Choice Award': if 'Critics Choice' not in awards.keys(): awards['Critics Choice'] = { 'categories': [], 'results': [], 'to': [] } if 'notes' in nom.keys(): awards['Critics Choice']['categories'].append(nom['notes']) else: awards['Critics Choice']['categories'].append(nom['category']) awards['Critics Choice']['results'].append(nom['result']) if 'to' in nom.keys(): awards['Critics Choice']['to'].append( [str(n) for n in nom['to']]) else: awards['Critics Choice']['to'].append([]) elif nom['award'] == 'DGA Award': if 'DGA' not in awards.keys(): awards['DGA'] = {'categories': [], 'results': [], 'to': []} if 'notes' in nom.keys(): awards['DGA']['categories'].append(nom['notes']) else: awards['DGA']['categories'].append(nom['category']) awards['DGA']['results'].append(nom['result']) if 'to' in nom.keys(): awards['DGA']['to'].append([str(n) for n in nom['to']]) else: awards['DGA']['to'].append([]) elif (nom['category'] == 'Screen Actors Guild Awards') or ( nom['award'] == 'Screen Actors Guild Awards'): if 'SAG' not in awards.keys(): awards['SAG'] = {'categories': [], 'results': [], 'to': []} if 'notes' in nom.keys(): awards['SAG']['categories'].append(nom['notes']) else: awards['SAG']['categories'].append(nom['category']) awards['SAG']['results'].append(nom['result']) if 'to' in nom.keys(): awards['SAG']['to'].append([str(n) for n in nom['to']]) else: awards['SAG']['to'].append([]) return rating, release_date, release_quarter, genres, MPAA, awards