3 from .common
import InfoExtractor
6 class TrailerAddictIE(InfoExtractor
):
8 _VALID_URL
= r
'(?:https?://)?(?:www\.)?traileraddict\.com/(?:trailer|clip)/(?P<movie>.+?)/(?P<trailer_name>.+)'
10 'url': 'http://www.traileraddict.com/trailer/prince-avalanche/trailer',
11 'md5': '41365557f3c8c397d091da510e73ceb4',
15 'title': 'Prince Avalanche Trailer',
16 'description': 'Trailer for Prince Avalanche.\n\nTwo highway road workers spend the summer of 1988 away from their city lives. The isolated landscape becomes a place of misadventure as the men find themselves at odds with each other and the women they left behind.',
20 def _real_extract(self
, url
):
21 mobj
= self
._match
_valid
_url
(url
)
22 name
= mobj
.group('movie') + '/' + mobj
.group('trailer_name')
23 webpage
= self
._download
_webpage
(url
, name
)
25 title
= self
._html
_extract
_title
(webpage
, 'video title').replace(' - Trailer Addict', '')
26 view_count_str
= self
._search
_regex
(
27 r
'<span class="views_n">([0-9,.]+)</span>',
28 webpage
, 'view count', fatal
=False)
30 None if view_count_str
is None
31 else int(view_count_str
.replace(',', '')))
32 video_id
= self
._search
_regex
(
33 r
'<param\s+name="movie"\s+value="/emb/([0-9]+)"\s*/>',
36 # Presence of (no)watchplus function indicates HD quality is available
37 if re
.search(r
'function (no)?watchplus()', webpage
):
42 info_url
= f
'http://www.traileraddict.com/{fvar}.php?tid={video_id!s}'
43 info_webpage
= self
._download
_webpage
(info_url
, video_id
, 'Downloading the info webpage')
45 final_url
= self
._search
_regex
(r
'&fileurl=(.+)',
46 info_webpage
, 'Download url').replace('%3F', '?')
47 thumbnail_url
= self
._search
_regex
(r
'&image=(.+?)&',
48 info_webpage
, 'thumbnail url')
50 description
= self
._html
_search
_regex
(
51 r
'(?s)<div class="synopsis">.*?<div class="movie_label_info"[^>]*>(.*?)</div>',
52 webpage
, 'description', fatal
=False)
58 'thumbnail': thumbnail_url
,
59 'description': description
,
60 'view_count': view_count
,