[Gamersyde] Improved robustness, added duration and tests
authorsnipem <mail@matthias-kuech.de>
Sat, 4 Apr 2015 10:31:48 +0000 (12:31 +0200)
committersnipem <mail@matthias-kuech.de>
Sat, 4 Apr 2015 10:31:48 +0000 (12:31 +0200)
Fix for Json syntax is now less error prone for Json syntax inside of
values. Extractor is now also using native Json handling. Added tests
for several videos that were producing errors in the first place.

youtube_dl/extractor/gamersyde.py

index c401062163ae969cdb63b98ba7ffbc969dc0c63c..5c68a689145c5efbab5e2cd15632d99423cc16ae 100644 (file)
@@ -8,7 +8,6 @@ from .common import InfoExtractor
 
 class GamersydeIE(InfoExtractor):
     _VALID_URL = r'https?://(?:www\.)?gamersyde\.com/hqstream_'
-    _TEST = {
         'url': 'http://www.gamersyde.com/hqstream_bloodborne_birth_of_a_hero-34371_en.html',
         'md5': 'f38d400d32f19724570040d5ce3a505f',
         'info_dict': {
@@ -17,6 +16,11 @@ class GamersydeIE(InfoExtractor):
             'title': 'Bloodborne - Birth of a hero',
             'thumbnail': 're:^https?://.*\.jpg$',
         }
+    },
+    {
+        'url': 'http://www.gamersyde.com/hqstream_dark_souls_ii_scholar_of_the_first_sin_gameplay_part_1-34417_en.html',
+        'info_dict': {
+            'ext': 'mp4',
     }
 
     def _calculateDuration(self, durationString):
@@ -27,7 +31,6 @@ class GamersydeIE(InfoExtractor):
 
         json = re.sub(r"{\s*(\w)", r'{"\1', json)
         json = re.sub(r",\s*(\w)", r',"\1', json)
-        json = re.sub(r"(\w): ", r'\1":', json)
         json = re.sub(r",\s*}", "}", json, flags=re.DOTALL)
         json = re.sub(r",\s*]", "]", json, flags=re.DOTALL)
 
@@ -40,7 +43,6 @@ class GamersydeIE(InfoExtractor):
 
         filesJson = self._search_regex(r'playlist: (.*?)\}\);', webpage, 'files', flags=re.DOTALL)
         filesJson = self._fixJsonSyntax(filesJson)
-
         data = json.loads(filesJson)
         playlist = data[0]