def find_video_info(collection, slug):
for video in collection.get('videos'):
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
def find_collection_by_linkURL(collections, linkURL):
for collection in collections:
for video in collection.get('videos'):
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
def _real_extract(self, url):
if video_info is None:
if bootstrapped_data.get('slugged_video', {}).get('slug') == episode_path:
video_info = bootstrapped_data['slugged_video']
- if video_info.get('auth'):
- raise ExtractorError('This video is only available for registered users', expected=True)
else:
raise ExtractorError('Unable to find video info')
show = bootstrapped_data['show']
show_title = show['title']
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:
+ raise ExtractorError(
+ 'This video is only available via cable service provider subscription that'
+ ' is not currently supported. You may want to use --cookies.'
+ if video_info.get('auth') is True else 'Unable to find stream or clips',
+ expected=True)
segment_ids = [clip['videoPlaybackID'] for clip in clips]
episode_id = video_info['id']
media_url = file_el.text
if determine_ext(media_url) == 'm3u8':
formats.extend(self._extract_m3u8_formats(
- media_url, segment_title, 'mp4', 'm3u8_native', preference=0, m3u8_id='hls'))
+ media_url, segment_title, 'mp4', preference=0, m3u8_id='hls'))
else:
formats.append({
'format_id': '%s_%s' % (bitrate, ftype),