[dcn] make m3u8 formats extraction non fatal
[youtube-dl] / youtube_dl / extractor / hostingbulk.py
index a07dd4962553dccf2a05cbf831ed87bd2c0a5bb6..a3154cfdeccf9b4c18cf5a5b01f7944243fb1509 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,9 @@ 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 = self._hidden_inputs(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,