[Gamersyde] Improved robustness, added duration and tests

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.
This commit is contained in:
snipem 2015-04-04 12:31:48 +02:00
parent e81a474603
commit 115c281672

View file

@ -8,7 +8,6 @@
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 @@ def _fixJsonSyntax(self, json):
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 @@ def _real_extract(self, url):
filesJson = self._search_regex(r'playlist: (.*?)\}\);', webpage, 'files', flags=re.DOTALL)
filesJson = self._fixJsonSyntax(filesJson)
data = json.loads(filesJson)
playlist = data[0]