Improve Statigr.am IE
authorPhilipp Hagemeister <phihag@phihag.de>
Sun, 23 Jun 2013 16:58:53 +0000 (18:58 +0200)
committerPhilipp Hagemeister <phihag@phihag.de>
Sun, 23 Jun 2013 16:58:53 +0000 (18:58 +0200)
test/tests.json
youtube_dl/InfoExtractors.py

index c2c6421fd7a12145053737de1258c49556383bb1..b112e631878a64d22ddcda287d2efe8f6ec37c68 100644 (file)
     "skip": "Requires rtmpdump"
   },
   {
-    "name": "Statigr",
+    "name": "Statigram",
     "url": "http://statigr.am/p/484091715184808010_284179915",
     "file": "484091715184808010_284179915.mp4",
     "md5": "deda4ff333abe2e118740321e992605b",
index 4aec8c6879e79ccc13cf5e9bcfbf9abc17c4d1d1..507dfc324599532be67eadb1ceda4e445f287cd0 100755 (executable)
@@ -4552,20 +4552,28 @@ class GametrailersIE(InfoExtractor):
                 'description': video_description,
                 }
 
-class StatigrIE(InfoExtractor):
+class StatigramIE(InfoExtractor):
     _VALID_URL = r'(?:http://)?(?:www\.)?statigr\.am/p/([^/]+)'
 
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
-        if mobj is None:
-            raise ExtractorError(u'Invalid URL: %s' % url)
+
         video_id = mobj.group(1)
         webpage = self._download_webpage(url, video_id)
-        video_url = re.search(r'<meta property="og:video:secure_url" content="(.+?)">',webpage).group(1)
-        thumbnail_url = re.search(r'<meta property="og:image" content="(.+?)" />',webpage).group(1)
-        title = (re.search(r'<title>(.+?)</title>',webpage).group(1)).strip("| Statigram")
-        uploader = re.search(r'@(.+) \(Videos\)',title).group(1)
-        ext = "mp4"
+        video_url = self._html_search_regex(
+            r'<meta property="og:video:secure_url" content="(.+?)">',
+            webpage, u'video URL')
+        thumbnail_url = self._html_search_regex(
+            r'<meta property="og:image" content="(.+?)" />',
+            webpage, u'thumbnail URL', fatal=False)
+        html_title = self._html_search_regex(
+            r'<title>(.+?)</title>',
+            webpage, u'title')
+        title = html_title.rpartition(u' | Statigram')[0]
+        uploader = self._html_search_regex(
+            r'@(.+) \(Videos\)', title, u'uploader name', fatal=False)
+        ext = 'mp4'
+
         return [{
             'id':        video_id,
             'url':       video_url,
@@ -4641,7 +4649,7 @@ def gen_extractors():
         HypemIE(),
         Vbox7IE(),
         GametrailersIE(),
-        StatigrIE(),
+        StatigramIE(),
         GenericIE()
     ]