summary refs log tree commit diff
diff options
context:
space:
mode:
authorYen Chi Hsuan <yan12125@gmail.com>2015-03-31 03:36:09 +0800
committerYen Chi Hsuan <yan12125@gmail.com>2015-03-31 03:36:09 +0800
commita2edf2e7ff314eaa3124c1da1b962d054b6d9fff (patch)
treec9c210a3482f8039006c015d1082a4fce17308ec
parent1d31e7a2fc2fb78c792754578a8a58b056811b84 (diff)
downloadyoutube-dl-a2edf2e7ff314eaa3124c1da1b962d054b6d9fff.tar.gz
youtube-dl-a2edf2e7ff314eaa3124c1da1b962d054b6d9fff.tar.xz
youtube-dl-a2edf2e7ff314eaa3124c1da1b962d054b6d9fff.zip
[NBC/ThePlatform/Generic] Add a generic detector for NBCSportsVPlayer and enhance error detection in ThePlatformIE
-rw-r--r--youtube_dl/extractor/generic.py15
-rw-r--r--youtube_dl/extractor/nbc.py2
-rw-r--r--youtube_dl/extractor/theplatform.py2
3 files changed, 17 insertions, 2 deletions
diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py
index 042d23a13..9ddf36f6b 100644
--- a/youtube_dl/extractor/generic.py
+++ b/youtube_dl/extractor/generic.py
@@ -29,6 +29,7 @@ from ..utils import (
     xpath_text,
 )
 from .brightcove import BrightcoveIE
+from .nbc import NBCSportsVPlayerIE
 from .ooyala import OoyalaIE
 from .rutv import RUTVIE
 from .smotri import SmotriIE
@@ -639,6 +640,15 @@ class GenericIE(InfoExtractor):
                 'upload_date': '20150228',
                 'title': 'pdv_maddow_netcast_m4v-02-27-2015-201624',
             }
+        },
+        # NBC Sports vplayer embeds
+        {
+            'url': 'http://bbs.clutchfans.net/showthread.php?t=244180',
+            'info_dict': {
+                'id': '_hqLjQ95yx8Z',
+                'ext': 'flv'
+            },
+            'skip': 'This content expired on 9/17/14 12:23 PM',
         }
     ]
 
@@ -1252,6 +1262,11 @@ class GenericIE(InfoExtractor):
         if mobj is not None:
             return self.url_result('5min:%s' % mobj.group('id'), 'FiveMin')
 
+        # Look for NBC Sports VPlayer embeds
+        nbc_sports_url = NBCSportsVPlayerIE._extract_url(webpage)
+        if nbc_sports_url:
+            return self.url_result(nbc_sports_url, 'NBCSportsVPlayer')
+
         def check_video(vurl):
             if YoutubeIE.suitable(vurl):
                 return True
diff --git a/youtube_dl/extractor/nbc.py b/youtube_dl/extractor/nbc.py
index c8dd72ab4..be9969d12 100644
--- a/youtube_dl/extractor/nbc.py
+++ b/youtube_dl/extractor/nbc.py
@@ -51,7 +51,7 @@ class NBCIE(InfoExtractor):
 
 
 class NBCSportsVPlayerIE(InfoExtractor):
-    _VALID_URL = r'https?://vplayer\.nbcsports\.com/(?:[^/]+/)+(?P<id>[0-9a-zA-Z]+)'
+    _VALID_URL = r'https?://vplayer\.nbcsports\.com/(?:[^/]+/)+(?P<id>[0-9a-zA-Z_]+)'
 
     _TEST = {
         'url': 'https://vplayer.nbcsports.com/p/BxmELC/nbcsports_share/select/9CsDKds0kvHI',
diff --git a/youtube_dl/extractor/theplatform.py b/youtube_dl/extractor/theplatform.py
index feac666f7..0e3e627f4 100644
--- a/youtube_dl/extractor/theplatform.py
+++ b/youtube_dl/extractor/theplatform.py
@@ -92,7 +92,7 @@ class ThePlatformIE(InfoExtractor):
             error_msg = next(
                 n.attrib['abstract']
                 for n in meta.findall(_x('.//smil:ref'))
-                if n.attrib.get('title') == 'Geographic Restriction')
+                if n.attrib.get('title') == 'Geographic Restriction' or n.attrib.get('title') == 'Expired')
         except StopIteration:
             pass
         else: