Merge pull request #878 from yasoob/master
authorJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>
Sat, 8 Jun 2013 08:47:52 +0000 (10:47 +0200)
committerJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>
Sat, 8 Jun 2013 08:54:47 +0000 (10:54 +0200)
Added Vbox7.com InfoExtractor and tests.

1  2 
youtube_dl/InfoExtractors.py

index b40edf5fbb92f6cf86fc7f96b3d99346b61523a6,8535a3e9a758d0d8d88f7fc3b482dba7367059c1..11fcd6adcc8b73e1b7ec278fb2eb184327539bc0
@@@ -4534,6 -4534,39 +4534,40 @@@ class HypemIE(InfoExtractor)
              'artist':   artist,
          }]
  
 -        final_url = (info_response.split('&')[0]).split('=')[1]
+ class Vbox7IE(InfoExtractor):
+     """Information Extractor for Vbox7"""
+     _VALID_URL = r'(?:http://)?(?:www\.)?vbox7\.com/play:([^/]+)'
+     def _real_extract(self,url):
+         mobj = re.match(self._VALID_URL, url)
+         if mobj is None:
+             raise ExtractorError(u'Invalid URL: %s' % url)
+         video_id = mobj.group(1)
+         redirect_page, urlh = self._download_webpage_handle(url, video_id)
+         redirect_url = urlh.geturl() + re.search(r'window\.location = \'(.*)\';', redirect_page).group(1)
+         webpage = self._download_webpage(redirect_url, video_id, u'Downloading redirect page')
+         title = re.search(r'<title>(.*)</title>', webpage)
+         title = (title.group(1)).split('/')[0].strip()
+         ext = "flv"
+         info_url = "http://vbox7.com/play/magare.do"
+         data = compat_urllib_parse.urlencode({'as3':'1','vid':video_id})
+         info_request = compat_urllib_request.Request(info_url, data)
+         info_request.add_header('Content-Type', 'application/x-www-form-urlencoded')
+         info_response = self._download_webpage(info_request, video_id, u'Downloading info webpage')
+         if info_response is None:
+             raise ExtractorError(u'Unable to extract the media url')
 -            'id':       video_id,
 -            'url':      final_url,
 -            'ext':      ext,
 -            'title':    title,
++        (final_url, thumbnail_url) = map(lambda x: x.split('=')[1], info_response.split('&'))
+         return [{
++            'id':        video_id,
++            'url':       final_url,
++            'ext':       ext,
++            'title':     title,
++            'thumbnail': thumbnail_url,
+         }]
  
  def gen_extractors():
      """ Return a list of an instance of every supported extractor.