diff --git a/yt_dlp/compat/functools.py b/yt_dlp/compat/functools.py index c3c4d8f48..ec003ea90 100644 --- a/yt_dlp/compat/functools.py +++ b/yt_dlp/compat/functools.py @@ -20,5 +20,7 @@ except NameError: self.func = func def __get__(self, instance, _): + if instance is None: + return self setattr(instance, self.func.__name__, self.func(instance)) return getattr(instance, self.func.__name__) diff --git a/yt_dlp/downloader/common.py b/yt_dlp/downloader/common.py index d74692130..93eb10f76 100644 --- a/yt_dlp/downloader/common.py +++ b/yt_dlp/downloader/common.py @@ -11,11 +11,11 @@ from ..minicurses import ( MultilinePrinter, QuietMultilinePrinter, ) -from ..compat import functools from ..utils import ( NUMBER_RE, LockingUnsupportedError, Namespace, + classproperty, decodeArgument, encodeFilename, error_to_compat_str, @@ -103,9 +103,9 @@ class FileDownloader: __to_screen = to_screen - @functools.cached_property - def FD_NAME(self): - return re.sub(r'(?