]> jfr.im git - yt-dlp.git/commitdiff
[ie/iprima] Fix extractor (#7216)
authorstd-move <redacted>
Thu, 21 Sep 2023 22:20:52 +0000 (00:20 +0200)
committerGitHub <redacted>
Thu, 21 Sep 2023 22:20:52 +0000 (22:20 +0000)
Closes #7229
Authored by: std-move

yt_dlp/extractor/iprima.py

index 6dec1510dade0071a9239acc07ffee4d957ffe69..f7aa579b38d867c1d0a26c30209a2e47f42799f8 100644 (file)
@@ -134,10 +134,17 @@ def _real_extract(self, url):
         ), webpage, 'real id', group='id', default=None)
 
         if not video_id:
-            nuxt_data = self._search_nuxt_data(webpage, video_id, traverse='data')
+            nuxt_data = self._search_nuxt_data(webpage, video_id, traverse='data', fatal=False)
             video_id = traverse_obj(
                 nuxt_data, (..., 'content', 'additionals', 'videoPlayId', {str}), get_all=False)
 
+        if not video_id:
+            nuxt_data = self._search_json(
+                r'<script[^>]+\bid=["\']__NUXT_DATA__["\'][^>]*>',
+                webpage, 'nuxt data', None, end_pattern=r'</script>', contains_pattern=r'\[(?s:.+)\]')
+
+            video_id = traverse_obj(nuxt_data, lambda _, v: re.fullmatch(r'p\d+', v), get_all=False)
+
         if not video_id:
             self.raise_no_formats('Unable to extract video ID from webpage')