[youtube] Fix age-gated videos support without login (closes #24248)
[youtube-dl] / youtube_dl / extractor / yahoo.py
index ee68096d09c5a65dfa37177799853ca52fb56410..238d9cea0c729912351895e5bd6ad453d43b7d31 100644 (file)
@@ -25,7 +25,7 @@ from .brightcove import BrightcoveNewIE
 
 class YahooIE(InfoExtractor):
     IE_DESC = 'Yahoo screen and movies'
-    _VALID_URL = r'(?P<url>https?://(?:(?P<country>[a-zA-Z]{2}(?:-[a-zA-Z]{2})?|malaysia)\.)?(?:[\da-zA-Z_-]+\.)?yahoo\.com/(?:[^/]+/)*(?P<id>[^?&#]*-[0-9]+)\.html)'
+    _VALID_URL = r'(?P<url>https?://(?:(?P<country>[a-zA-Z]{2}(?:-[a-zA-Z]{2})?|malaysia)\.)?(?:[\da-zA-Z_-]+\.)?yahoo\.com/(?:[^/]+/)*(?P<id>[^?&#]*-[0-9]+(?:-[a-z]+)?)\.html)'
     _TESTS = [{
         'url': 'http://screen.yahoo.com/julian-smith-travis-legg-watch-214727115.html',
         'info_dict': {
@@ -51,10 +51,10 @@ class YahooIE(InfoExtractor):
         },
     }, {
         'url': 'https://uk.screen.yahoo.com/editor-picks/cute-raccoon-freed-drain-using-091756545.html',
-        'md5': '0b51660361f0e27c9789e7037ef76f4b',
+        'md5': '71298482f7c64cbb7fa064e4553ff1c1',
         'info_dict': {
             'id': 'b3affa53-2e14-3590-852b-0e0db6cd1a58',
-            'ext': 'mp4',
+            'ext': 'webm',
             'title': 'Cute Raccoon Freed From Drain\u00a0Using Angle Grinder',
             'description': 'md5:f66c890e1490f4910a9953c941dee944',
             'duration': 97,
@@ -164,12 +164,16 @@ class YahooIE(InfoExtractor):
         'params': {
             'playlistend': 2,
         },
+        'expected_warnings': ['HTTP Error 404'],
     }, {
         'url': 'https://malaysia.news.yahoo.com/video/bystanders-help-ontario-policeman-bust-190932818.html',
         'only_matching': True,
     }, {
         'url': 'https://es-us.noticias.yahoo.com/es-la-puerta-irrompible-que-110539379.html',
         'only_matching': True,
+    }, {
+        'url': 'https://www.yahoo.com/entertainment/v/longtime-cbs-news-60-minutes-032036500-cbs.html',
+        'only_matching': True,
     }]
 
     def _real_extract(self, url):
@@ -219,7 +223,7 @@ class YahooIE(InfoExtractor):
             country = 'my'
 
         is_live = video.get('live_state') == 'live'
-        fmts = ('m3u8',) if is_live else ('web', 'mp4')
+        fmts = ('m3u8',) if is_live else ('webm', 'mp4')
 
         urls = []
         formats = []
@@ -379,7 +383,7 @@ class YahooGyaOPlayerIE(InfoExtractor):
             'id': video_id,
             'title': video['title'],
             'url': smuggle_url(
-                'http://players.brightcove.net/4235717419001/default_default/index.html?videoId=' + video['videoId'],
+                'http://players.brightcove.net/4235717419001/SyG5P0gjb_default/index.html?videoId=' + video['videoId'],
                 {'geo_countries': ['JP']}),
             'description': video.get('longDescription'),
             'ie_key': BrightcoveNewIE.ie_key(),