projects
/
youtube-dl
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
89af8e9
)
Adds format listing/selection support to the Comedy Central extractor.
author
Christopher Neugebauer
<chrisjrn@gmail.com>
Tue, 27 Nov 2012 11:28:16 +0000
(22:28 +1100)
committer
Christopher Neugebauer
<chrisjrn@gmail.com>
Tue, 27 Nov 2012 11:28:16 +0000
(22:28 +1100)
youtube_dl/InfoExtractors.py
patch
|
blob
|
history
diff --git
a/youtube_dl/InfoExtractors.py
b/youtube_dl/InfoExtractors.py
index 3cdce3b259983866855721374fb1c9e0db608b80..447695fda798b39c8c3fdac5bf45fdca36fde007 100644
(file)
--- 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'
_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)
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 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:
def _real_extract(self, url):
mobj = re.match(self._VALID_URL, url)
if mobj is None:
@@
-2359,7
+2386,20
@@
class ComedyCentralIE(InfoExtractor):
continue
# For now, just pick the highest bitrate
continue
# For now, just pick the highest bitrate
- format,video_url = turls[-1]
+
+ print turls
+
+ if self._downloader.params.get('listformats', None):
+ self._print_formats([i[0] for i in turls])
+ return
+
+ 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
# break on current RTMPDump builds
# Patch to download from alternative CDN, which does not
# break on current RTMPDump builds