2 from __future__ 
import unicode_literals
 
  15 from .common 
import InfoExtractor
 
  18 class SockshareIE(InfoExtractor
): 
  19     _VALID_URL 
= r
'https?://(?:www\.)?sockshare\.com/file/(?P<id>[0-9A-Za-z]+)' 
  20     _FILE_DELETED_REGEX 
= r
'This file doesn\'t exist
, or has been removed\
.</div
>' 
  22         'url
': 'http
://www
.sockshare
.com
/file/437BE28B89D799D7
', 
  23         'md5
': '9d0bf1cfb6dbeaa8d562f6c97506c5bd
', 
  25             'id': '437BE28B89D799D7
', 
  26             'title
': 'big_buck_bunny_720p_surround
.avi
', 
  28             'thumbnail
': 're
:^http
://.*\
.jpg$
', 
  32     def _real_extract(self, url): 
  33         video_id = self._match_id(url) 
  34         url = 'http
://sockshare
.com
/file/%s' % video_id 
  35         webpage = self._download_webpage(url, video_id) 
  37         if re.search(self._FILE_DELETED_REGEX, webpage) is not None: 
  38             raise ExtractorError('Video 
%s does 
not exist
' % video_id, 
  41         confirm_hash = self._html_search_regex(r'''(?x)<input\s+ 
  49             "confirm": "Continue as Free User" 
  52         post = compat_urllib_parse.urlencode(fields) 
  53         req = compat_urllib_request.Request(url, post) 
  54         # Apparently, this header is required for confirmation to work. 
  55         req.add_header('Host
', 'www
.sockshare
.com
') 
  56         req.add_header('Content
-type', 'application
/x
-www
-form
-urlencoded
') 
  58         webpage = self._download_webpage( 
  59             req, video_id, 'Downloading video page
') 
  61         video_url = self._html_search_regex( 
  62             r'<a href
="([^"]*)".+class="download_file_link
"', 
  64         video_url = "http
://www
.sockshare
.com
" + video_url 
  65         title = self._html_search_regex(( 
  67             r'var name = "([^
"]+)";'), 
  68             webpage, 'title
', default=None) 
  69         thumbnail = self._html_search_regex( 
  70             r'<img\s
+src
="([^"]*)".+?name="bg
"', 
  76             'ext': determine_ext(title), 
  82             'thumbnail': thumbnail,