diff --git a/gamdl/downloader/downloader.py b/gamdl/downloader/downloader.py index d02fb6c..c45365e 100644 --- a/gamdl/downloader/downloader.py +++ b/gamdl/downloader/downloader.py @@ -8,6 +8,7 @@ from .constants import TEMP_PATH_TEMPLATE from .enums import DownloadMode, RemuxMode from .exceptions import ( GamdlDownloaderDependencyNotFoundError, + GamdlDownloaderFlatFilterExcludedError, GamdlDownloaderMediaFileExistsError, GamdlDownloaderSyncedLyricsOnlyError, ) @@ -71,6 +72,11 @@ class AppleMusicDownloader: if item.media.error: raise item.media.error + if item.media.flat_filter_result: + raise GamdlDownloaderFlatFilterExcludedError( + item.media.media_metadata["id"] + ) + await self._initial_processing(item) await self._download(item) await self._final_processing(item) diff --git a/gamdl/downloader/exceptions.py b/gamdl/downloader/exceptions.py index 4561b5c..4e26f3b 100644 --- a/gamdl/downloader/exceptions.py +++ b/gamdl/downloader/exceptions.py @@ -18,3 +18,8 @@ class GamdlDownloaderMediaFileExistsError(GamdlDownloaderError): class GamdlDownloaderDependencyNotFoundError(GamdlDownloaderError): def __init__(self, dependency_name: str) -> None: super().__init__(f"Required dependency not found: {dependency_name}") + + +class GamdlDownloaderFlatFilterExcludedError(GamdlDownloaderError): + def __init__(self, media_id: str) -> None: + super().__init__(f"Media is excluded by flat filter: {media_id}")