diff --git a/test/tests.json b/test/tests.json index c2c6421fd..b112e6318 100644 --- a/test/tests.json +++ b/test/tests.json @@ -632,7 +632,7 @@ "skip": "Requires rtmpdump" }, { - "name": "Statigr", + "name": "Statigram", "url": "http://statigr.am/p/484091715184808010_284179915", "file": "484091715184808010_284179915.mp4", "md5": "deda4ff333abe2e118740321e992605b", diff --git a/youtube_dl/InfoExtractors.py b/youtube_dl/InfoExtractors.py index 4aec8c687..507dfc324 100755 --- a/youtube_dl/InfoExtractors.py +++ b/youtube_dl/InfoExtractors.py @@ -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'',webpage).group(1) - thumbnail_url = re.search(r'',webpage).group(1) - title = (re.search(r'(.+?)',webpage).group(1)).strip("| Statigram") - uploader = re.search(r'@(.+) \(Videos\)',title).group(1) - ext = "mp4" + video_url = self._html_search_regex( + r'', + webpage, u'video URL') + thumbnail_url = self._html_search_regex( + r'', + webpage, u'thumbnail URL', fatal=False) + html_title = self._html_search_regex( + r'(.+?)', + 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() ]