[thisav] Add IE (Fixes #1056)
[youtube-dl] / youtube_dl / extractor / thisav.py
1 #coding: utf-8
2
3 import re
4
5 from .common import InfoExtractor
6 from ..utils import (
7     determine_ext,
8 )
9
10 class ThisAVIE(InfoExtractor):
11     _VALID_URL = r'https?://(?:www\.)?thisav\.com/video/(?P<id>[0-9]+)/.*'
12     _TEST = {
13         u"url": u"http://www.thisav.com/video/47734/%98%26sup1%3B%83%9E%83%82---just-fit.html",
14         u"file": u"47734.flv",
15         u"info_dict": {
16             u"title": u"高樹マリア - Just fit",
17             u"uploader": u"dj7970",
18             u"uploader_id": u"dj7970"
19         }
20     }
21
22     def _real_extract(self, url):
23         mobj = re.match(self._VALID_URL, url)
24
25         video_id = mobj.group('id')
26         webpage = self._download_webpage(url, video_id)
27         title = self._html_search_regex(r'<h1>([^<]*)</h1>', webpage, u'title')
28         video_url = self._html_search_regex(
29             r"addVariable\('file','([^']+)'\);", webpage, u'video url')
30         uploader = self._html_search_regex(
31             r': <a href="http://www.thisav.com/user/[0-9]+/(?:[^"]+)">([^<]+)</a>',
32             webpage, u'uploader name', fatal=False)
33         uploader_id = self._html_search_regex(
34             r': <a href="http://www.thisav.com/user/[0-9]+/([^"]+)">(?:[^<]+)</a>',
35             webpage, u'uploader id', fatal=False)
36         ext = determine_ext(video_url)
37         
38         return {
39             '_type':       'video',
40             'id':          video_id,
41             'url':         video_url,
42             'uploader':    uploader,
43             'uploader_id': uploader_id,
44             'title':       title,
45             'ext':         ext,
46         }