diff options
author | Remita Amine <remitamine@gmail.com> | 2021-01-21 23:53:09 +0100 |
---|---|---|
committer | Remita Amine <remitamine@gmail.com> | 2021-01-21 23:53:09 +0100 |
commit | fa8f6d858064cf07b9167b73647545b3007c6b21 (patch) | |
tree | cae2a3be648e2a360141226ac1069cac9d4d5ceb /youtube_dl/extractor/mtv.py | |
parent | 3bb7769c405e02fc1078252cafbbd982913fe50c (diff) | |
download | youtube-dl-fa8f6d858064cf07b9167b73647545b3007c6b21.tar.gz youtube-dl-fa8f6d858064cf07b9167b73647545b3007c6b21.tar.xz youtube-dl-fa8f6d858064cf07b9167b73647545b3007c6b21.zip |
[comedycentral] fix extraction(closes #27905)
Diffstat (limited to 'youtube_dl/extractor/mtv.py')
-rw-r--r-- | youtube_dl/extractor/mtv.py | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/youtube_dl/extractor/mtv.py b/youtube_dl/extractor/mtv.py index df1034fc5..f5e30d22d 100644 --- a/youtube_dl/extractor/mtv.py +++ b/youtube_dl/extractor/mtv.py @@ -253,6 +253,10 @@ class MTVServicesInfoExtractor(InfoExtractor): return try_get(feed, lambda x: x['result']['data']['id'], compat_str) + @staticmethod + def _extract_child_with_type(parent, t): + return next(c for c in parent['children'] if c.get('type') == t) + def _extract_mgid(self, webpage): try: # the url can be http://media.mtvnservices.com/fb/{mgid}.swf @@ -278,6 +282,13 @@ class MTVServicesInfoExtractor(InfoExtractor): if not mgid: mgid = self._extract_triforce_mgid(webpage) + if not mgid: + data = self._parse_json(self._search_regex( + r'__DATA__\s*=\s*({.+?});', webpage, 'data'), None) + main_container = self._extract_child_with_type(data, 'MainContainer') + video_player = self._extract_child_with_type(main_container, 'VideoPlayer') + mgid = video_player['props']['media']['video']['config']['uri'] + return mgid def _real_extract(self, url): @@ -349,18 +360,6 @@ class MTVIE(MTVServicesInfoExtractor): 'only_matching': True, }] - @staticmethod - def extract_child_with_type(parent, t): - children = parent['children'] - return next(c for c in children if c.get('type') == t) - - def _extract_mgid(self, webpage): - data = self._parse_json(self._search_regex( - r'__DATA__\s*=\s*({.+?});', webpage, 'data'), None) - main_container = self.extract_child_with_type(data, 'MainContainer') - video_player = self.extract_child_with_type(main_container, 'VideoPlayer') - return video_player['props']['media']['video']['config']['uri'] - class MTVJapanIE(MTVServicesInfoExtractor): IE_NAME = 'mtvjapan' |