]>
Raphaƫl G. Git Repositories - youtubedl/blob - youtube_dl/extractor/flickr.py
   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     def _real_extract(self
, url
): 
  15         mobj 
= re
.match(self
._VALID
_URL
, url
) 
  17         video_id 
= mobj
.group('id') 
  18         video_uploader_id 
= mobj
.group('uploader_id') 
  19         webpage_url 
= 'http://www.flickr.com/photos/' + video_uploader_id 
+ '/' + video_id
 
  20         webpage 
= self
._download
_webpage
(webpage_url
, video_id
) 
  22         secret 
= self
._search
_regex
(r
"photo_secret: '(\w+)'", webpage
, u
'secret') 
  24         first_url 
= 'https://secure.flickr.com/apps/video/video_mtl_xml.gne?v=x&photo_id=' + video_id 
+ '&secret=' + secret 
+ '&bitrate=700&target=_self' 
  25         first_xml 
= self
._download
_webpage
(first_url
, video_id
, 'Downloading first data webpage') 
  27         node_id 
= self
._html
_search
_regex
(r
'<Item id="id">(\d+-\d+)</Item>', 
  28             first_xml
, u
'node_id') 
  30         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' 
  31         second_xml 
= self
._download
_webpage
(second_url
, video_id
, 'Downloading second data webpage') 
  33         self
.report_extraction(video_id
) 
  35         mobj 
= re
.search(r
'<STREAM APP="(.+?)" FULLPATH="(.+?)"', second_xml
) 
  37             raise ExtractorError(u
'Unable to extract video url') 
  38         video_url 
= mobj
.group(1) + unescapeHTML(mobj
.group(2)) 
  40         video_title 
= self
._html
_search
_regex
(r
'<meta property="og:title" content=(?:"([^"]+)"|\'([^
\']+)\')', 
  41             webpage, u'video title
') 
  43         video_description = self._html_search_regex(r'<meta 
property="og:description" content
=(?
:"([^"]+)"|\'([^\']+)\')', 
  44             webpage, u'description', fatal=False) 
  46         thumbnail = self._html_search_regex(r'<meta property="og
:image
" content=(?:"([^
"]+)"|
\'([^
\']+)\')', 
  47             webpage, u'thumbnail
', fatal=False) 
  54             'description
': video_description, 
  55             'thumbnail
':   thumbnail, 
  56             'uploader_id
': video_uploader_id,