]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/youtube.py
[compat] Add `functools.cached_property`
[yt-dlp.git] / yt_dlp / extractor / youtube.py
index 5546aa9a34f196f45071511c10fdc353a05625b5..3f68861315895ad28a4c4b12dfe2608dc9b9d1ef 100644 (file)
@@ -2,7 +2,6 @@
 import calendar
 import copy
 import datetime
-import functools
 import hashlib
 import itertools
 import json
@@ -16,6 +15,7 @@
 import traceback
 
 from .common import InfoExtractor, SearchInfoExtractor
+from ..compat import functools
 from ..compat import (
     compat_chr,
     compat_HTTPError,
@@ -534,7 +534,7 @@ def _extract_visitor_data(*args):
             args, [('VISITOR_DATA', ('INNERTUBE_CONTEXT', 'client', 'visitorData'), ('responseContext', 'visitorData'))],
             expected_type=str)
 
-    @property
+    @functools.cached_property
     def is_authenticated(self):
         return bool(self._generate_sapisidhash_header())
 
@@ -4402,7 +4402,7 @@ def _reload_with_unavailable_videos(self, item_id, data, ytcfg):
             check_get_keys='contents', fatal=False, ytcfg=ytcfg,
             note='Downloading API JSON with unavailable videos')
 
-    @property
+    @functools.cached_property
     def skip_webpage(self):
         return 'webpage' in self._configuration_arg('skip', ie_key=YoutubeTabIE.ie_key())