Merge remote-tracking branch 'Dineshs91/f4m-2.0'
[youtube-dl] / youtube_dl / extractor / hostingbulk.py
index a07dd4962553dccf2a05cbf831ed87bd2c0a5bb6..704d0285d3e1c2ce10e8f3929543c6c66b0fd58a 100644 (file)
@@ -4,9 +4,11 @@ from __future__ import unicode_literals
 import re
 
 from .common import InfoExtractor
+from ..compat import (
+    compat_urllib_request,
+)
 from ..utils import (
     ExtractorError,
-    compat_urllib_request,
     int_or_none,
     urlencode_postdata,
 )
@@ -30,9 +32,7 @@ class HostingBulkIE(InfoExtractor):
     }
 
     def _real_extract(self, url):
-        mobj = re.match(self._VALID_URL, url)
-        video_id = mobj.group('id')
-
+        video_id = self._match_id(url)
         url = 'http://hostingbulk.com/{0:}.html'.format(video_id)
 
         # Custom request with cookie to set language to English, so our file
@@ -57,17 +57,13 @@ class HostingBulkIE(InfoExtractor):
         thumbnail = self._search_regex(
             r'<img src="([^"]+)".+?class="pic"',
             webpage, 'thumbnail', fatal=False)
-        rand = self._search_regex(
-            r'<input.+?name="rand" value="([^"]+)">', webpage, 'rand')
 
-        fields = {
-            'id': video_id,
-            'method_free': '',
-            'method_premium': '',
-            'op': 'download2',
-            'rand': rand,
-            'referer': '',
-        }
+        fields = dict(re.findall(r'''(?x)<input\s+
+            type="hidden"\s+
+            name="([^"]+)"\s+
+            value="([^"]*)"
+            ''', webpage))
+
         request = compat_urllib_request.Request(url, urlencode_postdata(fields))
         request.add_header('Content-type', 'application/x-www-form-urlencoded')
         response = self._request_webpage(request, video_id,