diff --git a/comet/metadata/filter.py b/comet/metadata/filter.py index 5c1be70..4a7f15c 100644 --- a/comet/metadata/filter.py +++ b/comet/metadata/filter.py @@ -52,6 +52,13 @@ class DigitalReleaseFilter: release_date_str = None if media_type == "movie": release_date_str = await tmdb.get_upcoming_movie_release_date(tmdb_id) + if not release_date_str: + # Check watch providers as fallback + has_watch_providers = await tmdb.has_watch_providers(tmdb_id) + if has_watch_providers: + # Treat as released a long time ago + release_date_str = "1970-01-01" + elif media_type == "series": release_date_str = await tmdb.get_episode_air_date( tmdb_id, season, episode diff --git a/comet/metadata/tmdb.py b/comet/metadata/tmdb.py index ba79ad8..4757c5e 100644 --- a/comet/metadata/tmdb.py +++ b/comet/metadata/tmdb.py @@ -77,3 +77,16 @@ class TMDBApi: except Exception as e: logger.error(f"TMDB: Error converting IMDB ID {imdb_id}: {e}") return None + + async def has_watch_providers(self, tmdb_id: str): + try: + url = f"{self.base_url}/movie/{tmdb_id}/watch/providers" + async with self.session.get(url, headers=self.headers) as response: + if response.status != 200: + return None + + data = await response.json() + return bool(data.get("results")) + except Exception as e: + logger.error(f"TMDB: Error getting watch providers for {tmdb_id}: {e}") + return None