]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/gametrailers.py 
   1  from  __future__ 
import  unicode_literals
   3  from  . common 
import  InfoExtractor
  11  class  GametrailersIE ( InfoExtractor
):   12      _VALID_URL 
=  r
'http://www\.gametrailers\.com/videos/view/[^/]+/(?P<id>.+)'   15          'url' :  'http://www.gametrailers.com/videos/view/gametrailers-com/116437-Just-Cause-3-Review' ,   16          'md5' :  'f28c4efa0bdfaf9b760f6507955b6a6a' ,   20              'display_id' :  '116437-Just-Cause-3-Review' ,   21              'title' :  'Just Cause 3 - Review' ,   22              'description' :  'It \' s a lot of fun to shoot at things and then watch them explode in Just Cause 3, but should there be more to the experience than that?' ,   26      def  _real_extract ( self
,  url
):   27          display_id 
=  self
._ match
_ id
( url
)   28          webpage 
=  self
._ download
_ webpage
( url
,  display_id
)   29          title 
=  self
._ html
_ search
_ regex
(   30              r
'<title>(.+?)\|' ,  webpage
,  'title' ). strip ()   31          embed_url 
=  self
._ proto
_ relative
_u rl
(   33                  r
'src=\' (// embed
. gametrailers
. com
/ embed
/[ ^
\' ]+) \' ', webpage,   36          video_id = url_basename(embed_url)   37          embed_page = self._download_webpage(embed_url, video_id)   38          embed_vars_json = self._search_regex(   39              r' ( ?s
) var embedVars 
= ( \
{.* ?\
}) \s
*</ script
> ', embed_page,   41          info = self._parse_json(embed_vars_json, video_id)   44          for media in info[' media
']:   45              if media[' mediaPurpose
'] == ' play
':   48                      ' height
': media[' height
'],   49                      ' width
: ': media[' width
'],   51          self._sort_formats(formats)   55              ' display_id
': display_id,   58              ' thumbnail
': info.get(' thumbUri
'),   59              ' description
': self._og_search_description(webpage),   60              ' duration
': int_or_none(info.get(' videoLengthInSeconds
')),   61              ' age_limit
': parse_age_limit(info.get(' audienceRating
')),