Spaces:
Running
Running
import json | |
import requests | |
import os | |
import logging | |
BASE_URL = "https://api.themoviedb.org/3" | |
API_KEY = os.environ['TMDB_API_KEY'] | |
# Set up logging | |
logging.basicConfig(level=logging.INFO) | |
def query_tmdb(endpoint, params={}): | |
headers = { | |
"accept": "application/json", | |
"Authorization": f"Bearer {API_KEY}" | |
} | |
response = requests.get(endpoint, headers=headers, params=params) | |
# Log the response | |
logging.debug( | |
f"Response from {endpoint}:\n{json.dumps(response.json(), indent=4)}") | |
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 | |