[ard] Detect unavailable videos (closes #11018)
authorSergey M․ <dstftw@gmail.com>
Tue, 25 Oct 2016 14:21:47 +0000 (21:21 +0700)
committerSergey M․ <dstftw@gmail.com>
Tue, 25 Oct 2016 14:21:47 +0000 (21:21 +0700)
youtube_dl/extractor/ard.py

index 3a806a69b837a02d430d9e8f131acc116dbbe004..c784f7172595c78c1a4a66047d449ff7d9d35f26 100644 (file)
@@ -174,11 +174,17 @@ class ARDMediathekIE(InfoExtractor):
 
         webpage = self._download_webpage(url, video_id)
 
-        if '>Der gewünschte Beitrag ist nicht mehr verfügbar.<' in webpage:
-            raise ExtractorError('Video %s is no longer available' % video_id, expected=True)
+        ERRORS = (
+            ('>Leider liegt eine Störung vor.', 'Video %s is unavailable'),
+            ('>Der gewünschte Beitrag ist nicht mehr verfügbar.<',
+             'Video %s is no longer available'),
+            ('Diese Sendung ist für Jugendliche unter 12 Jahren nicht geeignet. Der Clip ist deshalb nur von 20 bis 6 Uhr verfügbar.',
+             'This program is only suitable for those aged 12 and older. Video %s is therefore only available between 20 pm and 6 am.'),
+        )
 
-        if 'Diese Sendung ist für Jugendliche unter 12 Jahren nicht geeignet. Der Clip ist deshalb nur von 20 bis 6 Uhr verfügbar.' in webpage:
-            raise ExtractorError('This program is only suitable for those aged 12 and older. Video %s is therefore only available between 20 pm and 6 am.' % video_id, expected=True)
+        for pattern, message in ERRORS:
+            if pattern in webpage:
+                raise ExtractorError(message % video_id, expected=True)
 
         if re.search(r'[\?&]rss($|[=&])', url):
             doc = compat_etree_fromstring(webpage.encode('utf-8'))