diff options
Diffstat (limited to 'youtube_dl/extractor/rtlnow.py')
| -rw-r--r-- | youtube_dl/extractor/rtlnow.py | 42 | 
1 files changed, 36 insertions, 6 deletions
diff --git a/youtube_dl/extractor/rtlnow.py b/youtube_dl/extractor/rtlnow.py index 7bb236c2b..d1b08c9bc 100644 --- a/youtube_dl/extractor/rtlnow.py +++ b/youtube_dl/extractor/rtlnow.py @@ -8,8 +8,8 @@ from ..utils import (  )  class RTLnowIE(InfoExtractor): -    """Information Extractor for RTL NOW, RTL2 NOW, SUPER RTL NOW and VOX NOW""" -    _VALID_URL = r'(?:http://)?(?P<url>(?P<base_url>rtl-now\.rtl\.de/|rtl2now\.rtl2\.de/|(?:www\.)?voxnow\.de/|(?:www\.)?superrtlnow\.de/)[a-zA-Z0-9-]+/[a-zA-Z0-9-]+\.php\?(?:container_id|film_id)=(?P<video_id>[0-9]+)&player=1(?:&season=[0-9]+)?(?:&.*)?)' +    """Information Extractor for RTL NOW, RTL2 NOW, RTL NITRO, SUPER RTL NOW, VOX NOW and n-tv NOW""" +    _VALID_URL = r'(?:http://)?(?P<url>(?P<base_url>rtl-now\.rtl\.de/|rtl2now\.rtl2\.de/|(?:www\.)?voxnow\.de/|(?:www\.)?rtlnitronow\.de/|(?:www\.)?superrtlnow\.de/|(?:www\.)?n-tvnow\.de/)[a-zA-Z0-9-]+/[a-zA-Z0-9-]+\.php\?(?:container_id|film_id)=(?P<video_id>[0-9]+)&player=1(?:&season=[0-9]+)?(?:&.*)?)'      _TESTS = [{          u'url': u'http://rtl-now.rtl.de/ahornallee/folge-1.php?film_id=90419&player=1&season=1',          u'file': u'90419.flv', @@ -61,8 +61,35 @@ class RTLnowIE(InfoExtractor):          u'params': {              u'skip_download': True,          }, +    }, +    { +        u'url': u'http://www.rtlnitronow.de/recht-ordnung/lebensmittelkontrolle-erlangenordnungsamt-berlin.php?film_id=127367&player=1&season=1', +        u'file': u'127367.flv', +        u'info_dict': { +            u'upload_date': u'20130926',  +            u'title': u'Recht & Ordnung - Lebensmittelkontrolle Erlangen/Ordnungsamt...', +            u'description': u'Lebensmittelkontrolle Erlangen/Ordnungsamt Berlin', +            u'thumbnail': u'http://autoimg.static-fra.de/nitronow/344787/1500x1500/image2.jpg', +        }, +        u'params': { +            u'skip_download': True, +        }, +    }, +    { +        u'url': u'http://www.n-tvnow.de/top-gear/episode-1-2013-01-01-00-00-00.php?film_id=124903&player=1&season=10', +        u'file': u'124903.flv', +        u'info_dict': { +            u'upload_date': u'20130101',  +            u'title': u'Top Gear vom 01.01.2013', +            u'description': u'Episode 1', +        }, +        u'params': { +            u'skip_download': True, +        }, +        u'skip': u'Only works from Germany',      }] +      def _real_extract(self,url):          mobj = re.match(self._VALID_URL, url) @@ -79,20 +106,23 @@ class RTLnowIE(InfoExtractor):              msg = clean_html(note_m.group(1))              raise ExtractorError(msg) -        video_title = self._html_search_regex(r'<title>(?P<title>[^<]+)</title>', +        video_title = self._html_search_regex(r'<title>(?P<title>[^<]+?)( \| [^<]*)?</title>',              webpage, u'title')          playerdata_url = self._html_search_regex(r'\'playerdata\': \'(?P<playerdata_url>[^\']+)\'',              webpage, u'playerdata_url')          playerdata = self._download_webpage(playerdata_url, video_id) -        mobj = re.search(r'<title><!\[CDATA\[(?P<description>.+?)\s+- (?:Sendung )?vom (?P<upload_date_d>[0-9]{2})\.(?P<upload_date_m>[0-9]{2})\.(?:(?P<upload_date_Y>[0-9]{4})|(?P<upload_date_y>[0-9]{2})) [0-9]{2}:[0-9]{2} Uhr\]\]></title>', playerdata) +        mobj = re.search(r'<title><!\[CDATA\[(?P<description>.+?)(?:\s+- (?:Sendung )?vom (?P<upload_date_d>[0-9]{2})\.(?P<upload_date_m>[0-9]{2})\.(?:(?P<upload_date_Y>[0-9]{4})|(?P<upload_date_y>[0-9]{2})) [0-9]{2}:[0-9]{2} Uhr)?\]\]></title>', playerdata)          if mobj:              video_description = mobj.group(u'description')              if mobj.group('upload_date_Y'):                  video_upload_date = mobj.group('upload_date_Y') -            else: +            elif mobj.group('upload_date_y'):                  video_upload_date = u'20' + mobj.group('upload_date_y') -            video_upload_date += mobj.group('upload_date_m')+mobj.group('upload_date_d') +            else: +                video_upload_date = None +            if video_upload_date: +                video_upload_date += mobj.group('upload_date_m')+mobj.group('upload_date_d')          else:              video_description = None              video_upload_date = None  | 
