Files
MediaManager/metadata_relay/app/tmdb.py
maxid eb7a15d32d Merge branch 'refs/heads/master' into fork/aasmoe/feat/multi-language-metadata
# Conflicts:
#	metadata_relay/app/tmdb.py
#	web/src/lib/api/api.d.ts
2025-12-20 14:53:41 +01:00

45 lines
1.6 KiB
Python

import logging
import os
import tmdbsimple
from tmdbsimple import TV, TV_Seasons, Movies, Trending, Search
from fastapi import APIRouter
log = logging.getLogger(__name__)
tmdb_api_key = os.getenv("TMDB_API_KEY")
router = APIRouter(prefix="/tmdb", tags=["TMDB"])
if tmdb_api_key is None:
log.warning("TMDB_API_KEY environment variable is not set.")
else:
tmdbsimple.API_KEY = tmdb_api_key
@router.get("/tv/trending")
async def get_tmdb_trending_tv(language: str = "en"):
return Trending(media_type="tv").info(language=language)
@router.get("/tv/search")
async def search_tmdb_tv(query: str, page: int = 1, language: str = "en"):
return Search().tv(page=page, query=query, language=language)
@router.get("/tv/shows/{show_id}")
async def get_tmdb_show(show_id: int, language: str = "en"):
return TV(show_id).info(language=language)
@router.get("/tv/shows/{show_id}/{season_number}")
async def get_tmdb_season(season_number: int, show_id: int, language: str = "en"):
return TV_Seasons(season_number=season_number, tv_id=show_id).info(language=language)
@router.get("/movies/trending")
async def get_tmdb_trending_movies(language: str = "en"):
return Trending(media_type="movie").info(language=language)
@router.get("/movies/search")
async def search_tmdb_movies(query: str, page: int = 1, language: str = "en"):
return Search().movie(page=page, query=query, language=language)
@router.get("/movies/{movie_id}")
async def get_tmdb_movie(movie_id: int, language: str = "en"):
return Movies(movie_id).info(language=language)