[adultswim] raise ExtractorError if no clips in video_info

This commit is contained in:
remitamine 2015-10-10 17:57:05 +01:00 committed by Sergey M․
parent 58cd7e173e
commit 00cde0b8dc

View File

@ -85,10 +85,7 @@ class AdultSwimIE(InfoExtractor):
def find_video_info(collection, slug): def find_video_info(collection, slug):
for video in collection.get('videos'): for video in collection.get('videos'):
if video.get('slug') == slug: if video.get('slug') == slug:
if video.get('auth'): return video
raise ExtractorError('This video is only available for registered users', expected=True)
else:
return video
@staticmethod @staticmethod
def find_collection_by_linkURL(collections, linkURL): def find_collection_by_linkURL(collections, linkURL):
@ -101,10 +98,7 @@ def find_collection_containing_video(collections, slug):
for collection in collections: for collection in collections:
for video in collection.get('videos'): for video in collection.get('videos'):
if video.get('slug') == slug: if video.get('slug') == slug:
if video.get('auth'): return collection, video
raise ExtractorError('This video is only available for registered users', expected=True)
else:
return collection, video
return None, None return None, None
def _real_extract(self, url): def _real_extract(self, url):
@ -135,15 +129,18 @@ def _real_extract(self, url):
if video_info is None: if video_info is None:
if bootstrapped_data.get('slugged_video', {}).get('slug') == episode_path: if bootstrapped_data.get('slugged_video', {}).get('slug') == episode_path:
video_info = bootstrapped_data['slugged_video'] video_info = bootstrapped_data['slugged_video']
if video_info.get('auth'):
raise ExtractorError('This video is only available for registered users', expected=True)
else: else:
raise ExtractorError('Unable to find video info') raise ExtractorError('Unable to find video info')
show = bootstrapped_data['show'] show = bootstrapped_data['show']
show_title = show['title'] show_title = show['title']
stream = video_info.get('stream') stream = video_info.get('stream')
clips = [stream] if stream else video_info['clips'] clips = [stream] if stream else video_info.get('clips')
if not clips:
if video_info.get('auth'):
raise ExtractorError('This video is only available for registered users', expected=True)
else:
raise ExtractorError('Unable to find clips')
segment_ids = [clip['videoPlaybackID'] for clip in clips] segment_ids = [clip['videoPlaybackID'] for clip in clips]
episode_id = video_info['id'] episode_id = video_info['id']