]> jfr.im git - yt-dlp.git/commitdiff
Merge pull request #193 from blackjack4494/NICK_MTV
authorTom-Oliver Heidel <redacted>
Sat, 17 Oct 2020 08:26:57 +0000 (10:26 +0200)
committerGitHub <redacted>
Sat, 17 Oct 2020 08:26:57 +0000 (10:26 +0200)
[MTV/Nick] universal mgid extractor + fix nick.de feed

youtube_dlc/extractor/mtv.py
youtube_dlc/extractor/nick.py

index cc4b0114a963649d3332b7ecb9c45e054b603be3..6b3658397fee31566086f288dd02d8ce02cfc7a8 100644 (file)
@@ -306,7 +306,11 @@ def _extract_mgid(self, webpage, url, data_zone=None):
             window_data = self._parse_json(self._search_regex(
                 r'(?s)window.__DATA__ = (?P<json>{.+});', webpage,
                 'JSON Window Data', default=None, fatal=False, group='json'), title, fatal=False)
-            mgid = window_data['children'][4]['children'][0]['props']['media']['video']['config']['uri']
+            main_container = None
+            for i in range(len(window_data['children'])):
+                if window_data['children'][i]['type'] == 'MainContainer':
+                    main_container = window_data['children'][i]
+            mgid = main_container['children'][0]['props']['media']['video']['config']['uri']
         except (KeyError, IndexError, TypeError):
             pass
 
index 04b98f7bde53af6713338bda58951ead91268d5f..7e981b8c16880359aca91b928cda882d3df2c2d4 100644 (file)
@@ -176,21 +176,11 @@ class NickDeIE(MTVServicesInfoExtractor):
         'only_matching': True,
     }]
 
-    def _extract_mrss_url(self, webpage, host):
-        return update_url_query(self._search_regex(
-            r'data-mrss=(["\'])(?P<url>http.+?)\1', webpage, 'mrss url', group='url'),
-            {'siteKey': host})
-
-    def _real_extract(self, url):
-        mobj = re.match(self._VALID_URL, url)
-        video_id = mobj.group('id')
-        host = mobj.group('host')
-
-        webpage = self._download_webpage(url, video_id)
-
-        mrss_url = self._extract_mrss_url(webpage, host)
-
-        return self._get_videos_info_from_url(mrss_url, video_id)
+    def _get_feed_url(self, uri, url=None):
+        video_id = self._id_from_uri(uri)
+        config = self._download_json(
+            'http://media.mtvnservices.com/pmt/e1/access/index.html?uri=%s&configtype=edge&ref=%s' % (uri, url), video_id)
+        return self._remove_template_parameter(config['feedWithQueryParams'])
 
 
 class NickNightIE(NickDeIE):