]>
Raphaël G. Git Repositories - youtubedl/blob - youtube_dl/extractor/aol.py 
   2  from  __future__ 
import  unicode_literals
   6  from  . common 
import  InfoExtractor
  13  class  AolIE ( InfoExtractor
):   14      IE_NAME 
=  'on.aol.com'   15      _VALID_URL 
=  r
'(?:aol-video:|https?://(?:(?:www|on)\.)?aol\.com/(?:[^/]+/)*(?:[^/?#&]+-)?)(?P<id>[^/?#&]+)'   19          'url' :  'http://on.aol.com/video/u-s--official-warns-of-largest-ever-irs-phone-scam-518167793?icid=OnHomepageC2Wide_MustSee_Img' ,   20          'md5' :  '18ef68f48740e86ae94b98da815eec42' ,   24              'title' :  'U.S. Official Warns Of  \' Largest Ever \'  IRS Phone Scam' ,   25              'description' :  'A major phone scam has cost thousands of taxpayers more than $1 million, with less than a month until income tax returns are due to the IRS.' ,   26              'timestamp' :  1395405060 ,   27              'upload_date' :  '20140321' ,   28              'uploader' :  'Newsy Studio' ,   32              'skip_download' :  True ,   35          # video with vidible ID   36          'url' :  'http://www.aol.com/video/view/netflix-is-raising-rates/5707d6b8e4b090497b04f706/' ,   38              'id' :  '5707d6b8e4b090497b04f706' ,   40              'title' :  'Netflix is Raising Rates' ,   41              'description' :  'Netflix is rewarding millions of it’s long-standing members with an increase in cost. Veuer’s Carly Figueroa has more.' ,   42              'upload_date' :  '20160408' ,   43              'timestamp' :  1460123280 ,   48              'skip_download' :  True ,   51          'url' :  'http://on.aol.com/partners/abc-551438d309eab105804dbfe8/sneak-peek-was-haley-really-framed-570eaebee4b0448640a5c944' ,   52          'only_matching' :  True ,   54          'url' :  'http://on.aol.com/shows/park-bench-shw518173474-559a1b9be4b0c3bfad3357a7?context=SH:SHW518173474:PL4327:1460619712763' ,   55          'only_matching' :  True ,   57          'url' :  'http://on.aol.com/video/519442220' ,   58          'only_matching' :  True ,   60          'url' :  'aol-video:5707d6b8e4b090497b04f706' ,   61          'only_matching' :  True ,   64      def  _real_extract ( self
,  url
):   65          video_id 
=  self
._ match
_ id
( url
)   67          response 
=  self
._ download
_ json
(   68              'https://feedapi.b2c.on.aol.com/v1.0/app/videos/aolon/ %s /details'  %  video_id
,   70          if  response
[ 'statusText' ] !=  'Ok' :   71              raise  ExtractorError ( ' %s  said:  %s '  % ( self
. IE_NAME
,  response
[ 'statusText' ]),  expected
= True )   73          video_data 
=  response
[ 'data' ]   75          m3u8_url 
=  video_data
. get ( 'videoMasterPlaylist' )   77              formats
. extend ( self
._ extract
_ m
3u8_ formats
(   78                  m3u8_url
,  video_id
,  'mp4' ,  m3u8_id
= 'hls' ,  fatal
= False ))   79          for  rendition 
in  video_data
. get ( 'renditions' , []):   80              video_url 
=  rendition
. get ( 'url' )   83              ext 
=  rendition
. get ( 'format' )   85                  formats
. extend ( self
._ extract
_ m
3u8_ formats
(   86                      video_url
,  video_id
,  'mp4' ,  m3u8_id
= 'hls' ,  fatal
= False ))   90                      'format_id' :  rendition
. get ( 'quality' ),   92                  mobj 
=  re
. search ( r
'(\d+)x(\d+)' ,  video_url
)   95                          'width' :  int ( mobj
. group ( 1 )),   96                          'height' :  int ( mobj
. group ( 2 )),   99          self
._ sort
_ formats
( formats
, ( 'width' ,  'height' ,  'tbr' ,  'format_id' ))  103              'title' :  video_data
[ 'title' ],  104              'duration' :  int_or_none ( video_data
. get ( 'duration' )),  105              'timestamp' :  int_or_none ( video_data
. get ( 'publishDate' )),  106              'view_count' :  int_or_none ( video_data
. get ( 'views' )),  107              'description' :  video_data
. get ( 'description' ),  108              'uploader' :  video_data
. get ( 'videoOwner' ),