Adds format listing/selection support to the Comedy Central extractor.
This commit is contained in:
parent
89af8e9d32
commit
4408d996fb
1 changed files with 41 additions and 1 deletions
|
@ -2253,6 +2253,25 @@ class ComedyCentralIE(InfoExtractor):
|
||||||
_VALID_URL = r'^(:(?P<shortname>tds|thedailyshow|cr|colbert|colbertnation|colbertreport))|(https?://)?(www\.)?(?P<showname>thedailyshow|colbertnation)\.com/full-episodes/(?P<episode>.*)$'
|
_VALID_URL = r'^(:(?P<shortname>tds|thedailyshow|cr|colbert|colbertnation|colbertreport))|(https?://)?(www\.)?(?P<showname>thedailyshow|colbertnation)\.com/full-episodes/(?P<episode>.*)$'
|
||||||
IE_NAME = u'comedycentral'
|
IE_NAME = u'comedycentral'
|
||||||
|
|
||||||
|
_available_formats = ['3500', '2200', '1700', '1200', '750', '400']
|
||||||
|
|
||||||
|
_video_extensions = {
|
||||||
|
'3500': 'mp4',
|
||||||
|
'2200': 'mp4',
|
||||||
|
'1700': 'mp4',
|
||||||
|
'1200': 'mp4',
|
||||||
|
'750': 'mp4',
|
||||||
|
'400': 'mp4',
|
||||||
|
}
|
||||||
|
_video_dimensions = {
|
||||||
|
'3500': '1280x720',
|
||||||
|
'2200': '960x540',
|
||||||
|
'1700': '768x432',
|
||||||
|
'1200': '640x360',
|
||||||
|
'750': '512x288',
|
||||||
|
'400': '384x216',
|
||||||
|
}
|
||||||
|
|
||||||
def report_extraction(self, episode_id):
|
def report_extraction(self, episode_id):
|
||||||
self._downloader.to_screen(u'[comedycentral] %s: Extracting information' % episode_id)
|
self._downloader.to_screen(u'[comedycentral] %s: Extracting information' % episode_id)
|
||||||
|
|
||||||
|
@ -2265,6 +2284,14 @@ class ComedyCentralIE(InfoExtractor):
|
||||||
def report_player_url(self, episode_id):
|
def report_player_url(self, episode_id):
|
||||||
self._downloader.to_screen(u'[comedycentral] %s: Determining player URL' % episode_id)
|
self._downloader.to_screen(u'[comedycentral] %s: Determining player URL' % episode_id)
|
||||||
|
|
||||||
|
|
||||||
|
def _print_formats(self, formats):
|
||||||
|
print('Available formats:')
|
||||||
|
for x in formats:
|
||||||
|
print('%s\t:\t%s\t[%s]' %(x, self._video_extensions.get(x, 'mp4'), self._video_dimensions.get(x, '???')))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
mobj = re.match(self._VALID_URL, url)
|
mobj = re.match(self._VALID_URL, url)
|
||||||
if mobj is None:
|
if mobj is None:
|
||||||
|
@ -2359,7 +2386,20 @@ class ComedyCentralIE(InfoExtractor):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# For now, just pick the highest bitrate
|
# For now, just pick the highest bitrate
|
||||||
|
|
||||||
|
print turls
|
||||||
|
|
||||||
|
if self._downloader.params.get('listformats', None):
|
||||||
|
self._print_formats([i[0] for i in turls])
|
||||||
|
return
|
||||||
|
|
||||||
format,video_url = turls[-1]
|
format,video_url = turls[-1]
|
||||||
|
req_format = self._downloader.params.get('format', None)
|
||||||
|
|
||||||
|
for f,v in turls:
|
||||||
|
if f == req_format:
|
||||||
|
format, video_url = f, v
|
||||||
|
break
|
||||||
|
|
||||||
# Patch to download from alternative CDN, which does not
|
# Patch to download from alternative CDN, which does not
|
||||||
# break on current RTMPDump builds
|
# break on current RTMPDump builds
|
||||||
|
|
Loading…
Reference in a new issue