]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/canvas.py
[extractor] Add `_perform_login` function (#2943)
[yt-dlp.git] / yt_dlp / extractor / canvas.py
index e97c9192995467745920e00d7775e74ef02a4779..31e7d7de6794afd5b3af17346a13e024f242cf71 100644 (file)
@@ -76,7 +76,7 @@ def _real_extract(self, url):
                     'vrtPlayerToken': vrtPlayerToken,
                     'client': 'null',
                 }, expected_status=400)
-            if not data.get('title'):
+            if 'title' not in data:
                 code = data.get('code')
                 if code == 'AUTHENTICATION_REQUIRED':
                     self.raise_login_required()
@@ -84,7 +84,8 @@ def _real_extract(self, url):
                     self.raise_geo_restricted(countries=['BE'])
                 raise ExtractorError(data.get('message') or code, expected=True)
 
-        title = data['title']
+        # Note: The title may be an empty string
+        title = data['title'] or f'{site_id} {video_id}'
         description = data.get('description')
 
         formats = []
@@ -273,14 +274,7 @@ class VrtNUIE(GigyaBaseIE):
     _APIKEY = '3_0Z2HujMtiWq_pkAjgnS2Md2E11a1AwZjYiBETtwNE-EoEHDINgtnvcAOpNgmrVGy'
     _CONTEXT_ID = 'R3595707040'
 
-    def _real_initialize(self):
-        self._login()
-
-    def _login(self):
-        username, password = self._get_login_info()
-        if username is None:
-            return
-
+    def _perform_login(self, username, password):
         auth_info = self._gigya_login({
             'APIKey': self._APIKEY,
             'targetEnv': 'jssdk',