[paramountnetwork] fix mgid extraction(closes #20241)
authorRemita Amine <remitamine@gmail.com>
Mon, 4 Mar 2019 21:26:32 +0000 (22:26 +0100)
committerRemita Amine <remitamine@gmail.com>
Mon, 4 Mar 2019 21:26:55 +0000 (22:26 +0100)
youtube_dl/extractor/spike.py

index 6090e00662b5517bad5442576c375ad07590a384..21b93a5b3c7e4d2289ce3261f6c737b0f737001e 100644 (file)
@@ -46,8 +46,12 @@ class ParamountNetworkIE(MTVServicesInfoExtractor):
     _GEO_COUNTRIES = ['US']
 
     def _extract_mgid(self, webpage):
-        cs = self._parse_json(self._search_regex(
+        root_data = self._parse_json(self._search_regex(
             r'window\.__DATA__\s*=\s*({.+})',
-            webpage, 'data'), None)['children']
-        c = next(c for c in cs if c.get('type') == 'VideoPlayer')
+            webpage, 'data'), None)
+
+        def find_sub_data(data, data_type):
+            return next(c for c in data['children'] if c.get('type') == data_type)
+
+        c = find_sub_data(find_sub_data(root_data, 'MainContainer'), 'VideoPlayer')
         return c['props']['media']['video']['config']['uri']