2014-02-02 22:52:47 +11:00
from __future__ import unicode_literals
2013-06-30 00:17:27 +10:00
import re
from . common import InfoExtractor
class TrailerAddictIE ( InfoExtractor ) :
2013-07-24 18:43:44 +10:00
_VALID_URL = r ' (?:http://)?(?:www \ .)?traileraddict \ .com/(?:trailer|clip)/(?P<movie>.+?)/(?P<trailer_name>.+) '
2013-06-30 00:17:27 +10:00
_TEST = {
2014-02-02 22:52:47 +11:00
' url ' : ' http://www.traileraddict.com/trailer/prince-avalanche/trailer ' ,
' md5 ' : ' 41365557f3c8c397d091da510e73ceb4 ' ,
' info_dict ' : {
' id ' : ' 76184 ' ,
' ext ' : ' mp4 ' ,
' title ' : ' Prince Avalanche Trailer ' ,
' description ' : ' Trailer for Prince Avalanche. \n \n Two 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. ' ,
2013-06-30 00:17:27 +10:00
}
}
def _real_extract ( self , url ) :
mobj = re . match ( self . _VALID_URL , url )
2013-07-24 18:43:44 +10:00
name = mobj . group ( ' movie ' ) + ' / ' + mobj . group ( ' trailer_name ' )
webpage = self . _download_webpage ( url , name )
2013-07-24 16:33:48 +10:00
2013-06-30 00:17:27 +10:00
title = self . _search_regex ( r ' <title>(.+?)</title> ' ,
webpage , ' video title ' ) . replace ( ' - Trailer Addict ' , ' ' )
2014-02-02 22:52:47 +11:00
view_count_str = self . _search_regex (
r ' <span class= " views_n " >([0-9,.]+)</span> ' ,
webpage , ' view count ' , fatal = False )
view_count = (
None if view_count_str is None
else int ( view_count_str . replace ( ' , ' , ' ' ) ) )
video_id = self . _search_regex (
r ' <param \ s+name= " movie " \ s+value= " /emb/([0-9]+) " \ s*/> ' ,
webpage , ' video id ' )
2013-07-13 03:00:19 +10:00
2013-07-24 16:33:48 +10:00
# Presence of (no)watchplus function indicates HD quality is available
if re . search ( r ' function (no)?watchplus() ' , webpage ) :
fvar = " fvarhd "
else :
fvar = " fvar "
info_url = " http://www.traileraddict.com/ %s .php?tid= %s " % ( fvar , str ( video_id ) )
2013-06-30 00:17:27 +10:00
info_webpage = self . _download_webpage ( info_url , video_id , " Downloading the info webpage " )
2013-07-24 16:33:48 +10:00
2013-06-30 00:17:27 +10:00
final_url = self . _search_regex ( r ' &fileurl=(.+) ' ,
info_webpage , ' Download url ' ) . replace ( ' %3F ' , ' ? ' )
thumbnail_url = self . _search_regex ( r ' &image=(.+?)& ' ,
info_webpage , ' thumbnail url ' )
2014-02-02 22:52:47 +11:00
description = self . _html_search_regex (
r ' (?s)<div class= " synopsis " >.*?<div class= " movie_label_info " [^>]*>(.*?)</div> ' ,
webpage , ' description ' , fatal = False )
return {
' id ' : video_id ,
' url ' : final_url ,
' title ' : title ,
' thumbnail ' : thumbnail_url ,
' description ' : description ,
' view_count ' : view_count ,
}