X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fadultswim.py;h=8157da2cb63af8a7079fda8c388be3108281a7ad;hb=369ff750812ff874a0f4b4ceebb15a024e2f0a9d;hp=0eb21b16d0d59a744b25ebc7c3589dce16ecf9cc;hpb=58cd7e173e70ae40a79bb10e08b2c2ea02bc8248;p=youtube-dl diff --git a/youtube_dl/extractor/adultswim.py b/youtube_dl/extractor/adultswim.py index 0eb21b16d..8157da2cb 100644 --- a/youtube_dl/extractor/adultswim.py +++ b/youtube_dl/extractor/adultswim.py @@ -68,7 +68,7 @@ class AdultSwimIE(InfoExtractor): 'md5': '3e346a2ab0087d687a05e1e7f3b3e529', 'info_dict': { 'id': 'sY3cMUR_TbuE4YmdjzbIcQ-0', - 'ext': 'flv', + 'ext': 'mp4', 'title': 'Tim and Eric Awesome Show Great Job! - Dr. Steve Brule, For Your Wine', 'description': 'Dr. Brule reports live from Wine Country with a special report on wines. \r\nWatch Tim and Eric Awesome Show Great Job! episode #20, "Embarrassed" on Adult Swim.\r\n\r\n', }, @@ -79,16 +79,17 @@ class AdultSwimIE(InfoExtractor): 'title': 'Tim and Eric Awesome Show Great Job! - Dr. Steve Brule, For Your Wine', 'description': 'Dr. Brule reports live from Wine Country with a special report on wines. \r\nWatch Tim and Eric Awesome Show Great Job! episode #20, "Embarrassed" on Adult Swim.\r\n\r\n', }, + 'params': { + # m3u8 download + 'skip_download': True, + } }] @staticmethod 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): @@ -101,10 +102,7 @@ class AdultSwimIE(InfoExtractor): 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): @@ -135,15 +133,19 @@ class AdultSwimIE(InfoExtractor): 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'] @@ -185,7 +187,8 @@ class AdultSwimIE(InfoExtractor): 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', fatal=False)) else: formats.append({ 'format_id': '%s_%s' % (bitrate, ftype),