]>
 
 
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/discovery.py 
 
 
 
 
 
 
 
 
   1  from  __future__ 
import  unicode_literals
 
   3  from  . common 
import  InfoExtractor
 
   8  from  .. compat 
import  compat_str
 
  11  class  DiscoveryIE ( InfoExtractor
):  
  12      _VALID_URL 
=  r
'''(?x)https?://(?:www\.)?(?:  
  14              investigationdiscovery|  
  22          )\.com/(?:[^/]+/)*(?P<id>[^./?#]+)'''  
  24          'url' :  'http://www.discovery.com/tv-shows/mythbusters/videos/mission-impossible-outtakes.htm' ,  
  28              'title' :  'Mission Impossible Outtakes' ,  
  29              'description' : ( 'Watch Jamie Hyneman and Adam Savage practice being'  
  30                              ' each other -- to the point of confusing Jamie \' s dog -- and '  
  31                              'don \' t miss Adam moon-walking as Jamie ... behind Jamie \' s'  
  34              'timestamp' :  1302032462 ,  
  35              'upload_date' :  '20110405' ,  
  36              'uploader_id' :  '103207' ,  
  39              'skip_download' :  True ,   # requires ffmpeg  
  42          'url' :  'http://www.discovery.com/tv-shows/mythbusters/videos/mythbusters-the-simpsons' ,  
  44              'id' :  'mythbusters-the-simpsons' ,  
  45              'title' :  'MythBusters: The Simpsons' ,  
  47          'playlist_mincount' :  10 ,  
  49          'url' :  'http://www.animalplanet.com/longfin-eels-maneaters/' ,  
  53              'title' :  'Longfin Eels: Maneaters?' ,  
  54              'description' :  'Jeremy Wade tests whether or not New Zealand \' s longfin eels are man-eaters by covering himself in fish guts and getting in the water with them.' ,  
  55              'upload_date' :  '20140725' ,  
  56              'timestamp' :  1406246400 ,  
  58              'uploader_id' :  '103207' ,  
  61              'skip_download' :  True ,   # requires ffmpeg  
  65      def  _real_extract ( self
,  url
):  
  66          display_id 
=  self
._ match
_ id
( url
)  
  67          info 
=  self
._ download
_ json
( url 
+  '?flat=1' ,  display_id
)  
  69          video_title 
=  info
. get ( 'playlist_title' )  or  info
. get ( 'video_title' )  
  73          for  idx
,  video_info 
in  enumerate ( info
[ 'playlist' ]):  
  75              caption_url 
=  video_info
. get ( 'captionsUrl' )  
  84                  '_type' :  'url_transparent' ,  
  85                  'url' :  'http://players.brightcove.net/103207/default_default/index.html?videoId=ref: %s '  %  video_info
[ 'referenceId' ],  
  86                  'id' :  compat_str ( video_info
[ 'id' ]),  
  87                  'title' :  video_info
[ 'title' ],  
  88                  'description' :  video_info
. get ( 'description' ),  
  89                  'duration' :  parse_duration ( video_info
. get ( 'video_length' )),  
  90                  'webpage_url' :  video_info
. get ( 'href' )  or  video_info
. get ( 'url' ),  
  91                  'thumbnail' :  video_info
. get ( 'thumbnailURL' ),  
  92                  'alt_title' :  video_info
. get ( 'secondary_title' ),  
  93                  'timestamp' :  parse_iso8601 ( video_info
. get ( 'publishedDate' )),  
  94                  'subtitles' :  subtitles
,  
  97          return  self
. playlist_result ( entries
,  display_id
,  video_title
)