diff options
| author | Pierre Rudloff <contact@rudloff.pro> | 2013-09-03 01:27:49 +0200 | 
|---|---|---|
| committer | Pierre Rudloff <contact@rudloff.pro> | 2013-09-03 01:27:49 +0200 | 
| commit | b0446d6a33ed3b5789e57c83904f1d7cf1a85d19 (patch) | |
| tree | 70a69d7e9bad6a9f2d131b908d0a13b416fed704 /youtube_dl/extractor/veehd.py | |
| parent | 847f582290c6ad6ec0c72760ea3cfa6417d28e3c (diff) | |
| parent | 8e4e89f1c236e1bec38c5363c1c341930056211e (diff) | |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'youtube_dl/extractor/veehd.py')
| -rw-r--r-- | youtube_dl/extractor/veehd.py | 56 | 
1 files changed, 56 insertions, 0 deletions
diff --git a/youtube_dl/extractor/veehd.py b/youtube_dl/extractor/veehd.py new file mode 100644 index 000000000..3a99a29c6 --- /dev/null +++ b/youtube_dl/extractor/veehd.py @@ -0,0 +1,56 @@ +import re +import json + +from .common import InfoExtractor +from ..utils import ( +    compat_urlparse, +    get_element_by_id, +    clean_html, +) + +class VeeHDIE(InfoExtractor): +    _VALID_URL = r'https?://veehd.com/video/(?P<id>\d+)' + +    _TEST = { +        u'url': u'http://veehd.com/video/4686958', +        u'file': u'4686958.mp4', +        u'info_dict': { +            u'title': u'Time Lapse View from Space ( ISS)', +            u'uploader_id': u'spotted', +            u'description': u'md5:f0094c4cf3a72e22bc4e4239ef767ad7', +        }, +    } + +    def _real_extract(self, url): +        mobj = re.match(self._VALID_URL, url) +        video_id = mobj.group('id') + +        webpage = self._download_webpage(url, video_id) +        player_path = self._search_regex(r'\$\("#playeriframe"\).attr\({src : "(.+?)"', +            webpage, u'player path') +        player_url = compat_urlparse.urljoin(url, player_path) +        player_page = self._download_webpage(player_url, video_id, +            u'Downloading player page') +        config_json = self._search_regex(r'value=\'config=({.+?})\'', +            player_page, u'config json') +        config = json.loads(config_json) + +        video_url = compat_urlparse.unquote(config['clip']['url']) +        title = clean_html(get_element_by_id('videoName', webpage).rpartition('|')[0]) +        uploader_id = self._html_search_regex(r'<a href="/profile/\d+">(.+?)</a>', +            webpage, u'uploader') +        thumbnail = self._search_regex(r'<img id="veehdpreview" src="(.+?)"', +            webpage, u'thumbnail') +        description = self._html_search_regex(r'<td class="infodropdown".*?<div>(.*?)<ul', +            webpage, u'description', flags=re.DOTALL) + +        return { +            '_type': 'video', +            'id': video_id, +            'title': title, +            'url': video_url, +            'ext': 'mp4', +            'uploader_id': uploader_id, +            'thumbnail': thumbnail, +            'description': description, +        }  | 
