]>
 
 
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/liveleak.py 
 
 
 
 
 
 
 
 
   1  from  __future__ 
import  unicode_literals
 
   6  from  . common 
import  InfoExtractor
 
   7  from  .. utils 
import  int_or_none
 
  10  class  LiveLeakIE ( InfoExtractor
):  
  11      _VALID_URL 
=  r
'https?://(?:\w+\.)?liveleak\.com/view\?(?:.*?)i=(?P<id>[\w_]+)(?:.*)'  
  13          'url' :  'http://www.liveleak.com/view?i=757_1364311680' ,  
  14          'md5' :  '50f79e05ba149149c1b4ea961223d5b3' ,  
  16              'id' :  '757_1364311680' ,  
  18              'description' :  'extremely bad day for this guy..!' ,  
  19              'uploader' :  'ljfriel2' ,  
  20              'title' :  'Most unlucky car accident'  
  23          'url' :  'http://www.liveleak.com/view?i=f93_1390833151' ,  
  24          'md5' :  'b13a29626183c9d33944e6a04f41aafc' ,  
  26              'id' :  'f93_1390833151' ,  
  28              'description' :  'German Television Channel NDR does an exclusive interview with Edward Snowden. \r\n Uploaded on LiveLeak cause German Television thinks the rest of the world isn \' t intereseted in Edward Snowden.' ,  
  29              'uploader' :  'ARD_Stinkt' ,  
  30              'title' :  'German Television does first Edward Snowden Interview (ENGLISH)' ,  
  33          'url' :  'http://www.liveleak.com/view?i=4f7_1392687779' ,  
  34          'md5' :  '42c6d97d54f1db107958760788c5f48f' ,  
  36              'id' :  '4f7_1392687779' ,  
  38              'description' :  "The guy with the cigarette seems amazingly nonchalant about the whole thing...  I really hope my friends' reactions would be a bit stronger. \r\n\r\n Action-go to 0:55." ,  
  39              'uploader' :  'CapObveus' ,  
  40              'title' :  'Man is Fatally Struck by Reckless Car While Packing up a Moving Truck' ,  
  44          # Covers https://github.com/rg3/youtube-dl/pull/5983  
  45          'url' :  'http://www.liveleak.com/view?i=801_1409392012' ,  
  46          'md5' :  '0b3bec2d888c20728ca2ad3642f0ef15' ,  
  48              'id' :  '801_1409392012' ,  
  50              'description' :  'Happened on 27.7.2014.  \r\n At 0:53 you can see people still swimming at near beach.' ,  
  51              'uploader' :  'bony333' ,  
  52              'title' :  'Crazy Hungarian tourist films close call waterspout in Croatia'  
  56      def  _real_extract ( self
,  url
):  
  57          video_id 
=  self
._ match
_ id
( url
)  
  58          webpage 
=  self
._ download
_ webpage
( url
,  video_id
)  
  60          video_title 
=  self
._ og
_ search
_ title
( webpage
). replace ( 'LiveLeak.com -' ,  '' ). strip ()  
  61          video_description 
=  self
._ og
_ search
_ description
( webpage
)  
  62          video_uploader 
=  self
._ html
_ search
_ regex
(  
  63              r
'By:.*?(\w+)</a>' ,  webpage
,  'uploader' ,  fatal
= False )  
  64          age_limit 
=  int_or_none ( self
._ search
_ regex
(  
  65              r
'you confirm that you are ([0-9]+) years and over.' ,  
  66              webpage
,  'age limit' ,  default
= None ))  
  68          sources_raw 
=  self
._ search
_ regex
(  
  69              r
'(?s)sources:\s*(\[.*?\]),' ,  webpage
,  'video URLs' ,  default
= None )  
  70          if  sources_raw 
is None :  
  71              alt_source 
=  self
._ search
_ regex
(  
  72                  r
'(file: ".*?"),' ,  webpage
,  'video URL' ,  default
= None )  
  74                  sources_raw 
=  '[{  %s }]'  %  alt_source
 
  77                  embed_url 
=  self
._ search
_ regex
(  
  78                      r
'<iframe[^>]+src="(http://www.prochan.com/embed\?[^"]+)"' ,  
  81                      '_type' :  'url_transparent' ,  
  85                      'description' :  video_description
,  
  86                      'uploader' :  video_uploader
,  
  87                      'age_limit' :  age_limit
,  
  90          sources_json 
=  re
. sub ( r
'\s([a-z]+):\s' ,  r
'"\1": ' ,  sources_raw
)  
  91          sources 
=  json
. loads ( sources_json
)  
  94              'format_id' :  ' %s '  %  i
,  
  95              'format_note' :  s
. get ( 'label' ),  
  97          }  for  i
,  s 
in  enumerate ( sources
)]  
  98          for  i
,  s 
in  enumerate ( sources
):  
  99              # Removing '.h264_*.mp4' gives the raw video, which is essentially  
 100              # the same video without the LiveLeak logo at the top (see  
 101              # https://github.com/rg3/youtube-dl/pull/4768)  
 102              orig_url 
=  re
. sub ( r
'\.h264_.+?\.mp4' ,  '' ,  s
[ 'file' ])  
 103              if  s
[ 'file' ] !=  orig_url
:  
 105                      'format_id' :  'original- %s '  %  i
,  
 106                      'format_note' :  s
. get ( 'label' ),  
 110          self
._ sort
_ formats
( formats
)  
 114              'title' :  video_title
,  
 115              'description' :  video_description
,  
 116              'uploader' :  video_uploader
,  
 118              'age_limit' :  age_limit
,