import requests import os BASE_URL = "https://api.themoviedb.org/3" API_KEY = os.environ['TMDB_API_KEY'] def query_tmdb(endpoint, params={}): headers = { "accept": "application/json", "Authorization": f"Bearer {API_KEY}" } response = requests.get(endpoint, headers=headers, params=params) return response.json() def discover_movie(include_adult=False, include_video=False, language="en-US", page=1, sort_by="popularity.desc", **kwargs): endpoint = f"{BASE_URL}/discover/movie" params = {} for key, value in kwargs.items(): if value is not None: params[key] = value response = query_tmdb(endpoint, params=params) return response def get_movie_details(movie_id, append_to_response=None): endpoint = f"{BASE_URL}/movie/{movie_id}" params = {} response = query_tmdb(endpoint, params=params) return response def search_person(query, include_adult=False, language="en-US", page=1): endpoint = f"{BASE_URL}/search/person" params = { 'query': query, 'include_adult': include_adult, 'language': language, 'page': page } response = query_tmdb(endpoint, params=params) return response def get_person_details(person_id, language="en-US", append_to_response=None): endpoint = f"{BASE_URL}/person/{person_id}" params = { 'language': language } if append_to_response: params['append_to_response'] = append_to_response response = query_tmdb(endpoint, params=params) return response def get_movie_genres(language="en-US"): endpoint = f"{BASE_URL}/genre/movie/list" params = { 'language': language } response = query_tmdb(endpoint, params=params) return response