diff options
author | Remita Amine <remitamine@gmail.com> | 2017-12-11 17:18:05 +0100 |
---|---|---|
committer | Remita Amine <remitamine@gmail.com> | 2017-12-11 17:18:05 +0100 |
commit | 08d77a95c98a1d1dcaa5df99b709f119e7a64f37 (patch) | |
tree | ef86cab111214ceb4357c0904f25772c32fc05d8 /youtube_dl/extractor | |
parent | 5868079e9921bfb03c64439d2188b765fc30dcfc (diff) |
[nickelodeon:br] add support for Nickelodeon(Brazil) websites(closes #14893)
Diffstat (limited to 'youtube_dl/extractor')
-rw-r--r-- | youtube_dl/extractor/nick.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/youtube_dl/extractor/nick.py b/youtube_dl/extractor/nick.py index cae8faf3e..f38c2c725 100644 --- a/youtube_dl/extractor/nick.py +++ b/youtube_dl/extractor/nick.py @@ -79,6 +79,51 @@ class NickIE(MTVServicesInfoExtractor): return self._get_videos_info(video_data['player'] + video_data['id']) +class NickBeIE(MTVServicesInfoExtractor): + IE_NAME = 'nickelodeon:br' + _VALID_URL = r'https?://(?P<domain>(?:www\.)?nickjr|mundonick\.uol)\.com\.br/(?:programas/)?[^/]+/videos/(?:episodios/)?(?P<id>[^/?#.]+)' + _TESTS = [{ + 'url': 'http://www.nickjr.com.br/patrulha-canina/videos/210-labirinto-de-pipoca/', + 'only_matching': True, + }, { + 'url': 'http://mundonick.uol.com.br/programas/the-loud-house/videos/muitas-irmas/7ljo9j', + 'only_matching': True, + }] + + def _real_extract(self, url): + domain, display_id = re.match(self._VALID_URL, url).groups() + webpage = self._download_webpage(url, display_id) + uri = self._search_regex( + r'data-(?:contenturi|mgid)="([^"]+)', webpage, 'mgid') + video_id = self._id_from_uri(uri) + config = self._download_json( + 'http://media.mtvnservices.com/pmt/e1/access/index.html', + video_id, query={ + 'uri': uri, + 'configtype': 'edge', + }, headers={ + 'Referer': url, + }) + info_url = self._remove_template_parameter(config['feedWithQueryParams']) + if info_url == 'None': + if domain.startswith('www.'): + domain = domain[4:] + content_domain = { + 'mundonick.uol': 'mundonick.com.br', + 'nickjr': 'br.nickelodeonjunior.tv', + }[domain] + query = { + 'mgid': uri, + 'imageEp': content_domain, + 'arcEp': content_domain, + } + if domain == 'nickjr.com.br': + query['ep'] = 'c4b16088' + info_url = update_url_query( + 'http://feeds.mtvnservices.com/od/feed/intl-mrss-player-feed', query) + return self._get_videos_info_from_url(info_url, video_id) + + class NickDeIE(MTVServicesInfoExtractor): IE_NAME = 'nick.de' _VALID_URL = r'https?://(?:www\.)?(?P<host>nick\.(?:de|com\.pl|ch)|nickelodeon\.(?:nl|be|at|dk|no|se))/[^/]+/(?:[^/]+/)*(?P<id>[^/?#&]+)' |