]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/flickr.py 
80d96baf739522b97f933878faa8a4083a0e8959
   3  from  . common 
import  InfoExtractor
  10  class  FlickrIE ( InfoExtractor
):   11      """Information Extractor for Flickr videos"""   12      _VALID_URL 
=  r
'(?:https?://)?(?:www\.)?flickr\.com/photos/(?P<uploader_id>[\w\-_@]+)/(?P<id>\d+).*'   14          u
'url' :  u
'http://www.flickr.com/photos/forestwander-nature-pictures/5645318632/in/photostream/' ,   15          u
'file' :  u
'5645318632.mp4' ,   16          u
'md5' :  u
'6fdc01adbc89d72fc9c4f15b4a4ba87b' ,   18              u
"description" :  u
"Waterfalls in the Springtime at Dark Hollow Waterfalls. These are located just off of Skyline Drive in Virginia. They are only about 6/10 of a mile hike but it is a pretty steep hill and a good climb back up." ,    19              u
"uploader_id" :  u
"forestwander-nature-pictures" ,    20              u
"title" :  u
"Dark Hollow Waterfalls"   24      def  _real_extract ( self
,  url
):   25          mobj 
=  re
. match ( self
._ VALID
_U RL
,  url
)   27          video_id 
=  mobj
. group ( 'id' )   28          video_uploader_id 
=  mobj
. group ( 'uploader_id' )   29          webpage_url 
=  'http://www.flickr.com/photos/'  +  video_uploader_id 
+  '/'  +  video_id
  30          webpage 
=  self
._ download
_ webpage
( webpage_url
,  video_id
)   32          secret 
=  self
._ search
_ regex
( r
"photo_secret: '(\w+)'" ,  webpage
,  u
'secret' )   34          first_url 
=  'https://secure.flickr.com/apps/video/video_mtl_xml.gne?v=x&photo_id='  +  video_id 
+  '&secret='  +  secret 
+  '&bitrate=700&target=_self'   35          first_xml 
=  self
._ download
_ webpage
( first_url
,  video_id
,  'Downloading first data webpage' )   37          node_id 
=  self
._ html
_ search
_ regex
( r
'<Item id="id">(\d+-\d+)</Item>' ,   38              first_xml
,  u
'node_id' )   40          second_url 
=  'https://secure.flickr.com/video_playlist.gne?node_id='  +  node_id 
+  '&tech=flash&mode=playlist&bitrate=700&secret='  +  secret 
+  '&rd=video.yahoo.com&noad=1'   41          second_xml 
=  self
._ download
_ webpage
( second_url
,  video_id
,  'Downloading second data webpage' )   43          self
. report_extraction ( video_id
)   45          mobj 
=  re
. search ( r
'<STREAM APP="(.+?)" FULLPATH="(.+?)"' ,  second_xml
)   47              raise  ExtractorError ( u
'Unable to extract video url' )   48          video_url 
=  mobj
. group ( 1 ) +  unescapeHTML ( mobj
. group ( 2 ))   54              'title' :        self
._ og
_ search
_ title
( webpage
),   55              'description' :  self
._ og
_ search
_ description
( webpage
),   56              'thumbnail' :    self
._ og
_ search
_ thumbnail
( webpage
),   57              'uploader_id' :  video_uploader_id
,