diff options
author | Naglis Jonaitis <njonaitis@gmail.com> | 2014-09-20 03:02:11 +0300 |
---|---|---|
committer | Naglis Jonaitis <njonaitis@gmail.com> | 2014-09-20 03:02:11 +0300 |
commit | 746c67d72f760f2805dbc125e5a3863aa0d569e3 (patch) | |
tree | fb41f96eb3d2c1a01124eab3a0a362838911efe5 /youtube_dl/extractor/wistia.py | |
parent | 532f5bff70cc32f54f38fbce9233a88faf4423b9 (diff) |
[wistia] Use API and make more generic
Diffstat (limited to 'youtube_dl/extractor/wistia.py')
-rw-r--r-- | youtube_dl/extractor/wistia.py | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/youtube_dl/extractor/wistia.py b/youtube_dl/extractor/wistia.py index e6bfa9e14..748443f81 100644 --- a/youtube_dl/extractor/wistia.py +++ b/youtube_dl/extractor/wistia.py @@ -1,13 +1,14 @@ from __future__ import unicode_literals -import json import re from .common import InfoExtractor +from ..utils import ExtractorError, compat_urllib_request class WistiaIE(InfoExtractor): _VALID_URL = r'https?://(?:fast\.)?wistia\.net/embed/iframe/(?P<id>[a-z0-9]+)' + _API_URL = 'http://fast.wistia.com/embed/medias/{0:}.json' _TEST = { 'url': 'http://fast.wistia.net/embed/iframe/sh7fpupwlt', @@ -24,11 +25,13 @@ class WistiaIE(InfoExtractor): mobj = re.match(self._VALID_URL, url) video_id = mobj.group('id') - webpage = self._download_webpage(url, video_id) - data_json = self._html_search_regex( - r'Wistia\.iframeInit\((.*?), {}\);', webpage, 'video data') - - data = json.loads(data_json) + request = compat_urllib_request.Request(self._API_URL.format(video_id)) + request.add_header('Referer', url) # Some videos require this. + data_json = self._download_json(request, video_id) + if data_json.get('error'): + raise ExtractorError('Error while getting the playlist', + expected=True) + data = data_json['media'] formats = [] thumbnails = [] |