]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/cwtv.py 
   2  from  __future__ 
import  unicode_literals
   4  from  . common 
import  InfoExtractor
  11  class  CWTVIE ( InfoExtractor
):   12      _VALID_URL 
=  r
'https?://(?:www\.)?cw(?:tv|seed)\.com/shows/(?:[^/]+/) {2} \?play=(?P<id>[a-z0-9] {8} -[a-z0-9] {4} -[a-z0-9] {4} -[a-z0-9] {4} -[a-z0-9] {12} )'   14          'url' :  'http://cwtv.com/shows/arrow/legends-of-yesterday/?play=6b15e985-9345-4f60-baf8-56e96be57c63' ,   16              'id' :  '6b15e985-9345-4f60-baf8-56e96be57c63' ,   18              'title' :  'Legends of Yesterday' ,   19              'description' :  'Oliver and Barry Allen take Kendra Saunders and Carter Hall to a remote location to keep them hidden from Vandal Savage while they figure out how to defeat him.' ,   25              'upload_date' :  '20151203' ,   26              'timestamp' :  1449122100 ,   30              'skip_download' :  True ,   33          'url' :  'http://www.cwseed.com/shows/whose-line-is-it-anyway/jeff-davis-4/?play=24282b12-ead2-42f2-95ad-26770c2c6088' ,   35              'id' :  '24282b12-ead2-42f2-95ad-26770c2c6088' ,   37              'title' :  'Jeff Davis 4' ,   38              'description' :  'Jeff Davis is back to make you laugh.' ,   40              'series' :  'Whose Line Is It Anyway?' ,   44              'upload_date' :  '20151006' ,   45              'timestamp' :  1444107300 ,   49              'skip_download' :  True ,   53      def  _real_extract ( self
,  url
):   54          video_id 
=  self
._ match
_ id
( url
)   55          video_data 
=  self
._ download
_ json
(   56              'http://metaframe.digitalsmiths.tv/v2/CWtv/assets/ %s /partner/132?format=json'  %  video_id
,  video_id
)   58          formats 
=  self
._ extract
_ m
3u8_ formats
(   59              video_data
[ 'videos' ][ 'variantplaylist' ][ 'uri' ],  video_id
,  'mp4' )   63              'width' :  image
. get ( 'width' ),   64              'height' :  image
. get ( 'height' ),   65          }  for  image_id
,  image 
in  video_data
[ 'images' ]. items ()  if  image
. get ( 'uri' )]  if  video_data
. get ( 'images' )  else None   67          video_metadata 
=  video_data
[ 'assetFields' ]   71                  'url' :  video_metadata
[ 'UnicornCcUrl' ],   73          }  if  video_metadata
. get ( 'UnicornCcUrl' )  else None   77              'title' :  video_metadata
[ 'title' ],   78              'description' :  video_metadata
. get ( 'description' ),   79              'duration' :  int_or_none ( video_metadata
. get ( 'duration' )),   80              'series' :  video_metadata
. get ( 'seriesName' ),   81              'season_number' :  int_or_none ( video_metadata
. get ( 'seasonNumber' )),   82              'season' :  video_metadata
. get ( 'seasonName' ),   83              'episode_number' :  int_or_none ( video_metadata
. get ( 'episodeNumber' )),   84              'timestamp' :  parse_iso8601 ( video_data
. get ( 'startTime' )),   85              'thumbnails' :  thumbnails
,   87              'subtitles' :  subtitles
,