Browse Source

[adultswim] detect when video needs authentication

totalwebcasting
remitamine 9 years ago
committed by Sergey M․
parent
commit
58cd7e173e
1 changed files with 12 additions and 3 deletions
  1. +12
    -3
      youtube_dl/extractor/adultswim.py

+ 12
- 3
youtube_dl/extractor/adultswim.py 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,7 +85,10 @@ 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:
return video
if video.get('auth'):
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):
@ -97,7 +101,10 @@ class AdultSwimIE(InfoExtractor):
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:
return collection, video
if video.get('auth'):
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):
@ -128,6 +135,8 @@ class AdultSwimIE(InfoExtractor):
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')


Loading…
Cancel
Save