summary refs log tree commit diff
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2016-06-12 11:08:39 +0700
committerSergey M․ <dstftw@gmail.com>2016-06-12 11:08:39 +0700
commit84dcd1c4e47f2a5a84a4658f42c66f7546588001 (patch)
tree1884c3ee8a91289e4bd97a3bf512f1120abed308
parent971e3b7520563936f6e6946f5c08d64f65ab6f42 (diff)
downloadyoutube-dl-84dcd1c4e47f2a5a84a4658f42c66f7546588001.tar.gz
youtube-dl-84dcd1c4e47f2a5a84a4658f42c66f7546588001.tar.xz
youtube-dl-84dcd1c4e47f2a5a84a4658f42c66f7546588001.zip
[streamcloud] Detect removed videos (Closes #3768)
-rw-r--r--youtube_dl/extractor/streamcloud.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/youtube_dl/extractor/streamcloud.py b/youtube_dl/extractor/streamcloud.py
index 712359885..58560ec64 100644
--- a/youtube_dl/extractor/streamcloud.py
+++ b/youtube_dl/extractor/streamcloud.py
@@ -5,6 +5,7 @@ import re
 
 from .common import InfoExtractor
 from ..utils import (
+    ExtractorError,
     sanitized_Request,
     urlencode_postdata,
 )
@@ -14,7 +15,7 @@ class StreamcloudIE(InfoExtractor):
     IE_NAME = 'streamcloud.eu'
     _VALID_URL = r'https?://streamcloud\.eu/(?P<id>[a-zA-Z0-9_-]+)(?:/(?P<fname>[^#?]*)\.html)?'
 
-    _TEST = {
+    _TESTS = [{
         'url': 'http://streamcloud.eu/skp9j99s4bpz/youtube-dl_test_video_____________-BaW_jenozKc.mp4.html',
         'md5': '6bea4c7fa5daaacc2a946b7146286686',
         'info_dict': {
@@ -23,7 +24,10 @@ class StreamcloudIE(InfoExtractor):
             'title': 'youtube-dl test video  \'/\\ ä ↭',
         },
         'skip': 'Only available from the EU'
-    }
+    }, {
+        'url': 'http://streamcloud.eu/ua8cmfh1nbe6/NSHIP-148--KUC-NG--H264-.mp4.html',
+        'only_matching': True,
+    }]
 
     def _real_extract(self, url):
         video_id = self._match_id(url)
@@ -31,6 +35,10 @@ class StreamcloudIE(InfoExtractor):
 
         orig_webpage = self._download_webpage(url, video_id)
 
+        if '>File Not Found<' in orig_webpage:
+            raise ExtractorError(
+                'Video %s does not exist' % video_id, expected=True)
+
         fields = re.findall(r'''(?x)<input\s+
             type="(?:hidden|submit)"\s+
             name="([^"]+)"\s+