]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/liveleak.py 
   1  from  __future__ 
import  unicode_literals
   5  from  . common 
import  InfoExtractor
   6  from  .. utils 
import  int_or_none
   9  class  LiveLeakIE ( InfoExtractor
):   10      _VALID_URL 
=  r
'https?://(?:\w+\.)?liveleak\.com/view\?(?:.*?)i=(?P<id>[\w_]+)(?:.*)'   12          'url' :  'http://www.liveleak.com/view?i=757_1364311680' ,   13          'md5' :  '0813c2430bea7a46bf13acf3406992f4' ,   15              'id' :  '757_1364311680' ,   17              'description' :  'extremely bad day for this guy..!' ,   18              'uploader' :  'ljfriel2' ,   19              'title' :  'Most unlucky car accident' ,   20              'thumbnail' :  r
're:^https?://.*\.jpg$'   23          'url' :  'http://www.liveleak.com/view?i=f93_1390833151' ,   24          'md5' :  'd3f1367d14cc3c15bf24fbfbe04b9abf' ,   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)' ,   31              'thumbnail' :  r
're:^https?://.*\.jpg$'   35          'url' :  'http://www.liveleak.com/view?i=4f7_1392687779' ,   36          'md5' :  '42c6d97d54f1db107958760788c5f48f' ,   38              'id' :  '4f7_1392687779' ,   40              '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." ,   41              'uploader' :  'CapObveus' ,   42              'title' :  'Man is Fatally Struck by Reckless Car While Packing up a Moving Truck' ,   45          'skip' :  'Video is dead' ,   47          # Covers https://github.com/rg3/youtube-dl/pull/5983   48          # Multiple resolutions   49          'url' :  'http://www.liveleak.com/view?i=801_1409392012' ,   50          'md5' :  'c3a449dbaca5c0d1825caecd52a57d7b' ,   52              'id' :  '801_1409392012' ,   54              'description' :  'Happened on 27.7.2014.  \r\n At 0:53 you can see people still swimming at near beach.' ,   55              'uploader' :  'bony333' ,   56              'title' :  'Crazy Hungarian tourist films close call waterspout in Croatia' ,   57              'thumbnail' :  r
're:^https?://.*\.jpg$'   60          # Covers https://github.com/rg3/youtube-dl/pull/10664#issuecomment-247439521   61          'url' :  'http://m.liveleak.com/view?i=763_1473349649' ,   62          'add_ie' : [ 'Youtube' ],   64              'id' :  '763_1473349649' ,   66              'title' :  'Reporters and public officials ignore epidemic of black on asian violence in Sacramento | Colin Flaherty' ,   67              'description' :  'Colin being the warrior he is and showing the injustice Asians in Sacramento are being subjected to.' ,   69              'upload_date' :  '20160908' ,   70              'uploader_id' :  'UCEbta5E_jqlZmEJsriTEtnw'   73              'skip_download' :  True ,   76          'url' :  'https://www.liveleak.com/view?i=677_1439397581' ,   78              'id' :  '677_1439397581' ,   79              'title' :  'Fuel Depot in China Explosion caught on video' ,   85      def  _extract_urls ( webpage
):   87              r
'<iframe[^>]+src="(https?://(?:\w+\.)?liveleak\.com/ll_embed\?[^"]*[if]=[\w_]+[^"]+)"' ,   90      def  _real_extract ( self
,  url
):   91          video_id 
=  self
._ match
_ id
( url
)   92          webpage 
=  self
._ download
_ webpage
( url
,  video_id
)   94          video_title 
=  self
._ og
_ search
_ title
( webpage
). replace ( 'LiveLeak.com -' ,  '' ). strip ()   95          video_description 
=  self
._ og
_ search
_ description
( webpage
)   96          video_uploader 
=  self
._ html
_ search
_ regex
(   97              r
'By:.*?(\w+)</a>' ,  webpage
,  'uploader' ,  fatal
= False )   98          age_limit 
=  int_or_none ( self
._ search
_ regex
(   99              r
'you confirm that you are ([0-9]+) years and over.' ,  100              webpage
,  'age limit' ,  default
= None ))  101          video_thumbnail 
=  self
._ og
_ search
_ thumbnail
( webpage
)  103          entries 
=  self
._ parse
_ html
5_ media
_ entries
( url
,  webpage
,  video_id
)  106              embed_url 
=  self
._ search
_ regex
(  107                  r
'<iframe[^>]+src="((?:https?:)?//(?:www\.)?(?:prochan|youtube)\.com/embed[^"]+)"' ,  108                  webpage
,  'embed URL' )  110                  '_type' :  'url_transparent' ,  113                  'title' :  video_title
,  114                  'description' :  video_description
,  115                  'uploader' :  video_uploader
,  116                  'age_limit' :  age_limit
,  119          for  idx
,  info_dict 
in  enumerate ( entries
):  120              for  a_format 
in  info_dict
[ 'formats' ]:  121                  if not  a_format
. get ( 'height' ):  122                      a_format
[ 'height' ] =  int_or_none ( self
._ search
_ regex
(  123                          r
'([0-9]+)p\.mp4' ,  a_format
[ 'url' ],  'height label' ,  126              self
._ sort
_ formats
( info_dict
[ 'formats' ])  128              # Don't append entry ID for one-video pages to keep backward compatibility  130                  info_dict
[ 'id' ] =  ' %s _ %s '  % ( video_id
,  idx 
+  1 )  132                  info_dict
[ 'id' ] =  video_id
 135                  'title' :  video_title
,  136                  'description' :  video_description
,  137                  'uploader' :  video_uploader
,  138                  'age_limit' :  age_limit
,  139                  'thumbnail' :  video_thumbnail
,  142          return  self
. playlist_result ( entries
,  video_id
,  video_title
)  145  class  LiveLeakEmbedIE ( InfoExtractor
):  146      _VALID_URL 
=  r
'https?://(?:www\.)?liveleak\.com/ll_embed\?.*?\b(?P<kind>[if])=(?P<id>[\w_]+)'  148      # See generic.py for actual test cases  150          'url' :  'https://www.liveleak.com/ll_embed?i=874_1459135191' ,  151          'only_matching' :  True ,  153          'url' :  'https://www.liveleak.com/ll_embed?f=ab065df993c1' ,  154          'only_matching' :  True ,  157      def  _real_extract ( self
,  url
):  158          mobj 
=  re
. match ( self
._ VALID
_U RL
,  url
)  159          kind
,  video_id 
=  mobj
. group ( 'kind' ,  'id' )  162              webpage 
=  self
._ download
_ webpage
( url
,  video_id
)  163              liveleak_url 
=  self
._ search
_ regex
(  164                  r
'logourl\s*:\s*(?P<q1>[\' "])(?P<url> %s )(?P=q1)' % LiveLeakIE._VALID_URL,  165                  webpage, 'LiveLeak URL', group='url')  167              liveleak_url = 'http://www.liveleak.com/view?i= %s ' % video_id  169          return self.url_result(liveleak_url, ie=LiveLeakIE.ie_key())