implemented Coub breaking change detection. fixes #8

This commit is contained in:
Kjistóf 2017-10-30 11:34:35 +01:00
parent e7c7b06088
commit 71ec1f778f

View File

@ -49,6 +49,8 @@ class coub_dl:
self.download_audio_stream() self.download_audio_stream()
self.download_video_stream() self.download_video_stream()
self.read_extensions() self.read_extensions()
try: self.check_downloads()
except RuntimeError: exit('Failed to download streams! This usually happens when Coub changes something.')
self.fix_video_stream() self.fix_video_stream()
# get stream lengths via ffprobe # get stream lengths via ffprobe
@ -103,6 +105,12 @@ class coub_dl:
self._files_dict[filename] = fullname self._files_dict[filename] = fullname
def check_downloads(self):
check = {Stream.VIDEO, Stream.AUDIO}
if not all({exists(self._files_dict[item]) for item in check}):
raise RuntimeError('Download failed!')
def fix_video_stream(self): def fix_video_stream(self):
""" magic fix for videos served by coub. see https://github.com/rg3/youtube-dl/issues/13754 """ """ magic fix for videos served by coub. see https://github.com/rg3/youtube-dl/issues/13754 """
with open(self._files_dict[Stream.VIDEO], 'r+b') as f: with open(self._files_dict[Stream.VIDEO], 'r+b') as f: