[Primesharetv] Handle file not existing properly.
authorJeff Buchbinder <jeff@ourexchange.net>
Wed, 4 Mar 2015 22:38:21 +0000 (17:38 -0500)
committerSergey M․ <dstftw@gmail.com>
Tue, 17 Mar 2015 14:33:32 +0000 (20:33 +0600)
youtube_dl/extractor/primesharetv.py

index 7c545761b157410bad2a032b373b924f14ec51e9..570fd2210c1e8f153f95736988e3b6b49a5a1e3b 100644 (file)
@@ -1,8 +1,11 @@
 # encoding: utf-8
 from __future__ import unicode_literals
 
+import re
+
 from .common import InfoExtractor
 from ..utils import (
+    ExtractorError,
     int_or_none,
     parse_filesize,
     unified_strdate,
@@ -31,10 +34,12 @@ class PrimesharetvIE(InfoExtractor):
     def _real_extract(self, url):
         video_id = self._match_id(url)
         webpage = self._download_webpage(url, video_id)
+        if re.search(r'<h1>File not exist</h1>', webpage) is not None:
+            raise ExtractorError('The file does not exist', expected=True)
+        hashtoken = self._search_regex(r' name="hash" value="(.*?)" ', webpage, 'hash token')
        
         self._sleep(9, video_id)
         
-        hashtoken = self._search_regex(r' name="hash" value="(.*?)" ', webpage, 'hash token')
         data = urlencode_postdata({
             'hash': hashtoken,
         })
@@ -44,7 +49,6 @@ class PrimesharetvIE(InfoExtractor):
         }
         video_page_request = compat_urllib_request.Request(url, data, headers=headers)
         video_page = self._download_webpage(video_page_request, None, False, '')
-
         video_url = self._html_search_regex(
             r'url: \'(http://[a-z0-9]+\.primeshare\.tv:443/file/get/[^\']+)\',', video_page, 'video url')
 
@@ -57,3 +61,8 @@ class PrimesharetvIE(InfoExtractor):
             'title': title,
             'ext': 'mp4',
         }
+    
+    def _debug_print(self, txt):
+        if self._downloader.params.get('verbose'):
+            self.to_screen('[debug] %s' % txt)
+