X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fcspan.py;h=b8b9d058ddce866fa497597863c80d1de0a7f5c5;hb=269dd2c6a789802b3578fabd54e1e7cc5732f551;hp=b3ee670188e2e4b7fb1e50d173ee091e74a05654;hpb=126d7701b0f88c33b5fbda6fd07ef056b96c9367;p=youtube-dl diff --git a/youtube_dl/extractor/cspan.py b/youtube_dl/extractor/cspan.py index b3ee67018..b8b9d058d 100644 --- a/youtube_dl/extractor/cspan.py +++ b/youtube_dl/extractor/cspan.py @@ -68,11 +68,16 @@ class CSpanIE(InfoExtractor): video_type, video_id = matches.groups() video_type = 'clip' if video_type == 'id' else 'program' else: - senate_isvp_url = SenateISVPIE._search_iframe_url(webpage) - if senate_isvp_url: - title = self._og_search_title(webpage) - surl = smuggle_url(senate_isvp_url, {'force_title': title}) - return self.url_result(surl, 'SenateISVP', video_id, title) + m = re.search(r'data-(?Pclip|prog)id=["\'](?P\d+)', webpage) + if m: + video_id = m.group('id') + video_type = 'program' if m.group('type') == 'prog' else 'clip' + else: + senate_isvp_url = SenateISVPIE._search_iframe_url(webpage) + if senate_isvp_url: + title = self._og_search_title(webpage) + surl = smuggle_url(senate_isvp_url, {'force_title': title}) + return self.url_result(surl, 'SenateISVP', video_id, title) if video_type is None or video_id is None: raise ExtractorError('unable to find video id and type') @@ -107,6 +112,13 @@ class CSpanIE(InfoExtractor): 'height': int_or_none(get_text_attr(quality, 'height')), 'tbr': int_or_none(get_text_attr(quality, 'bitrate')), }) + if not formats: + path = unescapeHTML(get_text_attr(f, 'path')) + if not path: + continue + formats = self._extract_m3u8_formats( + path, video_id, 'mp4', entry_protocol='m3u8_native', + m3u8_id='hls') if determine_ext(path) == 'm3u8' else [{'url': path, }] self._sort_formats(formats) entries.append({ 'id': '%s_%d' % (video_id, partnum + 1),