diff --git a/unshackle/commands/dl.py b/unshackle/commands/dl.py index 62283b8c..4c687355 100644 --- a/unshackle/commands/dl.py +++ b/unshackle/commands/dl.py @@ -2069,7 +2069,7 @@ class dl: ( pool.submit( track.download, - session=service.session, + session=track.session or service.session, prepare_drm=partial( partial(self.prepare_drm, table=download_table), track=track, diff --git a/unshackle/core/tracks/track.py b/unshackle/core/tracks/track.py index 42726472..2fe430ca 100644 --- a/unshackle/core/tracks/track.py +++ b/unshackle/core/tracks/track.py @@ -45,6 +45,7 @@ class Track: name: Optional[str] = None, drm: Optional[Iterable[DRM_T]] = None, edition: Optional[str] = None, + session: Optional[Union[Session, "RnetSession"]] = None, downloader: Optional[Callable] = None, downloader_args: Optional[dict] = None, from_file: Optional[Path] = None, @@ -99,6 +100,7 @@ class Track: self.name = name self.drm = drm self.edition: list[str] = [edition] if isinstance(edition, str) else (edition or []) + self.session = session self.downloader = downloader self.downloader_args = downloader_args self.from_file = from_file @@ -180,7 +182,7 @@ class Track: def download( self, - session: Session, + session: Union[Session, "RnetSession"], prepare_drm: partial, max_workers: Optional[int] = None, progress: Optional[partial] = None,