about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPhilipp Hagemeister <phihag@phihag.de>2012-11-27 13:19:18 +0100
committerPhilipp Hagemeister <phihag@phihag.de>2012-11-27 13:19:18 +0100
commit958a22b7cf3e20ac4f05ff6817bdac34a14ab327 (patch)
treea0b57c9845c63552e6867dc8eb5defcc106830e8
parent97cd3afc7525394c46398f1526d412d081c02085 (diff)
parentfeb22fe5fe55f51a72af6ef4207dba95c6da1fda (diff)
downloadyoutube-dl-958a22b7cf3e20ac4f05ff6817bdac34a14ab327.tar.gz
youtube-dl-958a22b7cf3e20ac4f05ff6817bdac34a14ab327.tar.xz
youtube-dl-958a22b7cf3e20ac4f05ff6817bdac34a14ab327.zip
Merge remote-tracking branch 'chrisjrn/master'
-rw-r--r--youtube_dl/InfoExtractors.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/youtube_dl/InfoExtractors.py b/youtube_dl/InfoExtractors.py
index 3cdce3b25..64383fea4 100644
--- a/youtube_dl/InfoExtractors.py
+++ b/youtube_dl/InfoExtractors.py
@@ -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>.*)$'
 	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):
 		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):
 		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):
 		mobj = re.match(self._VALID_URL, url)
 		if mobj is None:
@@ -2357,10 +2384,23 @@ class ComedyCentralIE(InfoExtractor):
 			if len(turls) == 0:
 				self._downloader.trouble(u'\nERROR: unable to download ' + mediaId + ': No videos found')
 				continue
+			
+			if self._downloader.params.get('listformats', None):
+			    self._print_formats([i[0] for i in turls])
+		            return
 
 			# For now, just pick the highest bitrate
 			format,video_url = turls[-1]
 
+			# Get the format arg from the arg stream
+			req_format = self._downloader.params.get('format', None)
+
+			# Select format if we can find one
+			for f,v in turls:
+			    if f == req_format:
+			      format, video_url = f, v
+			      break
+
 			# Patch to download from alternative CDN, which does not 
                         # break on current RTMPDump builds