[adultswim] detect when video needs authentication

This commit is contained in:
remitamine 2015-10-10 12:28:12 +01:00 committed by Sergey M․
parent 6f7893653c
commit 58cd7e173e

View File

@ -41,7 +41,8 @@ class AdultSwimIE(InfoExtractor):
'id': 'rQxZvXQ4ROaSOqq-or2Mow', 'id': 'rQxZvXQ4ROaSOqq-or2Mow',
'title': 'Rick and Morty - Pilot', 'title': 'Rick and Morty - Pilot',
'description': "Rick moves in with his daughter's family and establishes himself as a bad influence on his grandson, Morty. " 'description': "Rick moves in with his daughter's family and establishes himself as a bad influence on his grandson, Morty. "
} },
'skip': 'This video is only available for registered users',
}, { }, {
'url': 'http://www.adultswim.com/videos/playlists/american-parenting/putting-francine-out-of-business/', 'url': 'http://www.adultswim.com/videos/playlists/american-parenting/putting-francine-out-of-business/',
'playlist': [ 'playlist': [
@ -84,6 +85,9 @@ 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'):
raise ExtractorError('This video is only available for registered users', expected=True)
else:
return video return video
@staticmethod @staticmethod
@ -97,6 +101,9 @@ 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'):
raise ExtractorError('This video is only available for registered users', expected=True)
else:
return collection, video return collection, video
return None, None return None, None
@ -128,6 +135,8 @@ 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')