From 73384b2afe37b6f62860276921e537be3078b8ce Mon Sep 17 00:00:00 2001 From: Marcel Vogt Date: Mon, 13 Jun 2016 22:23:26 +0200 Subject: [PATCH] [nick.de] add new extractor --- youtube_dl/extractor/extractors.py | 1 + youtube_dl/extractor/nickde.py | 39 ++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 youtube_dl/extractor/nickde.py diff --git a/youtube_dl/extractor/extractors.py b/youtube_dl/extractor/extractors.py index 5fce9f47a..623f94eb3 100644 --- a/youtube_dl/extractor/extractors.py +++ b/youtube_dl/extractor/extractors.py @@ -513,6 +513,7 @@ from .nhl import ( NHLIE, ) from .nick import NickIE +from .nickde import NickDeIE from .niconico import NiconicoIE, NiconicoPlaylistIE from .ninegag import NineGagIE from .noco import NocoIE diff --git a/youtube_dl/extractor/nickde.py b/youtube_dl/extractor/nickde.py new file mode 100644 index 000000000..55df1caa3 --- /dev/null +++ b/youtube_dl/extractor/nickde.py @@ -0,0 +1,39 @@ +# coding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor + + +class NickDeIE(InfoExtractor): + IE_NAME = 'nick.de' + _VALID_URL = r'https?://(?:www\.)?nick\.de/shows/(?P[\d]+)[\-\w]+' + _TESTS = [] + + def _extract_mgid(self, webpage): + return self._search_regex(r'data-contenturi="([^"]+)', webpage, 'mgid') + + def _real_extract(self, url): + video_id = self._match_id(url) + webpage = self._download_webpage(url, video_id) + viedeo_title_p1 = self._search_regex(r'\s*([^\<\>\\]*)\s*', webpage, 'Series Name') + viedeo_title_p2 = self._search_regex(r'\s*([^\<\>\\]*)\s*', webpage,'Episode Name') + metadata_regex = r'data-mrss="(http://gakusei-cluster\.mtvnn\.com/v2/mrss\.xml\?uri=mgid\:sensei\:video\:mtvnn.com\:local_playlist-[\w]+)"' + meta_url = self._search_regex(metadata_regex, webpage, 'nick.de metadata') + metadata = self._download_webpage(meta_url, video_id,'Downloading metadata') + ply_regex_str = r'url=\'(http\://videos\.mtvnn\.com/mediagen/[\w]+)\'' + ply_list_url = self._search_regex(ply_regex_str,metadata,'nick.de playlist url') + video_title = viedeo_title_p1 + ' - ' + viedeo_title_p2 + video_title = video_title.replace(r'/',r'-') + video_title = video_title.replace(r'“','') + video_title = video_title.replace(r'”“','') + pl_dat = self._download_webpage(ply_list_url,video_id,'Downloading Playlist') + vurl_regex = r'(rtmp://cp[\d]+\.edgefcs\.net/ondemand/riptide/r[\d]+/production/[\d]+/[\d]+/[\d]+/[\w]+/mp4_640px_[\w\d]+\.mp4)' + vurl = self._search_regex(vurl_regex,pl_dat,'Videourl') + return { + 'id': video_id, + 'title': video_title, + 'ext': 'mp4', + 'description': self._og_search_description(webpage), + 'url': vurl + # TODO more properties (see youtube_dl/extractor/common.py) + } \ No newline at end of file